您的位置:首页 > 其它

(4)51单片机入门案列-8个数码管中循环显示数字0-9

2017-07-20 17:08 393 查看
通过控制段选信号锁存器和位选信号锁存器,两个for循环点亮8个数码管和显示0-9数字

工具:Keil U3 + STC-SP(v6.86)+BST-v51单片机开发板

晶振:11.0592MHZ

实现代码如下:

#include <reg51.h>

sbit dula=P2^6;     //段选信号的锁存器控制
sbit wela=P2^7;     //位选信号的锁存器控制

unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};   //数码管表

unsigned char ch[] = {      //字符表
0x3F,  //"0"
0x06,  //"1"
0x5B,  //"2"
0x4F,  //"3"
0x66,  //"4"
0x6D,  //"5"
0x7D,  //"6"
0x07,  //"7"
0x7F,  //"8"
0x6F,  //"9"
};              //数码管各位的码表

void delay(unsigned int i)  //延时函数
{
unsigned int m,n;
for(m=i;m>0;m--)
for(n=90;n>0;n--);
}

void main()
{

unsigned char i,j;
while(1)
{
for(i=0;i<9;i++)    //8个数码管循环
{
for (j = 0; j < 10; i++)
P0=table[i];    //选择数码管
wela=1;         //位选开启
wela=0;         //位选关闭

P0=ch[i];       //选择数字
dula=1;         //段选开启
dula=0;         //段选关闭
if (i<9)        //点亮最后一个数码管到第一个数码管之间无间隔
delay(150);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机