文华学院毕业设计(论文)
3.2 LED显示系统
LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如 dp,g,f,e,d,c,b,a全亮显示为8,采用共阳极连接驱动代码。
驱动代码表
显示数值 0 1 2 3 4 5 6 7 8 9
dp,g,f,e,d,c,b,a 11010000 11111001 10100100 10110000 10011001 10010010 10000010 11111000 10000000 10010000 驱动代码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后有DPTR调取LEDMAP的代码。
LED8段数码管的设置为每个方位上的一对为显示器。四个方位上总共用8个LED接在单片机的IO口上。虽然路口不一样,但是显示的时间在数字上是一样的,所以8个数码管的段都接在P0口,每个数码管的位选端都接在P2口,如图3.7所示,并且通过三极管来驱动和控制每位的亮灭。
10
文华学院毕业设计(论文)
3.3 时钟电路
时钟电路
MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
当使用内部振荡电路时,XTAL1和XTAL2引脚外接石英晶体和微调电容,如图所示,图中C2、C3大小一般为30pF。还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。如何进行复位呢?只能在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。
当主电源VCC发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。
3.4 复位电路
复位电路
AT89C51的复位是由外部的复位电路实现的。复位电路通常采用上电复位和按钮复位两种方式。在此次设计中,我使用了上电复位方式。上电复位是通过外部复位电路的电容充电来实现的。
11
文华学院毕业设计(论文)
四、 软件设计
4.1 LED显示程序设计思路
在这部分我使用了数码管动态显示方式来显示数据。所谓动态显示方式,就是在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应为要显示的字符的段码。这样,在同一时刻,LED中只有选通的那位显示出字符,而其他位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。
开始 扫描个位 输出个位数扫描十位 输出十位数据 扫描百位
输出百位数 据 结束
LED显示流程图
12
文华学院毕业设计(论文)
4.2 交通灯程序设计思路
在这部分我设置南北方向通行,东西方向禁行为初始状态,持续时间为27s。接下来黄灯闪烁3s,然后南北方向禁行,东西方向通行,持续时间仍为27s,最后黄灯闪烁3s,回到初始状态,如此循环。
开始 南北绿灯亮 东西红灯亮 LED是否为0 Y 黄灯闪烁 N LED是否为0 Y 南北红灯亮 东西绿灯亮 N LED是否为0 Y 黄灯闪烁 N LED是否为0 Y 结束 N
13
文华学院毕业设计(论文)
4.3 紧急情况设计思路
当需要应对特殊情况时,在人为控制下,程序由中断入口地址切换到中断程序,根据实际情况的不同切换到不同的中断子程序,当紧急情况处理完,由人为控制返回原程序。程序流程图如下:
中断入口地址 保护断点 判断是哪种中断
进入相应中断程序 人为结束中断 恢复现场 中断返回 结束
紧急情况程序流程图
中断入口地址为:
中断 外部中断 定时器T0
入口地址(16进制)
0003H 000BH 14