




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#includeunsigned char code dis_721=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1, 0x86,0x8e,0xbf,0x89,0x8c,0x00,0xff;/共阳数码管 段码unsigned char data disbuf6=0x00,0x00,0x00,0x00,0x00,0x00;/显示缓冲区:时分秒使用unsigned char data count_timedx=2,10,5,10,25; /东西方向倒计时时间unsigned char data count_timenb=2,25,10,5,10; /南北方向倒计时时间unsigned char data Hour=14,Minite=06,Second=0,Halfsec=0; /定义时钟位unsigned char xdata *ledaddr=0x2000; /锁存器选通地址unsigned char data Ms=0,Lightcode=0,Light_step,Led_step,Light_num;unsigned int data Fault_dx=0,Fault_nb=0,Fault_total=0,Countdx=0,Countnb=0;sbit p10=P10; /第0位数码管位控制端sbit p11=P11; /第1位数码管位控制端sbit p12=P12; /第2位数码管位控制端sbit p13=P13; /第3位数码管位控制端sbit p14=P14; /第4位数码管位控制端sbit p15=P15; /第5位数码管位控制端sbit p16=P16; /发光二极管选通sbit p17=P17; /按键选通sbit p33=P33; /k1键 用于切换四种功能/*/*1毫秒延时函数*/void delay1ms(int t)unsigned int i,j; for(i=0;it;i+) for(j=0;j120;j+) ;/*/*键盘扫描函数*/unsigned char getkey(void) unsigned char Yiwei; unsigned char test=0x00,tim; *ledaddr=test; if(p17=0 & tim=0) /判断是否有按键按下 p17=1; tim=1;test=0xfe;delay1ms(5); for(Yiwei=0;Yiwei8;Yiwei+) /处理按键 *ledaddr=test; if(p17=0)break; else test=(test=4)&(Light_step=1)&(Light_step4) Light_num=0; if(key3=5) /KL2键用于修改东西方向倒计时,加1 count_timedxLight_num+; if(count_timedxLight_num=99) count_timedxLight_num=99; if(key3=1)/KL6键用于修改东西方向倒计时,减1 count_timedxLight_num-; if(count_timedxLight_num=99) count_timenbLight_num=99; if(key3=2)/KL3键用于修改南北方向倒计时,减1 count_timenbLight_num-; if(count_timenbLight_num9) Ms=0; Halfsec+; /计时半秒 if(Halfsec=2) Halfsec=0; Second+; /计时一秒 Countdx-; /东西、南北倒计时减一 Countnb-; if(Second=60) Second=0; Minite+;/计时一分 if(Minite=60) Minite=0; Hour+; /计时一小时 if(Hour=24) Hour=0; if(Countdx=0)|(Countnb=0) /转换交通灯显示状态 Light_step+; if(Light_step6) Light_step=1; if(Countnb=0) Countnb=count_timenbLight_step;/东西为红灯,南北绿、黄、左切换 if(Countdx=0) Countdx=count_timedxLight_step;/南北为红灯,东西绿、黄、左切换 /*/*外部中断1服务函数*/void int_1(void) interrupt 2 /数码管显示状态切换 EX1=0; /关中断 if(Led_step4) Led_step+; if(Led_step=4) Led_step=0; EX1=1;/开中断/*串行口中断服务函数*/void ser_put(void) interrupt 4 /上位机发出字符c,则清违章记录,若发出g,则上传违章记录 if(RI=1) /接收到上位机发出的字符 RI=0; ACC=SBUF; /取字符 if(ACC=c) /清违章记录 Fault_dx=0; Fault_nb=0; else if(ACC=g)/上传违章记录 Fault_total=Fault_dx+Fault_nb; SBUF=Fault_total; if(TI=1) /发送中断 TI=0;/*/*8051初始化函数*/void Istr(void) /*定时器初始化*/TMOD=0x21;/定时器1工作于方式2,做波特率发生器;定时器0工作于方式1,做定时器 TH1=0xfa; /产生9.6kbit/s波特率 TL1=0xfa; TH0=0x4c; /50ms TL0=0x00; /*串行通信初始化*/ SCON=0x50; PCON=0X80|PCON; /*启动定时器,开中断*/ ET1=0; /禁止定时器1中断 ET0=1; TR1=1; TR0=1; IT1=1; /设置外部中断为边沿触发 EX1=1; ES=1; EA=1;/*主函数*/void main(void) Istr(); /调用初始化函数 Led_step=0; Light_step=0; Light_num=0; Countdx=count_timedx0; Countnb=count_timenb0; SBUF=s; while(1) if(Led_step=0) /显示倒计时 displed(20,(Countdx/10),(Countdx%10),20,(Countnb/10),(Countnb%10); if(Led_step=1) /显示时钟 shuzizhong(); /调用数字钟函数 displed(disbuf5,disbuf4,disbuf3,disbuf2,disbuf1,disbuf0); if(Led_step=2) /修改倒计时数 change_time(); /调用修改倒计时时间函数 displed(Light_num,count_timedxLight_num/10,count_timedxLight_num%10,Light_num,count_timenbLight_num/10,count_timenbLight_num%10); if(Led_step=3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基础业务能力考核试题及答案
- 中外饮食文化知到智慧树答案
- 新生儿疾病的诊疗与护理考核试题及答案
- 2025版企业设备融资租赁抵押合同规范范本
- 2025版法院离婚协议书范本撰写与离婚协议书变更条件
- 2025版人防工程合同履约担保及风险控制合同
- 2025年度航空航天电子工程合同模板
- 2025年度汽车租赁及自驾游服务合同样本
- 2025年度试卷印刷保密协议执行监督机制
- 2025二手楼赎楼担保与房产市场调研服务合同
- 第五版-FMEA培训教材-新版
- 基于品牌忠诚度的餐饮App的营销策略研究以“瑞幸咖啡”App为例
- 碳中和技术概论全套教学课件
- 商业计划书推广
- 选品与采购全套教学课件
- 维生素D与女性生殖健康的预防
- DB13-T 5838-2023大型会展活动临建设施安全、绿色管理通用要求
- 创伤失血性休克中国急诊专家共识(2023)解读
- 材料风险调差表
- (订正版)全面质量管理知识习题集大全(含答案)
- 武汉市古树名木资源调查报告
评论
0/150
提交评论