文档详情

实验三 急救车与交通灯控制综合性实验指导书方案.docx

发布:2016-12-31约1.62千字共10页下载文档
文本预览下载声明
实验三 急救车与交通灯控制综合性实验指导书一、实验内容P1口进行十字路口交通灯控制,允许急救车优先通过。有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒,急救车通过后,交通恢复正常。并实验用单次脉冲申请中断,表示有急救车通过。二、实验目的及要求(一)实验目的学习外部中断技术的基本使用方法。学习中断服务程序的编程方法。(二)实验要求1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。三、实验条件及要求计算机,C51语言编辑、Keil_uVersion2和Protues仿真软件50台套。四、实验相关知识点1.单片机内部结构。2.C51编程、调试。3.单片机端口控制。4.外部中断应用。五、实验原理图七、实验参考流程图八、实验程序#include reg51.h#define uchar unsigned char· #define uint unsigned int unsigned int i ;void delay(uint xms) { unsigned int a ,j; for(a=xms;a0;a--) for(j=114;j0;j--); }void main(){ TMOD = 0x01; TH0 = 0x3C; TL0 = 0x0B0; EA = 1; ET0 = 1;TR0 = 1;IP=0x01;IT0=1;EX0=1;P2=0xcf;while(1){}}void Timer0Interrupt(void) interrupt 1{ TH0 = 0x3c;TL0 = 0x0b0;i++;if(i==100){P2=0xdb;}if(i==200){P2=0x9f;}if(i==205){P2=0xdf;}if(i==210){P2=0x9f;}if(i==215){P2=0xdf;}if(i==220){P2=0x9f;}if(i==225){P2=0xdf;} if(i==230){P2=0x9f;}if(i==235){P2=0xdf;} if(i==240){P2=0x9f;}if(i==245){P2=0xdf;} if(i==250){P2=0x9f;}if(i==255){P2=0xdf;}if(i==260){P2=0xe7;}if(i==360){P2=0x6f;}if(i==365){P2=0xef;}if(i==370){P2=0x6f;}if(i==375){P2=0xef;}if(i==380){P2=0x6f;}if(i==385){P2=0xef;}if(i==390){P2=0x6f;}if(i==395){P2=0xef;}if(i==400){P2=0x6f;}if(i==405){P2=0xef;}if(i==410){P2=0x6f;}if(i==415){P2=0xef;}if(i==420){P2=0xdb; i=0;} } void exter0() interrupt 0 //中断服务程序,中断为外部中断0 { P2=0xcc; delay(10000); //全红10s,急救车通过 P2=0xcf; } 九、实验实施步骤1.仔细阅读实验内容及要求,编写C51源程序。2.上机编辑、仿真调试源程序。3.按要求接线。4.在线调试源程序,观查运行结果。十、思考问题如何改变急救车通过路口的时间?改变void exter0() interrupt 0 中delay()括号中的值
显示全部
相似文档