8段数码管显示

来源:互联网 发布:网络教育统考成绩查询 编辑:程序博客网 时间:2024/05/17 16:43
#include <reg52.h>


#define Dataport P0 


unsigned char segcode[8] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};   //段码
///unsigned char bitcode[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位码
sbit Latch_seg = P2^2;
sbit Latch_bit = P2^3;


void delay(unsigned int i)
{
while(--i);
}
////////////////////////////数码管0-7显示函数
/*void display(unsigned char firstbit,unsigned char num)
{
unsigned char i;
while(1)
{
Dataport = 0;
Latch_seg = 1;
Latch_seg = 0;
 

Dataport = segcode[i];
Latch_seg = 1;
Latch_seg = 0;
// Dataport = ~w;


Dataport = bitcode[i + firstbit];
Latch_bit = 1;
Latch_bit = 0;
delay(200);
// w <<= 1;
i++;
if(i == num)
{
i = 0;
// w = 0x01;
}

}
}*/
//////////////////////////////
void main()
{
unsigned char i,w;
w = 0x01;

while(1)
{
Dataport = segcode[i];
Latch_seg = 1;
Latch_seg = 0;
Dataport = ~w;
Latch_bit = 1;
Latch_bit = 0;
delay(200)
w <<= 1;
i++;
if(i == 8)
{
i = 0;
    w = 0x01;
}
}

}
0 0
原创粉丝点击