基于单片机C语言交通灯数码管显示的设计完整版_第1页
基于单片机C语言交通灯数码管显示的设计完整版_第2页
基于单片机C语言交通灯数码管显示的设计完整版_第3页
基于单片机C语言交通灯数码管显示的设计完整版_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习文档仅供参考基于单片机C语言交通灯数码管显示的设计完整版/*P2口位控口,P0口段控口, P1口按键,P3口发光二极管*/#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint/*共阳数码管字型码数组*//*0,1,2,3,4,5,6,7,8,9,P.,灭*/charcodedis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x21,0xff};/*共阳数码管位控码数组〔从右往左点亮,反向驱动〕*/charcodeweikong_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};charfind_code[8];sbitS2=P1^0;//S1键启动交通灯控制器sbitS3=P1^1;//S2键回归“P.”状态sbitS4=P1^2;//S3键处理紧急状况uchartime;voidDelayX1ms(uintcount)//1ms延时函数{uintj;while(count--!=0){for(j=0;j<80;j++);}}/*********************显示函数*****************************/voiddisp(){ chari; chark; for(i=0;i<8;i++) { P2=weikong_code[i]; k=find_code[i]; P0=dis_code[k]; DelayX1ms(1); }}/********************1s延时********************************/voiddelay1s() { TMOD=0X01; EA=1; ET0=1; TH0=0x3C; //定时器定时50Ms TL0=0XB0; TR0=1; PT0=1; do{disp();}while(time!=20&&S3&&S4);//有条件转移 TR0=0; time=0;}voidtime_()interrupt1//中断程序{ time++; TH0=0x3C; TL0=0XB0;}/********************500ms函数********************************/voiddelay500ms(){ TMOD=0X01;EA=1;ET0=1;TH0=0x3C;TL0=0XB0;TR0=1;PT0=1;do{disp();}while(time!=10);//有条件转移TR0=0; time=0;}/**************************紧急函数**************************/voidjinji() { ucharf; for(f=10;f>0;f--) { P3=0x6F; find_code[1]=f/10;find_code[0]=f%10; delay500ms(); delay500ms(); disp(); }}/**********************主函数******************************/voidmain(){ while(1) { charm,a; //上电显示“班级、学号”状态 find_code[0]=9; find_code[1]=0; find_code[2]=10; find_code[3]=4; find_code[4]=0; find_code[5]=0; find_code[6]=1; find_code[7]=11; disp(); while(!S2) { while(S3) { P3=0XAF; for(m=60;m>0&&(S3);m--) { if(!S4) jinji(); find_code[1]=m/10; find_code[0]=m%10; delay1s(); disp(); } for(a=3;a>0&&S3;a--) {if(!S4) jinji(); find_code[1]=a/10; find_code[0]=a%10; P3=0xeF; delay500ms(); P3=0xcF; delay500ms(); disp(); } P3=0X77; for(m=30;m>0&&(S3);m--) { if(!S4) jinji(); find_code[1]=m/10; find_code[0]=m%10; disp(); delay1s(); } for(a=3;a>0&&S3;a--) {if(!S4) jinji(); find_code[1]=a/10; find_code[0]=a%10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论