5.2 交通灯系统编程信息
定时器的中断设置
在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。
相应中断服务子程序 void T0_init() {
TMOD|=0x01; //定时器0设置为16位定时器 TH0=(65536-50000)/256; //定时器0赋初值 TL0=(65536-50000)%6;
EA=1; //开总中断
ET0=1; //开定时器0中断 TR0=1; //定时器打开 }
if(aa == 20) {
aa = 0;
value ++; //value单位为秒, nbnum --; dxnum --; }
void time_t0() interrupt 1 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6;
aa++; //aa等于20,,20*50000大概是1秒 }
16
第六章 交通灯的仿真及调试
6.1 Proteus软件仿真
根据系统设计要求,进行Keil和Proteus系统仿真,不断调试程序,直到符合功能要求。Proteus总体仿真图如下。
图6.1 Proteus仿真图
17
6.2功能调试
调试步骤
1. 在Proteus仿真软件中打开目标电路图。
2. 将在Keil编程软件中生成的hex文件导入到电路图中。 3. 点击开始按钮进行仿真测试。
图6.2 东西支干道通行
图6.3 东西支干道黄灯警示
18
图6.4 南北主干道通行
测试结果: 发光二极管,数码管都能按要求显示,符合要求。 6.3 交通灯实物调试
调试步骤
1. 对照电路图连接实物板,再接上电源。
2. 打开电源开关,电路板的发光二极管,数码管开始运作,进行多次循环调试,确认无误后得出结论。
图6.5 东西支干道通行
19

