《单片机试验三急救车与交通灯》由会员分享,可在线阅读,更多相关《单片机试验三急救车与交通灯(9页珍藏版)》请在金锄头文库上搜索。
1、单片机技术与应用实验报告实验名称:外部中断实验(急救车与交通灯)班级:11062811学号:11061118姓名:吕琳涛指导老师: 谷雨2013年5月20日1. 实验要求由以 74LS273 作为输出口,控制 4 个双色 LED 灯(可发红,绿, 黄光),模 拟交通 灯管理 ,并允 许急 救车优 先通过 的 要求。 有急救车 到达时,两向交通信号为全红,以便让急救车通过。假定急救车通 过路口时间为 10 秒,急救车通过后,交通灯恢复中断前状态。本实 验以按键为中断申请,表示有急救车通过。2. 实验目的1. 学习外部中断技术的基本使用方法。2. 学习中断处理程序的编程方法。3. 程序说明: 在本
2、次实验中,我们可以确定外部中断的作用是用于有救护车行驶过 来时对程序的进行的简单的控制。对于正常的红绿灯的亮灭我们可以参考 第一个实验中流水灯的设计理念。综上所述我们这一次的实验就是流水灯 与外部中断的结合。通过对七种情况的罗列1 0 0 1 0 1 1 0南北绿,东西红0 1 1 0 1 0 0 1南北红,东西绿只亮东西红只亮南北红 南北黄,东西红 南北红,东西黄 全红我们可以利用 XBYTE0xf200 这个函数对这几种情况进行读取与显示,在不同情况进行显示的过程中我们用以前的 delay 函数进行时间上的 规划从而达到依次显示的效果。0x0f全红XBYTE0xf200=0x0f;0x96
3、南北绿,东西红XBYTE0xf200=0x96;0x9f只亮东西红XBYTE0xf200=0x9f;0x06南北黄,东西红XBYTE0xf200=0x06;0x69南北红,东西绿XBYTE0xf200=0x69;0x6f只亮南北红XBYTE0xf200=0x6f;0x09南北红,东西黄XBYTE0xf200=0x09;在具体的实验代码编写过程中, 我们会用到 EA=1;EX0=1;IT0=1; 用于 设定外部中断 0 为跳变沿触发方式,默认为电平触发方式。 interrupt 0 函数是处理有救护车驶过时的情况。至此,程序编写完成,放入软件中进行编译和下载。主程序框图保炉现场X琳西,南北厶延时
4、10f中断人口中断返回中断子程厚框圈2. 上机调试说明将程序编写成功后,我们就上机进行调试。下载成功后,拨动k7这个拨动开关形成外部中断的信号,在单片机的 实验板上我们可以清楚地看到随着时间灯南北东西的一对一对的红黄绿的 交替闪烁。然后以按键开光来表示救护车的通过,然后看见所有的灯都变成红色。 至此实验仿真过程结束。3. 写出源程序清单及执行结果。源程序:#include #include / 可使用其中定义的宏来访问绝对地址 #include #defi ne uchar un sig ned char#define uint unsigned int void delay(uint xms
5、)unsigned int i,j;for(i=xms;i0;i-)for(j=110;j0;j void main()EA=1;EX0=1;IT0=1;/ 设定外部中断 0 为跳变沿触发方式, 默认为电平触发方式IP=0x01;/ 外部中断 0 设置为高优先级中断XBYTE0xf200=0x0f;/ 单片机端口 P1 输出 0xf200 绝对物理地址 ,全红delay(5000);/ 延时 5swhile(1)XBYTE0xf200=0x96;/ 南北绿,东西红delay(5000);/ 持续 5s ,之后为绿灯闪烁(绿转黄)XBYTE0xf200=0x9f;delay(1000); / 闪
6、烁频率为 1sXBYTE0xf200=0x96;delay(1000);XBYTE0xf200=0x9f;delay(1000);XBYTE0xf200=0x96;delay(1000);XBYTE0xf200=0x9f;delay(1000);XBYTE0xf200=0x06;delay(5000);XBYTE0xf200=0x69;delay(5000);/ 黄灯持续 5s/ 南北红,东西绿,持续 5sXBYTE0xf200=0x6f;delay(1000);XBYTE0xf200=0x69;/ 闪烁频率为 1sdelay(1000);XBYTE0xf200=0x6f;delay(1000);XBYTE0xf200=0x69;delay(1000);XBYTE0xf200=0x6f;delay(1000);XBYTE0xf200=0x09;delay(5000);void exter0() interrupt 0/ 中断服务程序,中断为外部中断 0XBYTE0xf200=0x0f;delay(10000);/ 全红 10s ,急救车通过4. 心得体会本次实验中我们做的是一个交通灯的控制与救护车通过时的一个 中断问题。我想这次实验是上两次实验的结合。然后我想对于一些看 似很复杂的问题,如果我们可以将其分解为一些我们学过的会做的问 题的话,问题就会迎刃而解。