當前位置:編程學習大全網 - 編程語言 - 時鐘模擬編程

時鐘模擬編程

示意圖如下:

部分地圖(1):

部分圖紙(2):

部分圖紙(3):

代碼如下:

# include & ltreg 51 . h & gt;

# include & ltintrins.h & gt

#定義uchar無符號字符

#定義uint無符號整數

sbit st=p2^0;//開始轉換位

sbit oe=p2^2;//輸出使能位

sbit ale=p2^3;?//地址允許鎖存位

sbit eoc=p2^1;//轉換位結束

sbit clk=p2^4;//時鐘

龍int datas,白,佘,葛;

烏恰爾·段;

uchar碼號[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };//不帶點的數字

uchar碼num_dot[]={0xbf,0x86,0xdb,0xcf,0xe6,0x ed };//帶點的數字

uchar碼魏[]={0x0d,0x0b,0x 07 };//位代碼

無效延遲(單位z)

{

烏恰爾壹世;

while(z -)

for(I = 0;我& lt120;i++);

}

空顯示()

{

uchar I = 0;

白=(datas * 500/255)/100;//計算並獲取最高位

她=(datas * 500/255)/10% 10;//計算得到中間位

ge =(datas * 500/255)% 10;//計算得到最低位

for(I = 0;我& lt3;i++)

{

=魏[我];

if(I = = 0){ Duan = num _ dot[Bai];}

else if(I = = 1){ Duan = num[she];}

else if(I = = 2){ Duan = num[ge];}

P0 =段;

延遲(2);

}?

}

void main()

{

TMOD = 0x 02;//定義T0和工作模式2

TH0 = 0x 216;//TH0初始值

TL0 = 0x 216;?//TH1初始值

EA = 1;?//打開主機中斷

ET0 = 1;//打開中斷使能位

TR0 = 1;?//打開T0

while(1)

{

ST = OE = 0;//首先將START和EO設置為0。

ALE = 1;//設置ALE和ST為1拉高。

ST = 1;

ALE = 0;//將ALE和START設置為0,開始數據轉換。

ST = 0;

而(!EOC);?//等待EOC,ECO為1,表示轉換完成。

OE = 1;//打開OE,讀取數據。

datas = p 1;?//保存數據中的數據。

顯示();

}

}

void inter_1()中斷1

{

CLK = ~ CLK;

}

運行結果如下

  • 上一篇:誌虎暗示自己懷孕的句子收集給老公(60句)。
  • 下一篇:請教Works Application的面試問題
  • copyright 2024編程學習大全網