//==声明区=================================================
#include<reg51.h>//定义8051寄存器的头文件,P2-17~19
#define SEG P0 //定义七段LED数码管接至Port 0
/*声明七段LED数码管驱动信号数组(共阳)*/
char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //数字0-4
0x92,0x83,0xf8,0x80,0x98}//数字5-9
void delay(int) //声明延迟函数
//==主程序==========================================
main() //主程序开始
{ unsigned char i//声明无符号变量i
while(1)//无穷循环,程序一直跑
for(i=0i<10i++) //显示0-9,共10次闭虚族
{ SEG=TAB[i]//显示数字
delay(500) //延迟500×1m=0.5秒
} //for循环结束
} //主程序结束
//==子程序==========================================
/* 延迟函数,延迟约x×1ms */
void delay (int x) //延迟函数誉逗开始
{int i,j //声明整形变量i,j
for (i=0i<xi++) //计数x次,延迟x×1ms
for (j=0j<160j++) //计数120次,延迟1ms
} //延迟函数结束轿弊
1、新建项目拆猜兄旅袭,做好准备。
2、数码管段选表。
3、延时函数。
4、uchar i变量i;wk = 1打开位选,P0 = 0xf71111 0111第4位数码管显示,wk = 0关闭位选。
5、while(1) //死循环效果{} 。
6、dk = 1//打开段选,P0 = leddata[i],dk = 0//关闭段选,delay(100)//延时效果。
7、选择效果,限兆唯制i值的循环范围。
#include //52系列单片机头文祥早件\x0d\x0a#define uchar unsigned char //宏定义\x0d\x0a#define uint unsigned int\x0d\x0asbit dula=P2^6//申明u1锁漏宴槐存返友器的锁存端\x0d\x0asbit wela=P2^7// u2\x0d\x0auchar num1,num2\x0d\x0auchar code table[]={ //数组定义\x0d\x0a0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,\x0d\x0a0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}\x0d\x0auchar code aable[]={ //位选数组定义\x0d\x0a0xfe,0xfd,0xfb,0xf7,0xef,0xdf}\x0d\x0avoid delays(uint)//子函数申明\x0d\x0a\x0d\x0a void main() \x0d\x0a{\x0d\x0awhile(1)\x0d\x0a{\x0d\x0a for(num1=0num1//6个数循环显示\x0d\x0a{\x0d\x0awela=1//打开u2锁存端\x0d\x0aP0=aable[num1%6]//送入位选信号\x0d\x0awela=0//关闭u2锁存端\x0d\x0a//delays(1)\x0d\x0adula=1//打开u1锁存端\x0d\x0aP0=table[num1%16]//送入段选信号\x0d\x0adula=0//关闭u1锁存端\x0d\x0adelays(1)\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a/*---------主函数-----------------------------------------------*/\x0d\x0a\x0d\x0avoid delays(uint xs)\x0d\x0a{\x0d\x0auint i,j,k\x0d\x0afor(i=xsi>0i--)\x0d\x0afor(j=1000j>0j--)\x0d\x0afor(k=110k>0k--)\x0d\x0a}\x0d\x0a/*----------------延时程序-----------------------------------------------*/欢迎分享,转载请注明来源:内存溢出
评论列表(0条)