標(biāo)題:
89c52,不用鎖存器的數(shù)碼管,如何編出動(dòng)態(tài)顯示的程序
[打印本頁(yè)]
作者:
ct520
時(shí)間:
2018-5-20 20:08
標(biāo)題:
89c52,不用鎖存器的數(shù)碼管,如何編出動(dòng)態(tài)顯示的程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wela1=P2^0;
sbit wela2=P2^1;
sbit wela3=P2^2;
sbit wela4=P2^3;
sbit wela5=P2^4;
sbit wela6=P2^5;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
void delay(uint);
void main()
{
while(1)
{
wela1=0;
P0=table[0];
delay(5);
wela1=1;
wela2=0;
P0=table[1];
delay(5);
wela2=1;
wela3=0;
P0=table[2];
delay(5);
wela3=1;
wela4=0;
P0=table[3];
delay(5);
wela4=1;
wela5=0;
P0=table[4];
delay(5);
wela5=1;
wela6=0;
P0=table[5];
delay(5);
wela6=1;
}
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
作者:
zhanghyg
時(shí)間:
2018-5-22 09:45
你現(xiàn)在的程序不是常量嘛,用一個(gè)變量tab[n],n變化就能動(dòng)態(tài)顯示了
作者:
GUOXU
時(shí)間:
2018-5-22 10:23
#include<reg51.h> #define SEG P0 unsigned char SMGD[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}; //共陽(yáng)極 段顯0~9 unsigned char SMGW[]={0x01,0x02,0x04,0x08}; //位選1~4 void delay(unsigned int i) //延時(shí)函數(shù) { while(i--); } void main(void) //主函數(shù) { unsigned char Temp; while(1) { switch (Temp%4) { case 0:P0 = SMGD[Temp%10];break; case 1:P0 = SMGD[Temp%10];break; case 2:P0 = SMGD[Temp%10];break; case 3:P0 = SMGD[Temp%10];break; } P2 =SMGW[Temp%4]; Temp++; delay(50000); } }
作者:
guo6339419
時(shí)間:
2018-5-22 11:53
顯示第一個(gè)字,然后清除,然后顯示第二個(gè),如此循環(huán)就行
作者:
wulin
時(shí)間:
2018-5-22 20:45
使用鎖存主要是為了達(dá)到I/O口復(fù)用的目的,節(jié)省I/O口。如果I/O口夠用當(dāng)然可以不用鎖存器。示例如下:
無(wú)標(biāo)題.jpg
(180.68 KB, 下載次數(shù): 37)
下載附件
2018-5-22 20:44 上傳
#include <AT89X51.H>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uchar code table1[]={
0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80};
void delay(uint k)
{
uint i,j;
for(i=k;i>0;i--)
for(j=114;j>0;j--);
}
void main()
{
uchar i=0;
while(1)
{
for(i=0;i<8;i++)
{
P0=0xff;
P2=table1
;
P0=table
;
delay(1);
}
}
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1