【精编】基于80C51单片机的交通灯设计.pdf

上传人:索**** 文档编号:85741271 上传时间:2023-04-12 格式:PDF 页数:15 大小:2.61MB
返回 下载 相关 举报
【精编】基于80C51单片机的交通灯设计.pdf_第1页
第1页 / 共15页
【精编】基于80C51单片机的交通灯设计.pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《【精编】基于80C51单片机的交通灯设计.pdf》由会员分享,可在线阅读,更多相关《【精编】基于80C51单片机的交通灯设计.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于 851单片机的交通灯设计作者:日期:基于 8C1 单片机的交通灯设计班级:电信 1101 姓名:XXX 学号:703101一、设计说明及材料清单(一)设计说明:本交通灯的设计简化了十字路交通灯,只将东西和南北两个路向的交通灯情况表示出来,但也做了很多改进,设计了针对不同时间段不同的控制方案,并且采用串口通讯可将不同的控制方案下载到芯片中,外接掉电保存程序的非易失性存储芯片和掉电仍可计时的时钟芯片,以保证计时的正确性。(二)材料清单:二、电路原理图设计本设计共用到四款主要芯片,分别为单片机芯片8 5、E ROM 芯片 AT2402、时钟芯片DS1302和转串口芯片AX232。(一)下图为

2、C5单片机芯片的管脚图,80C51 有两个 6 位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有个8 位并行输入口即I/O 口。8C内部有 时钟电路,但需要石英晶体和微调电容外接,本系统中采用2M z的晶振频率。器件 数量器件 数量80C51112M、32.768k晶振 各1只AT24C02 存储芯片110uF电解电容1MAX232 转串口芯片11.0uF电解电容5DS1307 时钟芯片122pF普通电容2SN7407 驱动器410k电阻3缓冲器134.7k 电阻15LED 灯6按键1七段数码管4(二)下图为 A 0芯片的原理图,该芯片是一种带有I2C总线结构的EEPRO 芯片

3、,通过SDA和 SCL端口与总线连接,具有非易失性,掉电仍可保存程序。其管脚功能如下:管脚名称功能说明A0、A1、2 器件地址选择本设计全部接地 A串行数据、地址与单片机的P1连接进行数据、地址的传输SCL 串行时钟与单片机的P1.7 相连,串行时钟信号输入WP 写保护P1,只能对其读,写禁止,所以令 WP=0 VCC+1.V6.0V 工作电压电源输入GD 地接地引脚(三)下图是时钟芯片的电路原理图,DS1307 是一款低功耗,地址和数据通过两线双向的串行总线的传输,节省单片机资源,该芯片可以提供秒,分,小时等信息,芯片有一个内置的电源感应电路,具有掉电检测和电池切换功能,本设计中需要其停电后

4、继续计时。其中的7 引脚是方波的输出端,可接入单片机的可引起中断的端口,利用引脚7 产生的方波引起中断,从而显示时间的变化。(四)下图是 X232 芯片的原理图,因为设计要求与电脑有串口通讯,就是将交通灯不同时间段程序控制方案通过串口下载到单片机里,单片机上有一个全双工的串行通讯口,但电脑的串口是R 23电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,所以采用了专用芯片X232 进行转换,下图中的7、8 端口分别和电脑上的S23端口的2、3 连接,芯片的和10 端口与单片机的串口相连,如下图所示:(五)下图为交通灯的总体原理图(不包括上述芯片原理图),根据要求选择六只LD

5、 灯作为东西和南北方向的红绿黄交通灯,并且每个方向上有时间计数提示,每个方向有两位数码管动态显示,最大为 9,采用共阴极7 段数码管,单片机通过驱动器S7404 的放大电流驱动每位数码管。P1.至 1.5 控制六只 ED 灯,数码管由 0.至.6 控制进行段选,2.至 P2.3 控制位选。三、程序设计(一)系统框图:开始05点东西南北黄灯闪57点东西南北绿灯各亮30秒1218点 东西方向绿灯 60秒,南北方向绿灯 30秒1824点东西南北方向的红灯同时亮3秒结束复位712点东西方向绿灯亮30秒,南北方向绿灯亮60秒(二)主程序如下:#incluee51.h i lu e#efiEW_H 0 d

6、fine E_L 1#deiSN_#d ine N_L/函数声明vo d EW_ONE();voi E_RED();void _YELLOW();voiEWG EEN();oidSN_NONE();vid SN ED();oidSN_YEL OW();oid N GREEN();void EDINIT();d LED_WR TE(i t dt,int c n);/根据原理图定义交通灯的引脚sb t EW_LED_ E=P10;it EW_EDYL O=P 1;sbit EW_ ED_ RE N 2;sbit SN_ED_RE =P13;sbit SN_LED_ ELL=P14;bi S_LE

7、_GRE N P15;/定义 P20-P23=LED数码管控制bit EW eixuan_H P0;sbit _eiua_ P21;sit SN_w xan_=22;si N_wixun_L=23;/定义 P00-P07=LE数码管段选引脚sbit LED_ATA_A=P00;bitLD_DATA_B=P01;sit ED_DATA P2;sbi D_DAA_D=03;sbit LD_DAT _E=04;sbiLED TAF=P;bt LED_D _G P0;sbi SCL=P 6;sb t SDA=17;/变量声明 ined char counter,e _sgn,sn_si,e time,

