|
本帖最后由 盧OK 于 2020-12-3 14:14 編輯
#include<reg52.h> //頭文件
#define uc unsigned char //宏定義
#define ui unsigned int //宏定義
sbit LED=P3^3;//定義LED變量
uc fen,shi,miao,num; //無符號字符型變量
uc code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*0,1,2,3,4,5,6,7,8,9,.*///共陰極編碼
void delay(ui x)//1ms延時函數
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<121;j++);
}
void display()//掃描顯示函數,高位到低位
{
/*數碼管小時顯示*/
P0=tab[shi/10];//給小時的十位送形
P2=0xdf;//11011111 //位選
delay(1); //延時動態掃描
P2=0xff; //關閉位選
P0=(tab[shi%10])|0x80;//給第二位后加“點
P2=0xef;//11101111
delay(1);
P2=0xff;
/*數碼管分鐘顯示*/
P0=tab[fen/10];
P2=0xf7;//11110111
delay(1);
P2=0xff;
P0=(tab[fen%10])|0x80;//給第四位后加“點”
P2=0xfb;//11111011
delay(1);
P2=0xff;
/*數碼管秒鐘顯示*/
P0=tab[miao/10];
P2=0xfd;//11111101
delay(1);
P2=0xff;
P0=tab[miao%10];
P2=0xfe;//11111110
delay(1);
P2=0xff;
}
void init()//初始化函數
{
/*初始時間為 01:30 */
shi=1; //小時初始
fen=30; //分鐘初始
/*定時器中斷初始化設置*/
TMOD=0x01;//設置定時器為定時器0工作方式為1
TH0=(65536-50000)/256; //賦初值
TL0=(65536-50000)%256; //賦初值
EA=1; //開總中斷
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器0
}
void main()//主函數
{
init();//調用初始化函數
while(1) //大循環
{
display(); //調用數碼管顯示函數
LED=0; //讓LED燈亮起
}
}
/*完整程序下載壓縮包查看*/
|
評分
-
查看全部評分
|