51单片机常见程序,附带注释
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51 单片机常见程序
附带注释
三位数分离成3个一位数,截取
bai=num/100;//输出百位数
shi=num%100/10;//输出十位数
ge=num/10;//输出个位数
#include
#include
#define uint unsigned int //无符号整型,占16位数,表示围0~65536
#define uchar unsigned char //无符号字符型占八位数,表示围0~255
void delayms(uint);
uchar aa; //定义变量
void main()
{
aa=0xfe;
while(1)
{
P2=aa; //控制单片机接口p2,循环亮
delayms(500); //当500换成5,看起来全亮,实际上灯一直亮灭,原因是视觉延迟
aa=_crol_(aa, 1);
}
}
void delayms(uint xms) //子程序,延时,通过数数
{
uint i, j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
#include
#include
#define uint unsigned int //无符号整型,占16位数,表示围0~65536
#define uchar unsigned char //无符号字符型占八位数,表示围0~255
void delayms(uint);
uchar aa; //定义变量
void main()
{
aa=0xfe;
while(1)
{
P2=aa; //控制单片机接口p2,循环亮
delayms(500); //当500换成5,看起来全亮,实际上灯一直亮灭,原因是视觉延迟
aa=_crol_(aa, 1);
}
}
void delayms(uint xms) //子程序,延时,通过数数
{
uint i, j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula1=P1^7; //申明U1锁存器锁存端段选
sbit dula2=P0^7; //申明U1锁存器锁存端段选
uchar num,num1;
uchar code table[]={ //共阴极数码管0123456789abcdef
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint) ;
void main ()
{
while(1)
{
for(num1=0;num1<=5;num1++)
{
for(num=0;num<=9;num++)
{
dula2=1; //打开U1锁存端
P1=table[num]; //送入位选信号
dula2=0; //关闭U1锁存器
delayms(100); //延时500毫秒约0.3s
dula1=1; //打开U1锁存端
P2=table[num1]; //送入位选信号
dula1=0; //关闭U1锁存器
delayms(100); //延时500毫秒约0.3s
}
}
}
}
void delayms (uint xms)
{
uint x, y ;
for (x=xms;x>0;x--) //x=xms即延时约为xms毫秒
for (y=200;y>0;y--);
}
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula1=P1^7; //申明U1锁存器锁存端段选
sbit dula2=P2^7; //申明U1锁存器锁存端段选
uchar num,num1;
uchar code table[]={ //共阴极数码管0123456789abcdef
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint) ;
void main ()
{
while(1)
{
for(num1=0;num1<=9;num1++)
{
dula1=1; //打开U1锁存端
P1=table[num1]; //送入位选信号
dula1=0; //关闭U1锁存器
delayms(1000); //延时500毫秒约0.3s
for(num=0;num<=9;num++)
{
dula2=1; //打开U1锁存端
P1=table[num]; //送入位选信号
dula2=0; //关闭U1锁存器