基于单片机stc89c52rc的交通灯

基于单片机stc89c52rc的交通灯

ID:6807201

大小:38.50 KB

页数:13页

时间:2018-01-26

基于单片机stc89c52rc的交通灯_第1页
基于单片机stc89c52rc的交通灯_第2页
基于单片机stc89c52rc的交通灯_第3页
基于单片机stc89c52rc的交通灯_第4页
基于单片机stc89c52rc的交通灯_第5页
资源描述:

《基于单片机stc89c52rc的交通灯》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于单片机STC89C52RC的交通灯摘要:本交通灯系统采用STC89C52RC作为核心控制器,控制红绿黄三盏灯,来达到模拟日常交通灯系统,其中倒计时时间通过1602显示出来。关键词:交通灯1602液晶一、设计方案整个模拟交通灯系统用单片机STC89C52RC作为核心控制器,有序的控制着红黄绿三盏灯的运行,实际交通灯系统所需的倒计时时间采用1602显示出来,并且其倒计时时间可通过独立式键盘进行调整。STC89C52红黄绿LED1602液晶独立式键盘系统框图二、主程序流程图开始系统初始化等待中断N按键是否按下?Y调用按键处理函数返回一、附录------

2、源程序(C)一、themainfunctionofthissystem/**用stc52实现简易交通灯*/#include#include#include"define.h"#include"lcd_1602.h"#include"delay.h"#include"some_inits.h"#include"control.h"/****************************************主函数voidmain()***************************************

3、*/voidmain(){sys_init();while(1){key_scan();//扫描键盘delay_ms(100);}}二、includeSome.hfiles(1)defines.h#ifndef_define_h#define_define_h#defineucharunsignedchar#defineunintunsignedint/*液晶数据区*/sfrlcd_bus=0x80;//液晶数据口sbitE=P2^7;sbitRW=P2^6;sbitRS=P2^5;/*定义三盏led*/sbitred=P2^0;sbitgreen=

4、P2^1;sbityellow=P2^2;/*定义三个开关*/sbitjia=P1^0;//加一键sbitjian=P1^1;//减一键sbitok=P1^2;//确认键ucharflag=1;//1,2,3:绿灯,黄灯,红灯bitfirst=0;/*蜂鸣器*/sbitbell=P1^4;ucharsec_h;//秒针十位ucharsec_l;//秒针个位ucharg_h=1,g_l=0;//绿灯计时数据uchary_h=1,y_l=0;//黄灯计时数据ucharr_h=1,r_l=0;//红灯计时数据#endif(2)some_inits.h#if

5、ndef_some_inits_h#define_some_inits_h#include"lcd_1602.h"#include"define.h"//statesomefunctionsvoidL1602_init();voidTime0_init();/*系统初始化*/voidsys_init(){flag=1;//绿灯green=1;red=0;yellow=0;L1602_init();//1602液晶初始化Time0_init();//定时器0初始化}/*1602初始化*/voidL1602_init(void){enable(0x01)

6、;enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);L1602_string(1,2,"trafficlights");sec_h=g_h;sec_l=g_l;L1602_char(2,8,sec_h+0x30);L1602_char(2,9,sec_l+0x30);}/*定时器0初始化*/voidTime0_init(){TMOD=0x01;//time0,time1工作在方式一IE=0x8a;//开EA,允许ET0,允许ET1TH0=0x4c;//50ms,晶振是11.0592MTL0=0x0

7、0;//TH1=0xfc;//1ms//TL1=0x66;TR0=1;//time0开始计数}#endif(3)control.h#ifndef_control_h_#define_control_h_#include#include"lcd_1602.h"#include"define.h"#include"delay.h"/*statesomefunctions*/voidinc();voiddec();voidfmq();/*键盘扫描函数*/voidkey_scan(){if(ok==0){delay_ms(5);if(o

8、k==0){fmq();enable(0x0c);//关光标first=0;TR0=1;//开始计数}els

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。