范禮平
摘要:?jiǎn)纹瑱C(jī)到底是什么呢?就是一個(gè)電腦,只不過是微型的,麻雀雖小,五臟俱全:它內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過用它來(lái)做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī),排煙罩、VCD等等的家電里面都可以看到它的身影!它主要是作為控制部分的核心部件。
關(guān)鍵詞單片機(jī)、字符型LCD顯示器、可調(diào)時(shí)鐘
利用單片機(jī)的控制程序結(jié)合LCD設(shè)計(jì)一個(gè)簡(jiǎn)易的微電腦時(shí)鐘,可以告知現(xiàn)在的時(shí)間或記錄完成一件工作花費(fèi)的時(shí)間(通過重置計(jì)時(shí)),設(shè)計(jì)過程中可以學(xué)習(xí)利用單片機(jī)定時(shí)器設(shè)計(jì)時(shí)間計(jì)時(shí)處理,這是許多電子裝置最基本的功能。LCD在電子產(chǎn)品設(shè)計(jì)中使用率相當(dāng)?shù)母?,普通的七段顯示器只能用來(lái)顯示數(shù)字若遇到要顯示英文文字時(shí),則一定會(huì)選用LCD。通常我們?cè)陔娮由坛琴I到的LCD,其背面都含有控制電路,其上面有專門的IC來(lái)完成LCD的動(dòng)作控制,在自行設(shè)計(jì)的接口中,只要送入適當(dāng)?shù)拿畲a和欲顯示的數(shù)據(jù),LCD便會(huì)將其字符顯示出來(lái),在控制上非常方便。本次設(shè)計(jì)是利用單片機(jī)8051的控制程序結(jié)合LCD設(shè)計(jì)一個(gè)簡(jiǎn)易的可調(diào)微電腦時(shí)鐘。
一、設(shè)計(jì)思路
定時(shí)器0計(jì)時(shí)中斷程序每隔5ms中斷一次當(dāng)作一次中斷完成,每中斷一次計(jì)數(shù)器加1,計(jì)數(shù)200次,表示1秒依次判斷1min、1h,計(jì)數(shù)到了相關(guān)變量清零;用K1、K2、K3、K4進(jìn)行時(shí)間調(diào)節(jié):K1(P2.4)---進(jìn)入時(shí)間調(diào)節(jié);K2(P2.5)---調(diào)節(jié)小時(shí);K3(P2.6)---調(diào)節(jié)分鐘;K4(P2.7)---調(diào)節(jié)完成。
工作流程圖:
1、主程序控制流程圖2、計(jì)時(shí)中斷程序流程圖
二、硬件電路
1、原理圖
其中LCD引腳說(shuō)明如下:
D0----D7:雙向數(shù)據(jù)總線
RS:寄存器選擇控制線
R/W:讀寫控制線
EN:?jiǎn)⒂每刂凭€
VCC:電源正端
VO:字符顯示亮度控制引腳
GND:電源地端
值得注意的是:有的第1腳是接+5V,第2腳接地;有的第1腳是接地的,第2腳接+5V(最好能拿到原廠的引腳圖)。
2、實(shí)物電路
三、開發(fā)環(huán)境
開發(fā)環(huán)境選擇Keil C51 Vision2,Keil C51軟件是德國(guó)Keil Software/Keil Elektronik 公司開發(fā)的功能完善的C51開發(fā)軟件,近年來(lái)在國(guó)內(nèi)得到了迅速普及。
在keil的uV2集成環(huán)境下使用偉福仿真器需要在keil環(huán)境中做如下設(shè)定:1、設(shè)置“編譯后運(yùn)行程序”,以便初始化偉福仿真器;2、設(shè)置硬件調(diào)試方式,并設(shè)置串口參數(shù)。
四、軟件原理
1、使用定時(shí)器0模式0
INIT_TIMER:
MOV TMOD,#00000000B
MOV IE,#10000010B
MOV TL0,#LO
MOV TH0,#HI
SETB TR0
RET
2、設(shè)置目前的時(shí)間
SZSJ:
CLR TR0
MOV SEC,#0
L0:
JB K2,L1
INC HOUR
MOV A,HOUR
CJNE A,#24,L2
MOV HOUR,#0
L2:
CALL CONV
MOV R5,#20
CALL DELAY
JMP L0
L1:
JB K3,L3
INC MIN
MOV A,MIN
CJNE A,#60,L4
MOV MIN,#0
L4:
CALL LCDZB
MOV R5,#20
CALL DELAY
JMP L0
L3:
JB K4,L0
JNB K4,$
SETB TR0
RET
3、一秒中斷子程序
INT:
PUSH ACC
MOV TL0,#24
MOV TH0,#99
INC DEDA
MOV A,DEDA
CJNE A,#200,K
K:
POP ACC
RETI
4、將時(shí)分秒的數(shù)據(jù)轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)顯示在LCD上
LCDZB:
MOV A,HOUR
MOV X,#5
CALL SZZA
INC X
MOV A,#':'
MOV B,X
CALL LCDXS
MOV A,MIN
INC X
CALL SZZA
INC X
MOV A,#':'
MOV B,X
CALL LCDXS
MOV A,SEC
INC X
CALL SZZA
RET
5、在LCD上顯示數(shù)字
SZZA:
MOV B,#10
DIV AB
ADD A,#30H
PUSH B
MOV B,X
CALL LCDXS
POP B
MOV A,B
ADD A,#30H
INC X
MOV B,X
CALL LCDXS
RET
6、以4位控制方式將命令寫至LCD
MDL:
MOV P0,A
CLR RS
CALL DMC
RLC A
RLC A
RLC A
RLC A
MOV P0,A
CLR RS
CALL DMC
RET
7、以4位控制方式將數(shù)據(jù)寫入LCD
SDL:
MOV P0,A
SETB RS
CALL DMC
RLC A
RLC A
RLC A
RLC A
MOV P0,A
SETB RS
CALL DMC
RET
8、更新時(shí)分秒數(shù)據(jù)
TIMERGX:
MOV A,SEC
MOV B,SEC0
CJNE A,B,W1
JMP W2
W1:
CALL LCDZB
MOV SEC0,SEC
W2:RET
9、在LCD上顯示字符
LCDXS:
PUSH ACC
MOV A,B
ADD A,#0C0H
CALL MDL
POP ACC
CALL SDL
RET
10、總延遲時(shí)間(R5*10ms)
DELAY:
MOV R6,#50
LOOP:
MOV R7,#100
DJNZ R7,$
DJNZ R6,LOOP
DJNZ R5,DELAY
RET
其中:DMC-----短脈沖信
結(jié)語(yǔ):本次設(shè)計(jì)使用了一般的LCD顯示器來(lái)顯示字符數(shù)據(jù),尤其是在教學(xué)中不僅能使學(xué)生L靈活掌握定時(shí)器的應(yīng)用,而且能掌握模塊化的設(shè)計(jì)思路。另外根據(jù)本設(shè)計(jì)可以自行擴(kuò)充其他的功能,如:增加鬧鈴、產(chǎn)生音樂聲、啟動(dòng)繼電器控制家電等。
參考文獻(xiàn)
[1] 單片機(jī)實(shí)踐與應(yīng)用.吳金成.清華大學(xué)出版社
[2] 單片機(jī)實(shí)用技術(shù).陶春鳴.人民郵電出版社
[3] 單片機(jī)原理與應(yīng)用.李群芳.武漢大學(xué)出版社
注:文章內(nèi)所有公式及圖表請(qǐng)以PDF形式查看。