MCS51单片机交通灯Word文档下载推荐.docx
- 文档编号:22155709
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:78.88KB
MCS51单片机交通灯Word文档下载推荐.docx
《MCS51单片机交通灯Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MCS51单片机交通灯Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
第二部分课程设计报告
一、单片机发展概况
1974年,美国仙童公司研制了世界第一台单片机,从此开始飞速发展。
大致分为四个阶段:
1974—1976,典型的有F8系列,片内包括8位CPU,64B的RAM和两个并行口,用双片形式,工艺落后,集成度高;
1977—1978,能在片内集成CPU,并行口,定时\计数器,ROM和RAM等,但是性能低,品种少,应用范围不广,典型的有MCS—48系列;
1979—1982,是8位机的成熟阶段,存储容量和寻址范围大大提高,指令系统方面,设置了乘除法,位操作和比较指令,品种齐全,满足各种需求,典型的有MCS—51等;
1983之后,16位机和8位机并行发展,16位机工艺先进,集成度高,功能强运算快,能用工业专用的语言,典型的有MCS—96,但是,近年来出现的32位机更是顶尖产品,有M68300,SH等。
从嵌入式系统角度看,分为单片机微型计算机阶段,微控制器阶段及片上系统阶段。
单片机应用系统设计方法在随时代不断变化,未来趋势有:
全盘CMO化,CPU改进,增大存储量,提高集成度,提高并行口驱动能力减少外围芯片,外围电路内装化,以及与互联网的连接等都将是单片机行业以后的发展方向。
以后将会出现的是单片机与微机系统的差别越来越小甚至难以辨认,趋势是用标准单片机利用软件控制系统工作。
二、MCS-51单片机系统简介
MCS—51单片机是美国Intel公司在1980年推出的产品,指令数为111条。
MCS—51单片机是世界上用量最大的单片机之一。
目前,MCS—51主要有Philips,三星,花帮等公司在生产,在保持与MCS—51单片机兼容的基础上改善了其中的一些特性,提高速度,降低时钟频率,放宽电压波动的动态范围,降低产品价格。
MCS—51或其兼容的单片机是目前应用的主流产品,MCS—51系列单片机包括8031、8051、8751、89C51、89S51等通用产品。
三、设计思想
采用模块化的设计思想,程序设计实现的基本思想是一个计数器,选择一个单片机89C51,其内部为一个计数,是十六进制计数器,模块化后,通过设置和程序清除来实现状态的转化,由于每一个模块的计数不同,各个模块是以预置数和计数器共同完成。
还有计数模式和退出计数器,再利用LED灯来显示十字路口的通行状况,数码管显示倒计时时间,达到正常显示交通灯的结果。
四、硬件电路设计
五、软件设计框图
否
是
六、程序源代码
/*交通灯程序*/
/*P2.4口高位控制P2.5低位控制
P2.0-P2.3控制数据
交通灯LED通过P1口直接控制*/
#include<
reg51.h>
stdio.h>
#defineuintunsignedint
#defineucharunsignedchar//数码管
ucharcodeH_count[]={0x10,0x11,0x12,0x13,
0x14,0x15,0x16,0x17,
0x18,0x19,};
ucharcodeL_count[]={0x20,0x21,0x22,0x23,
0x24,0x25,0x26,0x27,
0x28,0x29,};
//交通灯
ucharcode_LED[]={0XBE,0XDE,0XEB,0XED,};
//全局变量
ucharflag;
//20ms
ucharcount,time0,time1,time2,loop;
//中断
ucharmsecond,minute;
ucharbutton,button_flag;
//特殊模式按键按下次数
ucharbutton_int1=0,flag_button;
//计时器模式
ucharPart;
ucharH,L;
//倒计时设置
ucharS1H=3,S1L=0;
ucharS2H=0,S2L=3;
ucharS3H=1,S3L=5;
ucharS4H=0,S4L=3;
//函数定义
voidTimer_Init()
{
TMOD=0x11;
//设置定时器0,定时器1为工作方式1
TH0=0XB1;
TL0=0XDF;
EA=1;
//开总中断
ET0=1;
//开定时器0中断
TR0=1;
//启动定时器0
}
voidInt01_Init()
IT0=1;
//边沿触发
EX0=1;
//开外部0中断
IT1=1;
//边沿触发
EX1=1;
//开外部1中断
voiddelay(void)//延时
uintk;
for(k=0;
k<
255;
k++);
////////////////////////////////////////////////数码管倒计时控制/////////////////////////////////////////////////////////////////
voidrefresh(ucharx,uchary)//动态刷新
P2=H_count[x];
delay();
P2=L_count[y];
voiddisplay_S1(void)//30s倒计时S1状态
if(flag==1)
{
refresh(S1H,S1L);
//初值30s
}
if(count==1)
count=0;
//程序跳转
if(S1H==0&
&
S1L==1)
{
Part=1;
S1H=3,S1L=0;
}
else
Part=0;
if(S1L==0)
S1H--;
S1L=9;
else
S1L--;
}//中断处理
if(button==1)
button_flag=Part;
Part=4;
}
if(button_int1==1)
flag_button=Part;
Part=5;
button_int1=0;
}
voiddisplay_S2(void)//3s倒计时S2状态
if(flag==1)
refresh(S2H,S2L);
//初值3s
//程序跳转
if(S2H==0&
S2L==1)
Part=2;
S2H=0,S2L=3;
Part=1;
if(S2L==0)
S2H--;
S2L=9;
S2L--;
}//中断处理
button_flag=Part;
voiddisplay_S3(void)//15s到0s倒计时S3状态
if(flag==1)
{
refresh(S3H,S3L);
//初值15s
}
if(S3H==0&
S3L==1)
Part=3;
S3H=1,S3L=5;
Part=2;
if(S3L==0)
S3H--;
S3L=9;
S3L--;
voiddisplay_S4(void)//3s倒计时S4状态
refresh(S4H,S4L);
//程序跳转
if(S4H==0&
S4L==1)
Part=0;
S4H=0,S4L=3;
Part=3;
if(S4L==0)
S4H--;
S4L=9;
S4L--;
Part=4;
voiddisplay_S5(void)//特殊状态
P1=0XEE;
if(button==2)
button=0;
Part=button_flag;
refresh(0,0);
voiddisplay_S6(void)//计数器模式
bittip=0;
if(button_int1!
=0)
{
H=button_int1/10;
L=button_int1%10;
refresh(H,L);
if(H==9&
L==9)
H=0;
L=0;
////////////////////////////////////////////////////////END////////////////////////////////////////////////////////////////
//主程序
voidmain(void)
{
Timer_Init();
Int01_Init();
while
(1)
switch(Part)
case0:
//0-3正常模式
display_S1();
P1=code_LED[0];
break;
case1:
display_S2();
P1=code_LED[1];
break;
case2:
display_S3();
P1=code_LED[2];
case3:
display_S4();
P1=code_LED[3];
case4:
//特殊模式
display_S5();
case5:
//计数器模式display_S6();
}
//中断子程序
voidtimer0()interrupt1//定时器0中断
TR0=0;
//进中断后先把定时器0中断关闭
TH0=0XB1;
TL0=0XDF;
time0++;
time1++;
if(time0=1)
flag=1;
time0=0;
if(time1>
=50)//1s
time1=0;
count++;
//打开定时器中断
voidInt0()interrupt0//外部0中断
IE1=0;
button++;
voidInt1()interrupt2//外部1中断
button_int1++;
七、结束语
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。
经过一周的学习与锻炼,成员之间相互配合,共同努力,还是有很大进步,
通过这次课程设计,掌握了设计一个使用装置电路的基本方法和步骤,增强了解决问题的能力。
八、参考文献
[1]李朝青.单片机原理及接口技术(修订版).北京:
北京航空航天大学出版社,1998
[2]李广弟.单片机基础.北京:
北京航空航天大学出版社,1992
[3]何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,1994
[4]张毅刚.单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,1990
[5]谭浩强.单片机课程设计.北京:
清华大学出版社,1989
[6]张鑫.单片机原理及应用(第二版).北京:
电子工业出版社
Abstract
Thissystemismadeupofsingle-chipmicrocomputer,keyboard,leddisplayingmoduleandtrafficlightssystem.Thesystemincludespavement,lefttruning,righttruning,andthebasictrafficlightsfunction.Exceptingthebasictrafficlightsfunction,italsoincludescouting,timeinstalling,emergencydisposaling,speechcluing,ledinformationdisplaying,adjustingthelightingtimeoflightsbasedondifferenttimeandcontrollingwithhandinaccordancewithcircumstancesandsoon.
附录:
实验电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 交通灯