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