8、sn_tim,hu/定义段码oe chr L _COD 10 0 x3f,x06,0 x5b,x4f,0 x6,0 x6d,0 x7d,0 x7,7,6f;/main 函数开始*/ma()?unte=3;/计数器,每 3600s 查询一次当前hour?ew_sin=;/东西标志位,代表红灯,1 代表绿灯,2 代表黄灯s sig=0;/南北标志位,0 代表红灯,1 代表绿灯,代表黄灯?ew_time=3;/东西时间?sn_t e=;/南北时间?our=4;当前ounsigned e total_ me24=,1,1,1,1,30,30,30,,30,3,30,6,60,60,0,30,30,30

9、,30,3,30/东西各时间段绿灯亮总时间uns ne char sn_otal_im 24 1,1,1,1,1,3,3,0,0,60,0,30,30,3,0,0,30,30,30,0南北各时间段绿灯亮总时间LED_IN I();EW_R D();?SN_RED();?whie(1)?i(co er=0)?hou GT_HOUR();?count=3 0;?switch(our)?c se 5:?e _time 30;?n_ime=3;?w_in=1;?sn_ n0;?E GREE();?S _R D();?beak;?ase 7:?ew_time=30;?sn_ me=3;?wsign=1;

10、?sn_s n=0;?EW_REEN();?SNRED();?brak;as :?w_ti e=60;?sn_tm=6;?ew_sin1;?s_ gn=0;?W_GRE N();?_RED();?break;?c e 1:?e_ me=30;?sn_ti e=33;?ew_sign 1;?s_sign 0;?E_GREE();?NRED();?reak;?defalt:?rek;?i(w_ e =0)?wit h(ews)?cas 0:?ewsign 1;?e ime=w_ tal_ti ehur;?_GEEN();?break;?case 1:?w_ ign=2;?ew_time=3;?EW

11、_YE OW();?b k;?cae2:?ew_in=0;?w_ime=n_tota ti ehur+;?W ED();?reak;?f(s time=)?ch(s sign)?ase 0:?sn_ign=1;?sn im=_ t _tiehour;?_ REEN();?bre;?cas 1:?n_ign=;?n_ime=3;?SN_ELW();?br ak;?ase:?sn_ign=0;?sn_tme=e_otal m hour+3;?SN_RED();?beak;?LED_WRITE(_i e/1,EWH);?LED_ RITE(ewtme10,EW_L);?E_WRIT(s_ime10,

12、SNH);?LE WRITE(sn_ti e%,SN_);/ain 函数到此结束,以下是所用到函数的定义/*所用函数的定义*vid DIN()?LED 0 00;?EW eiuan_H 1;?E _ei anL=1;?S _wi an_=1;?S _we xuan_L=;vidED_WRIT (nt at,in cn)EW_wixuan_H=0;?EW_ xa L=0;SN_ eiu _H=0;N_we xua_=0;?if(da 0)?LD=LE_CODEdt;?sw h(con)?case WH:?EW_eixua_ 1;?bre;?aEW_L:?EWweix n_L=1;?beak;?c

13、ae N_:?SNwe uan_H=1;?brek;?case N_L:?SN wexuan_L;?ea;?dtier_int()iterrupt 0?E =0;ouner-;itch(hou)?case 0:?as 1:?cas2:case3:c e:?EWYE W();?S _YELLOW();?EW_NO E();?SN_NOE();?break;?ef lt:?ewtie-;?n_ime-;i(ew_ign=1&w_time 0)?_GREN();?EW_NON();?f(s_sgn=1&sn_tme 0)?S G EE();SN_NON();?break;?1;/延迟函数定义*/vo

14、id D LAY2()?_ p_();nop_();/延迟 2us vidDEL 4()?D AY2();DELAY2();/延迟 uvoid DLA()DELAY();?DEL ();/延迟 8uvi IIC_WRI(usigedhar dt)nsigned char emp;?fr(em 0;emp 8;temp+)?SCL=0;if((dat emp)0 x8)?SDA 1;?ele?S A=0;?DEAY2();SCL=1;DELAY();SCL=;?ELAY4();SDA=;DEL Y2();?SCL=;ELA 4();S L=0;us ne chaGET HOUR()/START

15、hor=0;unsi ne chrtem;?SDA;CL ;?ELA();SDA=0;?DLA8();?/WRI E IC_WRITE(0XD0);?/HO ADRESS IIC_WRIE(0X02);/RESTART SDA=;?SCL=;ELAY8();?SDA=;DELAY ();?/READ C_WRIT(XD);?/RE DHUR SDA=;?or(tem =0;temp 8;tem )?hor=hour 1;SC ;?DELAY();if(SDA)?hour+;?CL=0;?/ENNOCK SDA;SCL=1;A4();SCL=0;/OP?SDA=0;?SCL=1;DELAY ()

16、;?DA=1;DEAY4();SCL=0;?retun hou;四、心得体会通过这次的实验设计,我深入了对单片机的了解,也明白了日常生活中处处有自动控制的例子,其中不乏有各种系列的单片机,同时我也认识到对单片机的学习应该更加深入才能得心应手,虽然只是一个芯片而已,但是如果你具备足够的知识,就可以充分利用,根据自己的设想就可以做出各种实用的东西,而我现在发现自己基本还处于初级阶段,需要更加努力,特别是编程能力,当然也有收获,首先我对protel 的使用更有信心了,又发现了其中的一些功能,同时我也了解了一些其它芯片,比如EE R M 存储芯片AT24C 2 的非易失性,DS102 时钟芯片可以精确的计时,为了与电脑进行串口通讯必须采用转串口芯片比如MA 23,从而实现单片机的TT电平到 S 2 电平的转换。总之这次设计实验收获不少,反省也不少,但重要的是更激发了我对单片机学习的热情。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