freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機的花樣電子時鐘設(shè)計與制作(編輯修改稿)

2025-07-16 13:12 本頁面
 

【文章內(nèi)容簡介】 。數(shù)碼管顯示的信息用8個內(nèi)存單元存放,這8個內(nèi)存單元稱為顯示緩沖區(qū),其中秒個位和秒十位、分個位和分十位、時個位和時十位分別由秒數(shù)據(jù)、分數(shù)據(jù)和時數(shù)據(jù)分拆得到。在本系統(tǒng)中數(shù)碼管顯示采用軟件譯碼動態(tài)顯示。在存儲器中首先建立一張顯示信息的字段碼表,顯示時,先從顯示緩沖區(qū)中取出顯示的信息,然后通過查表程序在字段碼表中查出所顯示的信息的字段碼,從P1口輸出,同時在P2口將對應的位選碼輸出,選中顯示的數(shù)碼管,就能在相應的數(shù)碼管上顯示緩沖區(qū)的內(nèi)容。共陽極是8個發(fā)光二極管的陽極連在一起,為一個公共端,若公共端接高電平,當某發(fā)光二極管的陰極為低電平時,此發(fā)光二極管點亮。在單片機系統(tǒng)中,如要使LED正常顯示數(shù)字或字符時,不能直接將數(shù)字送到LED顯示器,而是將要顯示的數(shù)字通過查表方式,查到相應的顯示子模再送到LED顯示器顯示。如G端接高電平,段碼各位定義如下:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Dpgfedcba如要顯示“7”字,對應a、b、c應送入低電平,才能使該字段發(fā)光二極管點亮,段碼為11111000B,即F8H。C語言源程序如下:void tishif( ) //分鐘調(diào)試的顯示{ D2=0。 P1=tab[gfen]。 delay(50)。 P1=0xff。 D2=1。 D3=0。 P1=tab[sfen]。 delay(50)。 P1=0xff。 D3=1。 }void tishis( ) //小時調(diào)試的顯示{ D4=0。 P1=tab[gshi]。 delay(50)。 P1=0xff。 D4=1。 D5=0。 P1=tab[sshi]。 delay(50)。 P1=0xff。 D5=1。 }void fenkai(uchar mm,uchar ff,uchar ss) //秒、分、時個位、十位的設(shè)置{ gmiao=mm%10。 smiao=mm/10。 gfen=ff%10。 sfen=ff/10。 gshi=ss%10。 sshi=ss/10。}void xmiao( ) //數(shù)碼管上顯示秒{ D0=0。 P1=tab[gmiao]。 delay(1)。 P1=0xff。 D0=1。 D1=0。 P1=tab[smiao]。 delay(1)。 P1=0xff。 D1=1。 }void xfen( ) //數(shù)碼管上顯示分{ D2=0。 P1=tab[gfen]。 delay(1)。 P1=0xff。 D2=1。 D3=0。 P1=tab[sfen]。 delay(1)。 P1=0xff。 D3=1。 }void xshi( ) //數(shù)碼管上顯示時{ D4=0。 P1=tab[gshi]。 delay(1)。 P1=0xff。 D4=1。 D5=0。 P1=tab[sshi]。 delay(1)。 P1=0xff。 D5=1。 }三、定時器/計數(shù)器T0中斷服務程序定時器/計數(shù)器T0用于時間計時。選擇方式1,先對定時器賦初值,CPU響應中斷后進入中斷服務子程序。中斷服務子程序以100ms、1s、1min、1hour對時鐘計時,每產(chǎn)生一次中斷,100ms計數(shù)單元加1,當該單元內(nèi)容累計到10時,秒計數(shù)單元加1,并將100ms單元清0;秒累計到60時,分計數(shù)單元加1,并將秒計數(shù)單元清0;當分計數(shù)單元累計到60時,時計數(shù)單元加1,并將分計數(shù)單元清0;時計數(shù)單元滿24后,所有單元內(nèi)容清0。定時器計數(shù)單元的內(nèi)容為十六進制數(shù),需把該數(shù)調(diào)整為壓縮BCD碼,并通過程序拆分成單字節(jié)BCD碼后,送入顯示緩沖區(qū),進行輸出顯示。該定時中斷子程序用于實現(xiàn)定時功能,同時刷新計時緩沖區(qū),其流程如圖42所示。圖42 中斷服務程序流程圖C語言源程序如下:void time0( ) interrupt 1 //定時器0的中斷{ TH0=(255100)。 TL0=(255100)。 aa++。 if(aa==1amp。amp。d==1) { ct++。 kk=1。 } if(aa==155) { kk=0。 D6=1。 } if(aa==310) { aa=0。 m++。 if(m==60) { m=0。 f++。 if(f==60) { f=0。 d=1。 s++。 pp=1。 if(s==24) s=0。 } } }} 四、蜂鳴器報時子程序當分計數(shù)單元累計到60,時計數(shù)單元加1時,就啟動蜂鳴器,起到報時的功能。C語言源程序如下:void fenm( ) //蜂鳴器啟動{ D6=0。}五、按鍵處理模塊按鍵處理設(shè)置為:如沒有按鍵,則時鐘正常走時。當按下K0按鍵時,即復位,時鐘從零開始計時;當按下K1按鍵,進入調(diào)分狀態(tài),時鐘停止走動;按K2和K3按鍵可以進行加1或減1操作;繼續(xù)按K1按鍵,可以分別進行分和小時的調(diào)整;最后按K2按鍵將退出調(diào)整狀態(tài),時鐘開始計時運行。C語言源程序如下:void keyscan( ){ EA=0。 if(k1==0) { delay(10)。 if(k1==0) { count++。 TR0=0。 ET0=0。 } while(!k1)。 } if(count=3) { fashu(s)。 count=0。 TR0=1。 ET0=1。 t1=0。 t2=0。 } if(count==1) { t1=1。 if(k2==0) {
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1