智能交通灯简单控制程序(c51)
- 格式:doc
- 大小:47.00 KB
- 文档页数:11
//功能:模拟交通灯控制C51参考程序具体实现功能:1、正常时信号灯控制:(1)初始状态东西南北全为红灯(5s);(2)东西绿灯、南北红灯(10s);(3)东西绿灯闪烁3次,南北红灯;(4)东西黄灯、南北红灯(2s);(5)东西红灯、南北绿灯(10s);(6)东西红灯,南北绿灯闪烁3次;(7)东西红灯,南北黄灯(2s);(8)转(2)。
2、特殊情况下,东西方向绿灯放行(5s)3、紧急情况下,如有急救车通过时,东西和南北两个方向的交通灯全为红灯(10s),急救车通过后恢复正常信号。
紧急情况优先级高于特殊情况。
4、其他提高部分:实现智能交通灯控制(略,自行考虑并编写)(1)各路口红绿灯点亮时间可调整;(2)数码管显示各路口的点亮时间并作每秒减“1”操作;(3)左转灯设计。
(4)自己设想一些特殊情况并加以处理。
分析:按键S1、S2模拟紧急情况和特殊情况的发生,当S1、S2为高电平(不按按键)时,表示正常情况。
当S1为低电平(按下按键)时,表示紧急情况,将S1信号接至INT0脚(P3.2)即可实现外部中断0的中断申请。
当S2为低电平(按下按键)时,表示特殊情况,将S2信号接至INT1脚(P3.3)即可实现外部中断1的中断申请。
程序设计:由上述流程图,程序需要多个不同延时时间,2s、5s、10s等,假定信号灯闪烁时亮灭时间各为0.5s,则可将0.5s延时作为基本的延时时间。
#include <reg51.h>unsigned char t0, t1; //定义全局变量,用来保存延时时间循环次数//函数名:delay0_5s1//函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定// 时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒//形式参数:无//返回值:无void delay0_5s1( ){for(t0=0;t0<0x0a;t0++) // 采用全局变量t0作为循环控制变量{TH1=0x3c; // 设置定时器初值TL1=0xb0;TR1=1; // 启动T1while(!TF1); // 查询计数是否溢出,即定时50ms时间到,TF1=1TF1=0; // 50ms定时时间到,将定时器溢出标志位TF1清零}}//函数名:delay_t1//函数功能:实现0~127.5秒的延时//形式参数:unsigned char t;// 延时时间为0.5秒×t(0~255)//返回值:无void delay_t1(unsigned char t){for(t1=0;t1<t;t1++) // 采用全局变量t0作为循环控制变量delay0_5s1();}//函数:int_0//函数功能:外部中断0中断函数,紧急情况处理,当CPU响应外部中断0的中断请求时,// 自动执行该函数,实现两个方向红灯同时亮10秒//形式参数:无//返回值:无void int_0( ) interrupt 0 // 紧急情况中断{unsigned char i,j,k,l,m;i=P1; // 保护现场,暂存P1口、t0、t1、TH1、TH0j=t0;k=t1;l=TH1;m=TL1;P1=0xdb; // 两个方向都是红灯delay_t1(20); // 延时10秒P1=i; // 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0t0=j;t1=k;TH1=l;TL1=m;}//函数:int_1//函数功能:外部中断1中断函数,特殊情况处理,当CPU响应外部中断1的中断请求时,// 自动执行该函数,实现东西方向放行5秒//形式参数:无//返回值:无void int_1( ) interrupt 2 // 特殊情况中断{unsigned char i,j,k,l,m;EA=0; //关中断i=P1; // 保护现场,暂存P1口、t0、t1、TH1、TH0j=t0;k=t1;l=TH1;m=TH0;EA=1; // 开中断P1=0xf3; // 东西方向放行delay_t1(10); // 延时5秒EA=0; // 关中断P1=i; // 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0t0=j;t1=k;TH1=l;TH0=m;EA=1; //开中断}void main( ) //主函数{unsigned char k;TMOD=0x10; // T1工作在方式1EA=1; // 开放总中断允许位EX0=1; // 开外部中断0中断允许位IT0=1; // 设置外部中断0为下降沿触发EX1=1; // 开外部中断1中断允许位IT1=1; // 设置外部中断1为下降沿触发P1=0xdb; // 两个方向都是红灯delay_t1(10); // 延时5秒while(1){P1=0xf3; // A绿灯,B红灯,延时10秒delay_t1(20);for(k=0;k<3;k++) // A绿灯闪烁3次{P1=0xf3;delay0_5s1(); // 延时0.5秒P1=0xfb;delay0_5s1(); // 延时0.5秒}P1=0xeb; // A黄灯,B红灯,延时2秒delay_t1(4);P1=0xde; // A红灯,B绿灯,延时10秒delay_t1(20);for(k=0;k<3;k++) // B绿灯闪烁3次{P1=0xde;delay0_5s1(); // 延时0.5秒P1=0xdf;delay0_5s1(); // 延时0.5秒}P1=0xdd; // A红灯,B黄灯,延时2秒delay_t1(4);}}。
#include<reg52.h>#define uint unsigned int#define uchar unsigned charchar TAB[11]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x00}; //数码管状态表void delay_100ms(uint );void delay(uint );void display(uint );void yejian(void);int i,k,t,flag=0;sbit A1=P1^0;sbit A2=P1^1;sbit A3=P1^2;sbit A4=P1^3;sbit SB=P3^7;void main () //主程序{EA=1;//初始化,开所有中断ET1=1;//开定时器T1中断TMOD=0x10;//设置定时器工作方式2TH1=(65536-50000)/256;//设置定时器初值TL1=(65536-50000)%256;while(1){if(SB==0) flag=1;if(flag==1) yejian();P2=0x69;k=8;while(k>0)//状态1南北红灯,东西绿灯{if(SB==0) flag=1;if(flag==1) yejian();TR1=1;//开启T1while(t!=10) display(k); //显示倒计时if(t==10) t=0;k--;TR1=0;//关闭T1}if(k==0) k=3;while(k>=0)//状态2南北红灯,东西绿灯闪烁三次{if(SB==0) flag=1;if(flag==1) yejian();P2=0x69;delay_100ms(5);P2=0x41;delay_100ms(5);k--;}k=2;flag=1;while(k>=0)//状态3南北红灯,东西黄灯{if(SB==0) flag=1;if(flag==1) yejian();P2=0x7d;delay_100ms(10);k--;}P2=0x96;k=8;while(k>0)//状态4南北绿灯,东西红灯{if(SB==0) flag=1;if(flag==1) yejian();TR1=1;//开启T1while(t!=10) display(k);// 显示倒计时if(t==10) t=0;k--;TR1=0;//关闭T1}k=3;while(k>=0)//状态5东西红灯,南北绿灯闪烁三次{if(SB==0) flag=1;if(flag==1) yejian();P2=0x96;delay_100ms(5);P2=0x14;delay_100ms(5);k--;}k=2;while(k>=0)//状态6东西红灯,南北黄灯{if(SB==0) flag=1;if(flag==1) yejian();P2=0xd7;delay_100ms(10);k--;}}}void yejian(void){uint m=k;while(flag==1){if(SB==1) flag=0;k=11;P2=0xff;delay_100ms(5);P2=0x00;delay_100ms(5);}k=m;}void delay_100ms(uint z)//显示数码管延时100ms {TR1=1;//开启T1while(t!=z) display(k);if(t==z){t=0;TR1=0;//关闭T1}}void exter0() interrupt 3//定时器中断程序{TH1=(65536-50000)/256;TL1=(65536-50000)%256;t++;}void display(uint i)//倒计时显示{A1=A2=A3=A4=0;A4=1;P0=TAB[i];//显示第一位数值delay(4);A4=0;A3=1;P0=TAB[i];//显示第二位数值delay(4);A3=0;A2=1;P0=TAB[i];//显示第三位数值delay(4);A2=0;A1=1;P0=TAB[i];//显示第四位数值delay(4);A1=0;}void delay(uint z)//软件延时{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}。
C51程序设计课程报告——交通灯学院:电信学院班级: 09电子信息工程本1班学号: 0911******** 姓名:邵宝川摘要交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。
随着车辆的日益增多,交通问题将日趋严重。
可通过多修建道路或限制车辆的办法来解决,但道路的增加是有限的,而限制车辆会使汽车及其相关产业受到压制。
目前,发达国家的交通主要是向智能化交通方向发展。
如给汽车装上导航仪等办法,充分利用电子设备提高现有道路交通系统的运输能力。
交通灯是管理城市交通的重要工具,交通灯对道路交通流的影响近年来引起广大学者的广泛注意。
目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变,还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。
而我们设计的交通灯充分考虑了在道路繁忙时,各道口车流量不同,和消防车、警车等车辆通过路口时等紧急情况,给予了交通指挥一定的自由度,设计更加人性化。
目录一、设计背景 (3)二、设计原理 (3)三、电路图 (4)(一)逻辑图: (4)(二)交通信号模拟控制系统电路原理图 (5)四、程序流程图 (6)五、编写程序 (7)六、仿真结果图 (15)(一)东西绿灯,南北红灯: (15)(二)东西黄灯,南北红灯 (16)(三)东西红灯,南北绿灯 (17)(四)东西黄灯,南北绿灯 (18)七、调试 (19)八、结论 (19)九、参考文献 (20)(一) 网络参考 (20)(二)书本参考 (20)一、设计背景交通灯是一个城市经济的动脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。
所谓“路通财通”就是说明了一个良好的交通环境的重要性。
而交通灯在这个交通环境中起一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能交通灯能为当地人民节省大量的出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对当地经济起着一个不可估量的作用。
51单片机控制交通灯一、实现功能:1、先南北红灯亮,东西绿灯亮。
南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持20秒;到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮,东西红灯亮维持30秒。
南北绿灯亮维持25秒,然后闪亮3秒后熄灭。
同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始。
2、用一个按键模拟急救车到达。
急救车到达路口时,四个方向的红灯全亮,10秒钟后恢复正常显示。
3、一辆急救车正在过路口时(即四个方向全红灯10秒倒计时未结束),又来了一辆急救车,重新从10秒开始倒计时。
4、急救车过去之后(即10秒倒计时结束),路灯状态要继续急救车到达之前的状态往下运行。
5、数码管显示绿灯变红灯、红灯变绿灯以及急救车10秒钟的倒计时。
6、急救车从路口过的时候,蜂鸣器响1s停1s的循环报警。
二、proteus仿真电路图注:此图仅作为仿真使用。
实际焊接电路时,由于单片机的驱动能力较弱,所以数码管的位选、LED的控制最好加上三极管进行电流放大,否则即使能实现功能,但是LED和数码管的发光的亮度也不强。
三、C语言程序程序#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define duan P0#define wei P2code uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; uchar buff[8] = {10,10,10,10,10,10,10,10};uchar weizhi = 0;uchar alarm = 0;uchar bk_TH1 = 0;uchar bk_TL1 = 0;uchar bk_cnt = 0;uchar bk_cnt_time = 0;uchar cnt_time = 0;uchar cnt = 0;uchar cnt_flash = 0;bit cnt_finish = 0;bit LED = 0;bit beef_flag = 1;sbit Er = P1^0; //东西—红灯sbit Eg = P1^1; //东西—绿灯sbit Ey = P1^2; //东西—黄灯sbit Sr = P1^3; //南北—红灯sbit Sg = P1^4; //南北—绿灯sbit Sy = P1^5; //南北—黄灯sbit beef = P1^6; //蜂鸣器void display(void);void main(void){uchar time = 0;TMOD |= 0x11;TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;ET1 = 1;ET0 = 1;INT0 = 1;EX0 = 1;IP |= 0x02;EA = 1;TR0 = 1;TR1 = 1;Sr = 0;Sg = 0;Sy = 0;Er = 0;Eg = 0;Ey = 0;beef = 0;buff[0] = 11;buff[1] = 11;buff[2] = 11;buff[3] = 11;buff[4] = 11;buff[5] = 11;buff[6] = 10;buff[7] = 10;while(1){while((cnt<20)&&(alarm == 0)){Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = 1;Ey = 0;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<23)&&(alarm == 0)){Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = LED;Ey = 0;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<25)&&(alarm == 0)) {Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = 0;Ey = 1;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<50)&&(alarm == 0)) {Sr = 0;Sg = 1;Sy = 0;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<53)&&(alarm == 0)) {Sr = 0;Sg = LED;Sy = 0;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt_finish != 1)&&(alarm == 0)){Sr = 0;Sg = 0;Sy = 1;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}cnt_finish = 0;while(alarm == 1){Er = 1;Eg = 0;Ey = 0;Sr = 1;Sg = 0;Sy = 0;time = (10-cnt);buff[7] = time%10;buff[6] = time/10;if(cnt == 10){TR1 = 0;TH1 = bk_TH1;TL1 = bk_TL1;cnt = bk_cnt;cnt_time = bk_cnt_time;TR1 = 1;alarm = 0;}beef = beef_flag;}beef = 0;}}void int0(void) interrupt 0{TR1 = 0;if(alarm == 0){bk_TH1 = TH1;bk_TL1 = TL1;bk_cnt = cnt;bk_cnt_time = cnt_time;}TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;cnt = 0;cnt_time = 0;alarm = 1;TR1 = 1;}void timer0(void) interrupt 1 {TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;display();}void timer1(void) interrupt 3 {TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;if(++cnt_time == 20){cnt_time = 0;cnt++;beef_flag = ~beef_flag;}if(++cnt_flash == 4){cnt_flash = 0;LED = ~LED;}if(cnt == 55){cnt = 0;cnt_finish = 1;}}void display(void){duan = 0xff;wei = (1<<weizhi);duan = tab[buff[weizhi]];if(++weizhi == 8){weizhi = 0;}}。
摘要本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。
系统包括人行道、左转、右转、以及基本的交通灯的功能。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测以及根据具体情况手动控制等功能。
关键词:AT89S51,交通规则,LEDAbstractThis system is made up of single-chip microcomputer , keyboard ,led displaying module and Traffic lights system .The system includes pavement ,left turning ,right turning ,and the basic traffic lights function .Excepting the basic traffic lights function ,it also includes counting ,time installing , emergency disposing ,speech cluing, LCD information displaying ,adjusting the lighting time of lights based on different time and controlling with hand in accordance with circumstances and so on.Key Words: AT89S51 , Traffic regular,LED .目录第一章序言……………………………………………………………………∙∙∙∙∙∙∙∙∙∙∙41.1 交通灯的形成……………………………………………………………………………∙∙∙41.2芯片简介……………………………………………………………………………………∙51.3论文研究内容与章节安排…………………………………………………………………∙6 第二章方案比较、设计与论证………………………………………………………∙∙72.1电源提供案……………………………………………………………………………∙∙∙∙∙∙∙∙∙72.2 显示界面方案……………………………………………………………………………∙∙∙72.3 输入方案…………………………………………………………………………………∙∙∙8 第三章理论分析与计算………………………………………………………∙∙∙……∙∙∙93.1交通灯显示时序的理论分析与计算∙ (9)3.2交通灯显示时间的理论分析与计算……………………………………………………∙∙∙∙12 第四章电路图及设计文件……………………………………………………∙∙∙……∙∙134.1 灯控制电路设计…………………………………………………………………………∙∙∙134.2倒计时显示电路设计………………………………………………………………………∙134.3违规车辆检测电路设计…………………………………………………………………∙∙∙∙15 第五章程序设计思路与流程图………………………………………………………∙∙175.1主程序流程图……………………………………………………………………………∙∙∙∙175.2.按键子程序流程图………………………………………………………………………∙∙20 第六章测试、数据及结果分析………………………………………………∙∙……∙∙246.1状态灯显示测试……………………………………………………………………………∙246.2数码管的测试……………………………………………………………………………∙∙∙∙246.3整体电路测试.......................................................................................∙∙24 总结.........................................................................................................∙∙∙ (25)附录:......................................................................................................∙∙ (26)第一章序言1.1 交通灯的形成当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
交通灯设计一.设计目的:1.进一步熟悉和掌握单片机的结构和工作原理。
熟练掌握C语言的编程方法,将理论联系到实践中,提高我们的思维能力。
2。
用AT89C51的P1口作为输出口,控制12个发光二极管的点亮和熄灭,模拟交通灯管理。
3.学习74LS245芯片驱动七段数码管的显示的方法,使用数码管显示器定时及倒计时的方法。
二.设计要求与主要内容:设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间.用AT89C51的P1口作为输出口,控制12个发光二极管的点亮和熄灭,模拟交通灯管理。
在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),,四个路口安装红,黄,蓝,灯各一盏.1。
设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(从干道)车道两条交叉道路上的车辆交替运行。
2。
在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道。
3.东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法).主要内容:假设一个十字路口为东西南北走向。
初始状态为状态1,南北方向绿灯通车,东西方向红灯.经过过一段时间(25S)转换状态2,南北方向绿灯转亮黄灯,延时5S,东西方向仍然红灯。
再转换到状态3,东西方向绿灯通车,南北方向红灯。
过一段时间(25S)转换到状态4,东西方向绿灯转亮黄灯,延时5S,南北方向仍然红灯。
最后循环至南北绿灯,东西红灯。
在这些状态下,有时钟倒数计时。
设计步骤:1。
利用Proteus 7 仿真软件按下列要求绘制仿真电路图★用12个发光二极管分别表示东、西、南、北四个方向的红、黄、绿灯;★用P1口输出控制模拟交通灯的状态使响应的发光二极管点亮或熄灭;★用P0口分别接74LS245芯片的A口,74LS245的B口分别接七段数码管的八位引脚,P2。
0、P2。
1七段数码管的共阳极引脚;2.利用Keil uVision3编写程序代码,编译生成。
C51交通灯多任务控制系统设计摘要近几年来,城市化进程和社会的发展越来越快,解决城市的交通拥挤问题也就越来越紧迫。
本设计利用AT89S55系列单片机,通过RTX—51Tiny实时多任务操作系统来完成道路交通灯的控制系统。
该系统由七个任务组成:任务0:用于初始化单片机串口,同时启动所有其他的任务,然后停止本任务;任务1:用于整个系统的串行命令处理;任务2:用于系统时钟计算和控制;任务3:如果系统运行时间在设置的工作时间段之外,黄色灯闪烁,其余灯停止工作;任务4:如果系统运行时间在设置的工作时间段之内,控制交通灯的循环交替变化;任务5:查询行人通行按钮是否按下,如果按钮按下则向任务4发送信号,使主路交通灯变为红色,行人交通灯变为绿色;任务6:监视串口是否有ESC字符,如果有则向任务1发送一个信号,终止时间显示命令。
通过keil vision 3和proteus软件的联合仿真,本设计可实现白天交通灯受系统的控制,按照预定的时间间隔交替的变化,在晚上的时候,黄灯一直闪烁,其他的灯不工作,当行人通行按钮被按下时,主路的交通灯会变成红灯禁止车辆通过,行人交通灯会变成绿灯进入行人过马路状态的功能。
关键词:交通,单片机,多任务控制系统Multitasking C51 traffic control system designAbstractsIn recent years, the development of urbanization and the society more and more quickly, solve the urban traffic congestion problem is more and more urgent. This design using AT89S55 series microcontroller, through RTX - 51Tiny real-time multitasking operating system to complete the road traffic control system. This system consists of seven tasks: Task 0: used for initialization of MCU, all other serial startup of the task, then stop this task, Task 1: serial order processing, Task 2: used for calculation and control system clock, Task 3: if the system run in the setting time period, the work, the yellow lights flashing lights to stop working, Task 4:if the system is set to work within the period, the control of traffic lights of the alterations ;Task 5 :whether the button is pressed, if the button down to the task of the four transmitted signal, the main road traffic lights turned red and pedestrian traffic light turned green ;Task 6 :monitoring string mouth are esc characters, if there is a task sends a signal to one another, terminating commands. time showsThrough vision and proteus keil software combination of three simulation, this design can be realized by the traffic control system day, according to the predetermined time interval, the changes in the night alternate, yellow lights flashing, other lights have no job, when pedestrians button is pressed when the traffic light into red hills, a ban on vehicle traffic light through a pedestrian crossing into green into pedestrians function of state.Key words: traffic, SCM, multi-tasking control system目录1 绪论 -------------------------------------------------------------------------------------------- 1 1.1课题意义 ----------------------------------------------------------------------------------- 1 1.2单片机的应用分析 ----------------------------------------------------------------------- 21.3课题任务 ----------------------------------------------------------------------------------- 32 方案的设计和基本原理 --------------------------------------------------------------------- 5 2.1设计硬件图 -------------------------------------------------------------------------------- 5 2.2.核心芯片AT89S55单片机的说明 ---------------------------------------------------- 7 2.3 C51下的RTX-51实时多任务操作系统 ------------------------------------------- 102.3.1RTX-51实时多任务操作系统简介 --------------------------------------------- 102.3.2 RTX-51实时多任务操作系统种类--------------------------------------------- 112.3.3 RTX-51的系统函数--------------------------------------------------------------- 112.3.4 RTX-51的任务调度--------------------------------------------------------------- 133 软件设计-------------------------------------------------------------------------------------- 15 3.1任务0程序------------------------------------------------------------------------------ 15 3.2任务1程序------------------------------------------------------------------------------ 16 3.3任务2程序------------------------------------------------------------------------------ 17 3.4任务3程序------------------------------------------------------------------------------ 18 3.5任务4程序------------------------------------------------------------------------------ 19 3.6任务5程序------------------------------------------------------------------------------ 193.7任务6程序------------------------------------------------------------------------------ 204 调试和仿真----------------------------------------------------------------------------------- 21 4.1 keil u vision3软件 ---------------------------------------------------------------------- 214.1.1 keil u vision3简介 -------------------------------------------------------------------- 21 4.1.2 keil u vision3安装 -------------------------------------------------------------------- 21 4.1.3 keil u vision3的运行 ----------------------------------------------------------------- 22 4.2 Proteus软件------------------------------------------------------------------------------ 23 4.2.1Proteus软件简介 ---------------------------------------------------------------------- 23 4.2.2Proteus软件的运行 ------------------------------------------------------------------- 24 4.3 keil u vision 3与proteus联合仿真 -------------------------------------------------- 25 结论----------------------------------------------------------------------------------------- 30 致谢----------------------------------------------------------------- 错误!未定义书签。
实验报告学期课程专业班级学生姓名学号指导教师目录一、单片机简介 (3)二、74LS374简介 (6)三、设计要求 (8)四、设计方案 (8)五、软件编程 (9)六、实验心得 (9)一、单片机简介1.1 MSC-51芯片简介:8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:图1-1 8051内部总线分配图1)中央处理器(CPU):中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2)数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3)程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
4)定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5)并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
6)全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
7)中断系统8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
8)时钟电路8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
C51期末课程设计大作业课程名称:交通灯程序设计学院:信息技术学院系别:计算机应用系专业:计算机应用技术班级: Z090X组序号:第二组组员X X学号 XXXXXXXX一、功能要求 (1)二、方案论证 (1)三、硬件解读 (2)四、流程图 (5)五、软件设计 (8)六、设计总结 (15)一、功能要求(一)设计所要完成的功能如下:1、信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作,且先南北红灯亮,东西绿灯亮。
当起动开关断开时,所有信号灯都熄灭。
2、南北红灯亮维持25S。
在南北红灯亮的同时东西绿灯也亮,并维持20S。
到20S时,东西绿灯闪烁,闪烁3S后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2S。
到2S时,东西黄灯熄,东西红灯亮。
同时,南北红灯熄灭,南北绿灯亮。
东西红灯亮维持30S。
南北绿灯亮维持25S。
然后闪烁3S,熄灭。
同时南北黄灯亮,维持2S后熄灭,这时南北红灯亮,东西绿灯亮3、要有倒计时数码显示。
(二)设计要求:1、功能要求2、方案论证3、系统硬件电路设计(给出键盘电路、LED显示电路)4、系统程序设计(要求给出流程图和程序清单)二、方案论证(一)方案的选择和论证根据题目要求,系统可以划分为几个基本模块:1、时钟模块2、时钟设置模块3、显示译码模块4、复位电路对各模块的实现,分别有以下一些不同的设计方案:(1) 标准时基模块方案一:采用直接从晶振分频得到12MHz信号。
该方案比较容易实现,但精确度不高,很难达到题目精确度的要求。
方案二:采用单片机C51经过延时程序产生12MHz时基信号。
在单片机程序设计中通过延时程序的循环产生所需要的12MHz的时基信号,该方案精确度比较高,而且也易于程序调整,电路结构简单,系统资源占用较小。
基于上述理论分析,拟订方案二。
(2)时钟控制模块方案一:采用单片机对键盘扫描和读取来控制不同时间值。
通过单片机对键盘的引脚不停的扫描,读入某时刻按下的键,通过单片机内部查表程序译出按键所对应的值从而使时间的值发生改变。