开篇:润墨网以专业的文秘视角,为您筛选了一篇基于74HC164的单片机测试电路范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
【摘要】在开发单片机系统时,常需要对系统进行调试,本文主要介绍了一种基于74hc164芯片的调试电路,应用在atmega128单片机系统上,配合调试程序,可以很方便的对单片机系统进行测试,也适合初学者学习单片机。
【关键词】单片机;74HC164;atmega128单片机
1.前言
74HC164是高速硅门CMOS器件,与低功耗肖特基TTL(LSTTL)器件的引脚兼容,是一种8位边沿触发式移位寄存器,串行输入数据,然后并行输出。本文中使用了74HC164和8位的数码管作为输出部分,输入部分采用了四个键盘设计了该系统。
2.硬件设计
本测试电路以atmega128为核心,原理图如图1所示。从左到右依次为4个8位数码管,74HC164芯片的8个输出引脚分别对应8位数码管的8位输入引脚,最左边的74HC164芯片的输入引脚DSA、DSB一起接到atmega128的PC0口上,接收单片机发送的数据,最后一位输出引脚接在右边的74HC164芯片上的输入引脚DSA、DSB上,往右的芯片都是同样的接法。4个寄存器的CLK脚都接在单片机PA0口上,接收单片机发送的时钟信号,上升沿触发[1]。
在程序初始化之后,当需要显示4位数字时,单片机只需要依次的发送相应字符的字符码,就可在数码管上一次显示想要显示的字符。单片机PC0口每发一个电平,PA0发送一个上升沿,电平信号往右移一位。
3.软件设计
在设计完硬件电路后,可以通过编写测试程序下载到单片机中,使用S1、S2、S3和S4四个按键进行测试,本文所使用软件开发环境为AVR STUDIO+WINAVR。
首先我们需要编写显示相应字符的字符码和显示子程序:
int LED[19][8]=//数码管数字显示表
{{0,0,1,1, 1,1,1,1},// 0
{0,0,0,0, 0,1,1,0},// 1
{0,1,0,1, 1,0,1,1},// 2
{0,1,0,0, 1,1,1,1},// 3
{0,1,1,0, 0,1,1,0},// 4
{0,1,1,0, 1,1,0,1},// 5
{0,1,1,1, 1,1,0,1},// 6
{0,0,0,0, 0,1,1,1},// 7
{0,1,1,1, 1,1,1,1},// 8
{0,1,1,0, 1,1,1,1},// 9
};
void display_led(int mun)
{ int i;
for(i=0;i
{
if(LED[mun][i]==1)
data_h;//PC0口置高电平
else
data_l;//PC0口置低电平
clk_l;//PA0口置低电平
clk_h;//PA0口置高电平,发送上升沿
}
}
然后编写主程序,主程序流程图如图2所示,整个主程序为一循环函数,在循环扫描S1、S2、S3和S4四个按键。S1、S2为功能选择键,增加或减少function的值,之后显示在数码管上,使用switch语句建立多分支选择结构,根据function值选择进入相应的分支,每个分支为一循环函数,按下S3键则进入该循环,S4退出循环函数并跳出分支选择结构,继续进入主程序的循环,本例子只列出9个分支,图2为主程序流程图。
4.结束语
本文的所制作的测试电路主要是在开发直线加速器治疗床电机控制系统时辅助系统的研发,方便在研发过程中对系统进行测试,加快了系统的开发。该测试电路可以通过修改控制器单片机上的测试程序从而应用在教学领域,方便初学者快速的熟悉单片机的软硬件环境,开发简单的单片机程序。
参考文献
[1]耿德根,宋建国,马潮,等.AVR高速嵌入式单片机原理与应用(修订版)[M].北京:清华大学出版社,2005.
[2]全为民.AT89C51自动扫描键盘/显示器的设计及其应用[J].微型机与应用,2001(5):16-17.
作者简介:张俊(1986—),男,广东湛江人,广东工业大学机电工程学院硕士研究生,主要研究方向:嵌入式运动控制。