munuc_w 發表于 2021-11-5 12:31
位和段都是如何驅動的?沒有硬件電路,看不出什么。
#define uchar unsigned char
#define FLASH_FREQ 100
sbit KEY1 = P1^4; //定義KEY1 分加1
sbit KEY2 = P1^5; //定義KEY2 秒加1
#define COM1_ON (P2=0x01)
#define COM2_ON (P2=0x02)
#define COM3_ON (P2=0x04)
#define COM4_ON (P2=0x08)
#define COMS_OFF (P2=0x00) /*數碼管全滅宏定義*/
#define SEG_PORT (P0) /*段碼數據輸出端口*/
uchar code LED_Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共陽極,
#define DISPLAY_BIT 4 //數碼管顯示位數
uchar DisBuff[DISPLAY_BIT]; //顯示緩沖區
bit DisDecemal=0;//是否顯示小數點
uchar shi=11,fen=59,miao=49;
void delay(uchar ms)//1ms延時,12MHz
{
uchar i,j;
for(i=ms;i>0;i--)
for(j=122;j>0;j--);
}
void LED_DisplayTimer(uchar LED1,uchar LED2,uchar LED3,uchar LED4)
{
DisBuff[0]=LED_Tab[LED1];
DisBuff[1]=LED_Tab[LED2];
DisBuff[2]=LED_Tab[LED3];
DisBuff[3]=LED_Tab[LED4];
/**************小數點閃爍在這里控制*****/
if(DisDecemal==1)
DisBuff[1]&=0x7f; //點亮小數點
/**************************************/
}
void |