51单片机常见程序,附带注释

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51 单片机常见程序

附带注释

三位数分离成 3 个一位数,截取 bai=num/100;// 输出百位数 shi=num%100/10;// 输出十位数 ge=num/10;// 输出个位数

//跑马灯程序。当时间约为 20ms 形成动态扫描, #include #define uint unsigned int 0~65536

// 无符号整型,占 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 #define uint unsigned int 0~65536

// 无符号整型,占 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 //52 系列单片机头文件(目标:用单片机和两个共阴极数码管:使用单片机的引脚1和2,控制两个数码管静态显示00到59)

#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 //52 系列单片机头文件(目标:用单片机和两个共阴极数码管)#define uchar unsigned char

#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 锁存端

相关文档
最新文档