版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、8位數(shù)碼管顯示電子時鐘c51單片機程序時間:2012-09-10 13:52:26 來源: 作者:/*8位數(shù)碼管顯示 時間格式 055000 標(biāo)示05點50分00秒S1 用于小時加1操作S2 用于小時減1操作S3 用于分鐘加1操作S4 用于分鐘減1操作*/#include<reg52.h>sbit KEY1=P30; /定義端口參數(shù)sbit KEY2=P31;sbit KEY3=P32;sbit KEY4=P33;sbit LED=P12; /定義指示燈參數(shù)code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
2、0x7f,0x6f; /共陰極數(shù)碼管09unsigned char StrTab8; /定義緩沖區(qū)unsigned char minute=19,hour=23,second; /定義并初始化為 12:30:00void delay(unsigned int cnt) while(-cnt);/*/* 顯示處理函數(shù) */*/void Displaypro(void) StrTab0=tabhour/10; /顯示小時 StrTab1=tabhour%10; StrTab2=0x40; /顯示"-" StrTab3=tabminute/10; /顯示分鐘 StrTab4=ta
3、bminute%10; StrTab5=0x40; /顯示"-" StrTab6=tabsecond/10; /顯示秒 StrTab7=tabsecond%10;main() TMOD |=0x01; /定時器0 10ms inM crystal 用于計時 TH0=0xd8; /初值 TL0=0xf0; ET0=1; TR0=1; TMOD |=0x10; /定時器1用于動態(tài)掃描 TH1=0xF8; /初值 TL1=0xf0; ET1=1; TR1=1; EA =1; Displaypro(); /調(diào)用顯示處理函數(shù) while(1) if(!KEY1) /按鍵1去抖以及動作
4、 delay(10000); if(!KEY1) hour+; if(hour=24) hour=0; /正常時間 小時 加1 Displaypro(); if(!KEY2) /按鍵2去抖以及動作 delay(10000); if(!KEY2) hour-; if(hour=255) hour=23; /正常時間 小時減1 Displaypro(); if(!KEY3) /按鍵去抖以及動作 delay(10000); if(!KEY3) minute+; if(minute=60) minute=0; /分加1 Displaypro(); if(!KEY4) /按鍵去抖以及動作 delay(1
5、0000); if(!KEY4) minute-; if(minute=255) minute=59; /分減1 Displaypro(); /*/* 定時器1中斷 */*/void time1_isr(void) interrupt 3 using 0 /定時器1用來動態(tài)掃描 static unsigned char num; TH1=0xF8; /重入初值 TL1=0xf0; switch (num) case 0:P2=0;P0=StrTabnum;break; /分別調(diào)用緩沖區(qū)的值進(jìn)行掃描 case 1:P2=1;P0=StrTabnum;break; case 2:P2=2;P0=S
6、trTabnum;break; case 3:P2=3;P0=StrTabnum;break; case 4:P2=4;P0=StrTabnum;break; case 5:P2=5;P0=StrTabnum;break; case 6:P2=6;P0=StrTabnum;break; case 7:P2=7;P0=StrTabnum;break; default:break; num+; /掃描8次,使用8個數(shù)碼管 if(num=8) num=0;/*/* 定時器0中斷 */*/void tim(void) interrupt 1 using 1 static unsigned char c
7、ount; /定義內(nèi)部局部變量 TH0=0xd8; /重新賦值 TL0=0xf0; count+; switch (count) case 0: case 20: case 40: case 60: case 80:Displaypro();break; /隔一定時間調(diào)用顯示處理 case 50:P1=P1;break; /半秒 LED 閃爍 default:break; if (count=100) count=0; second+; /秒加1 if(second=60) second=0; minute+; /分加1 if(minute=60) minute=0; hour+; /時加1
8、if(hour=24) hour=0; 基于單片機的LCD1602控制總線模式時間:2012-09-10 13:50:39 來源: 作者:第一行顯示"Welcome"第二行顯示="Happy day"若要顯示其他字符,請直接往數(shù)組 LCMLineOne16和LCMLineTwo16填充相應(yīng)的代碼。直接上圖,仿真圖如下:源程序如下,可以對比時序方式,理解總線的操作方法。#include<reg51.h>/#include<absacc.h>#define uchar unsigned char#define uint unsigne
9、d int #define busy 0x80uchar xdata LCMWriteCOM _at_ 0x80ff; /寫指令寄存器uchar xdata LCMReadCOM _at_ 0xa0ff ; /讀指令寄存器uchar xdata LCMWriteData _at_ 0xc0ff ; /寫數(shù)據(jù)寄存器uchar xdata LCMReadData _at_ 0xe0ff ; /讀數(shù)據(jù)寄存器uchar data LCMLineOne16="Welcome" /第一行顯示的數(shù)據(jù)uchar data LCMLineTwo16="Happy day"
10、 /第二行顯示的數(shù)據(jù)void Delayms(uchar ms) uchar i,j; for(i=0;i<ms;i+) for(j=0;j<57;j+) ;/寫指令寄存器void LCMWriteC(uchar COMData) uchar LCMStatus; do LCMStatus=(LCMReadCOM&busy); while(LCMStatus!=0); LCMWriteCOM=COMData;/讀指令寄存器uchar LCMReadC()uchar LCMStatus; do LCMStatus=(LCMReadCOM&busy); while(LC
11、MStatus!=0); LCMStatus=LCMReadCOM; return(LCMStatus);/讀數(shù)據(jù)寄存器uchar LCMReadD(uchar addr)uchar LCMStatus; do LCMStatus=(LCMReadCOM&busy); while(LCMStatus!=0); LCMWriteC(0x80+addr); LCMStatus=LCMReadData; return(LCMStatus);/寫數(shù)據(jù)寄存器帶地址void LCMWriteDAdd(uchar addr,uchar LCMData)uchar LCMStatus; do LCMS
12、tatus=(LCMReadCOM&busy); while(LCMStatus!=0); LCMWriteC(0x80+addr); LCMWriteData=LCMData;/寫數(shù)據(jù)寄存器無地址void LCMWriteD(uchar LCMData)uchar LCMStatus; do LCMStatus=(LCMReadCOM&busy); while(LCMStatus!=0); LCMWriteData=LCMData;/初始化void LCMInit(void) Delayms(15); LCMWriteCOM=0x38; Delayms(5); LCMWriteCOM=0x38; Delayms(5); LCMWriteCOM=0x38; Delayms(5); LCMWriteC(0x38); LCMWriteC(0x08); LCMWriteC(0x01); LCMWriteC(0x06); LC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中山火炬職業(yè)技術(shù)學(xué)院《建筑識圖與制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州職業(yè)技術(shù)學(xué)院《檢測技術(shù)與信號處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 長沙衛(wèi)生職業(yè)學(xué)院《信息安全理論與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《中外體育文學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 海洋養(yǎng)殖科技革新模板
- 職業(yè)導(dǎo)論-房地產(chǎn)經(jīng)紀(jì)人《職業(yè)導(dǎo)論》名師預(yù)測卷2
- 人教版四年級數(shù)學(xué)下冊第七單元綜合卷(含答案)
- 2024-2025學(xué)年吉林省吉林市蛟河實驗中學(xué)高二(上)期末數(shù)學(xué)試卷(含答案)
- 煙臺幼兒師范高等??茖W(xué)校《藝術(shù)家與風(fēng)格》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度高端餐飲企業(yè)雇傭司機專業(yè)服務(wù)合同3篇
- 《中華人民共和國機動車駕駛?cè)丝颇恳豢荚囶}庫》
- 2024年VB程序設(shè)計:從入門到精通
- 2024年故宮文化展覽計劃:課件創(chuàng)意與呈現(xiàn)
- 公共交通乘客投訴管理制度
- 不銹鋼伸縮縫安裝施工合同
- 水土保持監(jiān)理總結(jié)報告
- Android移動開發(fā)基礎(chǔ)案例教程(第2版)完整全套教學(xué)課件
- 醫(yī)保DRGDIP付費基礎(chǔ)知識醫(yī)院內(nèi)培訓(xùn)課件
- 專題12 工藝流程綜合題- 三年(2022-2024)高考化學(xué)真題分類匯編(全國版)
- DB32T-經(jīng)成人中心靜脈通路裝置采血技術(shù)規(guī)范
- TDALN 033-2024 學(xué)生飲用奶安全規(guī)范入校管理標(biāo)準(zhǔn)
評論
0/150
提交評論