资源描述:
《51单片机常见程序,附带注释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、51单片机常见程序附带注释三位数分离成3个一位数,截取bai=num/100;//输出百位数shi=num%100/10;//输出十位数ge=num/10;//输出个位数#include//跑马灯程序。当时间约为20ms,形成动态扫描,看上去全亮。#include#defineuintunsignedint//无符号整型,占16位数,表示范围0~65536#defineucharunsignedchar//无符号字符型占八位数,表示范围0~255voiddelayms(uint);uchar
2、aa;//定义变量voidmain(){aa=0xfe;while(1){P2=aa;//控制单片机接口p2,循环亮delayms(500);//当500换成5,看起来全亮,实际上灯一直亮灭,原因是视觉延迟aa=_crol_(aa,1);}}voiddelayms(uintxms)//子程序,延时,通过数数{uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}#include//跑马灯程序。现在时间较长,多以是亮灭的流动,当时间约为20ms,形成动态扫描,看上去全亮。#in
3、clude#defineuintunsignedint//无符号整型,占16位数,表示范围0~65536#defineucharunsignedchar//无符号字符型占八位数,表示范围0~255voiddelayms(uint);ucharaa;//定义变量voidmain(){aa=0xfe;while(1){P2=aa;//控制单片机接口p2,循环亮delayms(500);//当500换成5,看起来全亮,实际上灯一直亮灭,原因是视觉延迟aa=_crol_(aa,1);}}voiddelayms(uin
4、txms)//子程序,延时,通过数数{uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}#include//52系列单片机头文件(目标:用单片机和两个共阴极数码管:使用单片机的引脚1和2,控制两个数码管静态显示00到59)#defineucharunsignedchar#defineuintunsignedintsbitdula1=P1^7;//申明U1锁存器锁存端段选sbitdula2=P0^7;//申明U1锁存器锁存端段选ucharnum,num1;ucharcode
5、table[]={//共阴极数码管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uint);voidmain(){while(1){for(num1=0;num1<=5;num1++){for(num=0;num<=9;num++){dula2=1;//打开U1锁存端P1=table[num];//送入位选信号dula2=0;//关闭U1锁存器delayms(1
6、00);//延时500毫秒约0.3sdula1=1;//打开U1锁存端P2=table[num1];//送入位选信号dula1=0;//关闭U1锁存器delayms(100);//延时500毫秒约0.3s}}}}voiddelayms(uintxms){uintx,y;for(x=xms;x>0;x--)//x=xms即延时约为xms毫秒for(y=200;y>0;y--);}#include//52系列单片机头文件(目标:用单片机和两个共阴极数码管)#defineucharunsignedchar#define
7、uintunsignedintsbitdula1=P1^7;//申明U1锁存器锁存端段选sbitdula2=P2^7;//申明U1锁存器锁存端段选ucharnum,num1;ucharcodetable[]={//共阴极数码管0123456789abcdef0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uint);voidmain(){while(1){for(num1=0;num1<=9;n
8、um1++){dula1=1;//打开U1锁存端P1=table[num1];//送入位选信号dula1=0;//关闭U1锁存器delayms(1000);//延时500毫秒约0.3sfor(num=0;num<=9;num++){dula2=1;