1 / 5
文档名称:

单片机跑马灯(做).doc

格式:doc   大小:26KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机跑马灯(做).doc

上传人:文库旗舰店 2020/3/30 文件大小:26 KB

下载得到文件列表

单片机跑马灯(做).doc

文档介绍

文档介绍:#include<>#defineucharunsignedchar#defineuintunsignedint#defineCycleTimes1000//设置这个就可以加快速度,比如设置为1000/60//以下定义没有为什么,必须的sbitDAT164=P0^6;//thebitofHC164'sdatasbitCLK164=P0^7;//thebitofHC164'sclockuchardataLED;//定义LED为数码管显示值//以下定义位选选择器:选择则置为1sbitDIG1=P0^0;sbitDIG2=P0^1;sbitDIG3=P0^2;sbitDIG4=P0^3;sbitDIG5=P0^4;sbitDIG6=P0^5;uchardigit1=0;uchardigit2=0;uchardigit3=0;uchardigit4=0;uchardigit5=0;uchardigit6=0;uintcount=CycleTimes;//循环20次=1000*1ms=1suintdigit=0;//当前显示的数字//以下定义段选选择器(数码管显示值)(看这个值发现置高电平才使段亮,所以全不亮是0x00)codeunsignedcharLEDMAP[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};//==延迟函数============================================//延迟时间:xmsvoiddelay(intx){inti,j;for(i=0;i<x;i++)//大循环大约延迟1xms{for(j=0;j<110;j++)//该循环大约延迟1ms{;}}}//好吧,没有为什么,开发板电路原理不明voidsend164()//thefunctionofsendthedatatothe"74HC164"{unsignedchardataj;for(j=0;j<8;j++){if(LED&0x80){DAT164=1;}else{DAT164=0;}CLK164=1;CLK164=0;LED<<=1;}}//定义定时器0的中断处理子程序,标号为1;定时时间为1msvoidTime0()interrupt1{EA=0;//关中断//重新装初值:TH0=(65535-1000)/256;TL0=(65536-1000)%256;LED=0xff;//消影//每隔10ms扫描一遍6个数码管if(count%6==0){DIG1=0;DIG2=1;DIG3=1;DIG4=1;DIG5=1;DIG6=1;LED=LEDMAP[digit1];send164();}elseif(count%6==1){DIG1=1;DIG2=0;DIG3=1;DIG4=1;DIG5=1;DIG6=1;LED=LEDMAP[digit2];send164();}elseif(count%6==2){DIG1=1;DIG2=1;DIG3=0;DIG4=1;DIG5=1;DIG6=1;LED=LEDMAP[digit3];send164();}elseif(count%6==3){DIG1=1;DIG2=1;DIG3