蘇杰
摘要:本設(shè)計(jì)是為中職學(xué)生在單片機(jī)課程學(xué)習(xí)中,加強(qiáng)理論知識(shí)的理解、提高動(dòng)手操作能力、實(shí)現(xiàn)理論聯(lián)系實(shí)際而開發(fā)的實(shí)習(xí)模塊設(shè)計(jì)。本設(shè)計(jì)是利用最基本的51系列單片機(jī)為控制核心,以數(shù)字時(shí)鐘DS1302為時(shí)鐘芯片,以基礎(chǔ)的字符型液晶LCD1602為終端顯示,以最簡(jiǎn)單的洞洞板為載體,以面向客戶的C語言程序?yàn)榭刂剖侄危瑏韺?shí)現(xiàn)電子時(shí)鐘的顯示、調(diào)整和自動(dòng)計(jì)時(shí)。
Abstract: This design is developed for strengthening the understanding of theoretical knowledge, improving the ability to practice and integrating theory with practice of the MCU learning of the secondary vocational school students. This design takes the most basic 51 series microcontroller as the control core, takes DS1302 of digital clock as the clock chip, takes the character LCD1602 as the terminal display, takes the most simple pegboard as the carrier and takes the customer oriented C language program as a means of control to achieve the display, adjustment and automatic timing of the electronic clock.
關(guān)鍵詞:51單片機(jī)系統(tǒng);洞洞板電路;C語言;電子時(shí)鐘顯示
Key words:51 SCM system;pegboard circuit;C program;electronic clock display
中圖分類號(hào):TN141.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2017)12-0101-02
0 引言
近年來,單片機(jī)應(yīng)用技術(shù)課程已經(jīng)廣泛進(jìn)入到了我國(guó)中等職業(yè)教育的電氣自動(dòng)化、電工電子等相關(guān)專業(yè)的專業(yè)課程當(dāng)中。但是由于這門課要求學(xué)生有較強(qiáng)的邏輯思維能力,以及課程本身設(shè)置了大量的、抽象的理論知識(shí)的學(xué)習(xí),這就導(dǎo)致大多數(shù)中職院校在這門課的教學(xué)當(dāng)中教學(xué)效果并不好。本設(shè)計(jì)就是為了讓學(xué)生能在理論知識(shí)學(xué)習(xí)的同時(shí),用動(dòng)手操作完成實(shí)際的電路制作的方法,來加強(qiáng)學(xué)生對(duì)單片機(jī)系統(tǒng)的理解。為了增加學(xué)習(xí)的操作性和趣味性,本設(shè)計(jì)利用的元器件及輔助材料的成本非常低廉,不需要制作印制電路板;同時(shí)為了加強(qiáng)制作的可靠性,整個(gè)電路板的設(shè)計(jì)焊接時(shí)不需要跨接明線或杜邦線,所有元件管腳連接都是通過錫接過線來完成,制作完成后使用時(shí)間長(zhǎng)、不易損壞。
1 系統(tǒng)設(shè)計(jì)方案
本文所設(shè)計(jì)的液晶時(shí)鐘是由主控系統(tǒng)、按鍵控制、時(shí)鐘模塊和顯示模塊四個(gè)模塊組成,如圖1所示。
2 元件清單(表1)
3 硬件電路設(shè)計(jì)
系統(tǒng)電路原理圖如圖2所示。
3.1 主控系統(tǒng)
整個(gè)主控系統(tǒng)即為51單片機(jī)的最小應(yīng)用系統(tǒng),其中電源電路20腳接地、40腳接VCC;時(shí)鐘電路18、19腳間外接12MHZ晶振;為了簡(jiǎn)化電路,復(fù)位電路9腳懸空,保留上電復(fù)位功能即可。STC89C52單片機(jī)采用雙列直插式封裝,焊接時(shí)須安裝在40引腳IC座上。瓷片電容和晶振也均采用直插式的封裝形式。安裝過程中,晶振和電容應(yīng)安裝在單片機(jī)的芯片座內(nèi)部。
3.2 按鍵控制
按鍵控制模塊需要3個(gè)獨(dú)立按鍵。
S1為功能鍵:系統(tǒng)開機(jī)顯示時(shí)間后,第一次按下S1,系統(tǒng)走時(shí)停止,進(jìn)入到調(diào)整狀態(tài),并且秒顯示位置閃爍,系統(tǒng)進(jìn)入秒調(diào)整狀態(tài),此時(shí)等待按下S2、S3鍵進(jìn)行秒顯示調(diào)整;在此按下S1,分實(shí)現(xiàn)位置閃爍,進(jìn)行分調(diào)整狀態(tài);跟著依次是小時(shí)、星期、日、月、年的調(diào)整狀態(tài);當(dāng)?shù)诎舜伟聪耂1時(shí),系統(tǒng)退出調(diào)整狀態(tài),進(jìn)入到走時(shí)狀態(tài)。S1接單片機(jī)的P0.5口。
S2為調(diào)整加鍵:當(dāng)系統(tǒng)進(jìn)入到調(diào)整狀態(tài),按下S2鍵時(shí),閃爍位置的數(shù)值就會(huì)加1,并且該修改數(shù)值會(huì)被記錄到走時(shí)數(shù)值當(dāng)中。S2接單片機(jī)的P0.2口。
S3為調(diào)整減鍵:當(dāng)系統(tǒng)進(jìn)入到調(diào)整狀態(tài),按下S3鍵時(shí),閃爍位置的數(shù)值就會(huì)減1,并且該修改數(shù)值會(huì)被記錄到走時(shí)數(shù)值當(dāng)中。S3接單片機(jī)的P0.5口。因?yàn)镾TC89C52單片機(jī)P0口內(nèi)部無上拉電路,所以S1、S2、S3按鍵均須接10KΩ上拉電阻,來提供足夠的控制電流。
3.3 時(shí)鐘模塊
時(shí)鐘模塊采用DALLAS公司生產(chǎn)的DS1302時(shí)鐘芯片。該時(shí)鐘芯片價(jià)格便宜、功能齊全,可以提供年、月、日、星期、時(shí)、分、秒的計(jì)時(shí)功能;工作電壓2.0~5.5V;安裝備用電池的話,在關(guān)閉系統(tǒng)電源的情況下可以繼續(xù)走時(shí)。我們依然是采用雙列直插式的封裝形式,并且焊接時(shí)配備8引腳IC座。備用電源我們采用1節(jié)3V的紐扣電池CR2025供電。其中1腳接系統(tǒng)電源VCC,8腳接備用電源正極,4腳接地;2、3腳間接32768HZ的晶振,作為時(shí)鐘的走時(shí)晶振;5、6、7腳分別接單片機(jī)的P2.2、P2.1、P2.0的I/O口。
3.4 顯示模塊
顯示模塊采用性價(jià)比高的LCD1602字符型液晶,每行16個(gè)字符,分兩行顯示;上面一行顯示年、月、日和星期,下面一行顯示時(shí)、分、秒和簡(jiǎn)單的娛樂圖形。由于LCD1602不能顯示漢字,所以年、月、日、時(shí)、分、秒均采用數(shù)字顯示方法;為了更貼近實(shí)際,本設(shè)計(jì)中星期的顯示方法為英文縮寫的字符顯示,即 顯示“Mon”、“Tue”、“Wed”、“Thu”、“Fri”、“Sat”、“Sun”。LCD1602液晶模塊有16個(gè)引腳,其中1、2腳分別接系統(tǒng)電源GND和VCC;3腳接一個(gè)緊密電位器做顯示對(duì)比度的調(diào)節(jié);4、5、6腳為控制引腳,分別連接單片機(jī)的P1.2、P1.3、P1.4口;7~14腳為數(shù)據(jù)傳輸引腳,分別連接P3.7~P3.0口;15腳串接一個(gè)限流電阻后接VCC,16腳接GND,這兩個(gè)引腳是LCD1602的背燈引腳。
這里有兩個(gè)方面需要注意:一是液晶模塊引腳上要焊接插針,電路板上要焊接插針座,液晶模塊通過插針連接在洞洞板上,即實(shí)現(xiàn)了電氣連接,又增加了元件的固定可靠性;二是為了不使用跨接明線,只使用錫接過線,在I/O口分配時(shí)7~14腳與P3口是逆序連接的。
4 軟件設(shè)計(jì)
與硬件系統(tǒng)類似,軟件系統(tǒng)主要包括:按鍵查詢程序塊、DS1302時(shí)鐘芯片驅(qū)動(dòng)程序塊和LCD1602液晶顯示程序塊。整個(gè)程序都是基于C語言來編寫完成的。程序流程圖如圖3。
4.1 液晶顯示程序部分
本程序部分主要包括:1602寫指令子程序、寫數(shù)據(jù)子程序、時(shí)分秒顯示子程序、年月日顯示子程序、星期顯示子程序。
在這部分程序里首先應(yīng)該注意的是,因?yàn)槲覀冊(cè)谟布到y(tǒng)中,將1602的8位數(shù)據(jù)引腳與單片機(jī)的P3進(jìn)行逆序連接,所以在寫指令和寫數(shù)據(jù)子程序中應(yīng)先將數(shù)據(jù)進(jìn)行高地位對(duì)調(diào)變換再給P3口進(jìn)行輸出,變換公式如下:
date=(date<<4)|(date>>4);
date=((date<<2)&0×cc)|((date>>2)&0×33);
date=((date<<1)&0×aa)|((date>>1)&0×55);
其次要注意在星期顯示子函數(shù)中,我們要對(duì)字符串進(jìn)行處理,所以程序起始要加入程序語句#include
最后要注意,在系統(tǒng)正常走時(shí)時(shí),本設(shè)計(jì)使用定時(shí)器T0進(jìn)行計(jì)時(shí),每100ms讀取一次DS1302時(shí)鐘芯片的實(shí)時(shí)時(shí)間;每讀取完實(shí)時(shí)時(shí)間單片機(jī)就會(huì)將讀取的時(shí)間送給LCD1602進(jìn)行顯示。
4.2 時(shí)鐘芯片驅(qū)動(dòng)程序部分
DS1302時(shí)鐘芯片作為一款串行通訊的時(shí)鐘芯片,我們要控制它就必須以它的時(shí)序?yàn)榛A(chǔ)先編寫出寫字節(jié)的子程序,然后編寫出寫數(shù)據(jù)和讀數(shù)據(jù)的子程序。
4.3 按鍵處理程序部分
本設(shè)計(jì)按鍵部分采用的是獨(dú)立式按鍵,按鍵的讀取則是按照查詢的方式來編寫程序。在開機(jī)后,系統(tǒng)進(jìn)入走時(shí)狀態(tài),此時(shí)只有S1功能鍵能夠被查詢到。當(dāng)?shù)谝淮伟聪耂1鍵,系統(tǒng)進(jìn)入調(diào)整狀態(tài),S2和S3按鍵才能被查詢到,我們才能通過S2和S3鍵來改變各項(xiàng)的時(shí)間數(shù)值。
5 結(jié)論
本文介紹了一個(gè)應(yīng)用51單片機(jī)控制的數(shù)字液晶時(shí)鐘的制作方法。本設(shè)計(jì)實(shí)現(xiàn)了在LCD1602液晶上實(shí)時(shí)顯示年、月、日、時(shí)、分、秒和星期;并且具備掉電保持功能;同時(shí)還可以通過按鍵對(duì)時(shí)間和日期進(jìn)行調(diào)整。本設(shè)計(jì)的優(yōu)點(diǎn)在于可操作性強(qiáng),不需要制作專門的印制電路板;線路可靠,沒有跨接明線;程序簡(jiǎn)單,利用模塊化的C語言子程序即可編寫。適合于廣大電氣自動(dòng)化和電工電子專業(yè)的中職學(xué)生在教師的指導(dǎo)完成制作。
參考文獻(xiàn):
[1]張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2003.
[2]匡忠輝.單片機(jī)原理及應(yīng)用[M].機(jī)械工業(yè)出版社,2007.
[3]胡漢才.單片機(jī)原理及其接口技術(shù)[M].清華大學(xué)出版社,1996.