單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)_第1頁(yè)
單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)_第2頁(yè)
單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)_第3頁(yè)
單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)_第4頁(yè)
單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Xxxxxxxxxxxx學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 電子信息工程 學(xué) 生: xxx 指導(dǎo)教師: 陳xx 完成日期 2014 年 5 月 xxxxxxx學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)Design of Bus LCD Display System Controlled by MCU總 計(jì): 26頁(yè)表 格: 1個(gè)公 式: 0個(gè) 插 圖: 15幅Xxxxxx學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)Design of Bus LCD Display System Controlled by MCU 學(xué)

2、 院: 電子與電氣工程學(xué)院 專 業(yè): 電子信息工程 學(xué) 生 姓 名: xxx 學(xué) 號(hào): 指 導(dǎo) 教 師(職稱): 陳xx (講師) 評(píng) 閱 教 師: 完 成 日 期: xxxxx學(xué)院 單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)電子信息工程專業(yè) xxx摘 要本文以AT89C52單片機(jī)為核心建立公交車液晶顯示系統(tǒng),進(jìn)行了系統(tǒng)的硬件設(shè)計(jì),分別設(shè)計(jì)了按鍵控制報(bào)站模塊,溫度采集模塊,電子時(shí)鐘模塊,液晶控制模塊等主要模塊,采用了DS18B20進(jìn)行溫度采集并實(shí)時(shí)顯示,采用DS1302實(shí)現(xiàn)系統(tǒng)電子時(shí)鐘功能,并分析了系統(tǒng)的硬件抗干擾措施。通過(guò)在Proteus軟件中仿真,實(shí)現(xiàn)了公交車單線四站報(bào)站,驗(yàn)證了公交車液晶顯示系統(tǒng)

3、的相關(guān)功能。關(guān)鍵詞單片機(jī);公交車報(bào)站;電子時(shí)鐘;溫度采集;液晶顯示Design of Bus LCD Display System Controlled by MCUElectronic Information Engineering Specialty xxxxxx Abstract: Bus LCD display system has been established, and AT89C52 single chip microcomputer is used as the core of the whole system. The hardware design of the syst

4、em has been completed, which includes the design of button control stops module, temperature acquisition module, electronic clock module, LCD control module and so on. DS18B20 is used to temperature acquisition and real-time display, DS1302 is used to realize the systems electronic clock function, a

5、t the same time, the anti-jamming measures of the hardware has been analyzed. Through the simulation in Proteus software, systems single wire bus four station stops function has been realized, and the other functions have been validated as well.Key words: Single chip microcomputer; the bus stops; el

6、ectronic clock; temperature acquisition;liquid crystal display目 錄1 引言1 1.1 選題背景及意義1 1.2 國(guó)內(nèi)外研究現(xiàn)狀1 1.2.1 國(guó)外研究現(xiàn)狀1 1.2.1 國(guó)內(nèi)研究現(xiàn)狀1 1.3 本文主要工作22 LCD12864簡(jiǎn)介2 2.1 LCD種類2 2.2 LCD12864功能描述3 2.3 LCD12864顯示原理43 公交報(bào)站液晶顯示系統(tǒng)硬件設(shè)計(jì)6 3.1 整體電路設(shè)計(jì)6 3.2 晶振電路8 3.3 按鍵控制電路9 3.4 復(fù)位電路10 3.5 時(shí)鐘電路11 3.6 溫度采集電路12 3.7 液晶顯示電路144 公交報(bào)

7、站液晶顯示系統(tǒng)軟件設(shè)計(jì)15 4.1 主程序流程15 4.2 按鍵控制程序15 4.3 時(shí)鐘程序16 4.4 溫度顯示程序18 4.5 液晶顯示程序195 公交車報(bào)站液晶顯示系統(tǒng)的仿真21結(jié)束語(yǔ)24參考文獻(xiàn)25致謝261 引言1.1 選題背景及意義公交車作為人們生活中常用的生活工具,已成為城市的一道重要風(fēng)景線。就當(dāng)前公交車報(bào)站系統(tǒng)來(lái)看,形式還很單一,智能化不夠,不能為市民提供更多的服務(wù)。本設(shè)計(jì)在公交車報(bào)站系統(tǒng)中,除了站臺(tái)報(bào)站外,增加實(shí)時(shí)時(shí)鐘芯片DSl302和溫度傳感器DSl8B20,在LCD上進(jìn)行當(dāng)時(shí)日歷、時(shí)間、星期和溫度的顯示,增強(qiáng)報(bào)站系統(tǒng)的實(shí)用性。隨著我國(guó)城鎮(zhèn)化水平的提高,城市交通狀況日益復(fù)

8、雜,人們對(duì)出行的便捷性和安全性要求越來(lái)越高,實(shí)用智能的公交車報(bào)站系統(tǒng)在人們?nèi)粘3鲂兄邪缪葜絹?lái)越重要的角色;而且我國(guó)公交車系統(tǒng)存在報(bào)站不準(zhǔn)確、智能化和自動(dòng)化程度低等不足,應(yīng)加強(qiáng)研究以提高公交車系統(tǒng)各方面性能;另外,公交車系統(tǒng)研究直接面向日益增長(zhǎng)的市場(chǎng)需求,擁有廣闊市場(chǎng)前景。目前來(lái)看,傳統(tǒng)系統(tǒng)有待升級(jí),高智能系統(tǒng)由于高成本不能普及,實(shí)用性強(qiáng)成本低廉的公交車液晶顯示系統(tǒng)研究就具有重要實(shí)際意義。鑒于此并結(jié)合自身情況,本文選擇了這個(gè)課題。1.2 國(guó)內(nèi)外研究現(xiàn)狀1.2.1國(guó)外研究現(xiàn)狀 公交車液晶顯示系統(tǒng)在國(guó)外研究中主要有射頻識(shí)別的自動(dòng)語(yǔ)音液晶顯示系統(tǒng)和GPS全球衛(wèi)星定位系統(tǒng)的公交語(yǔ)音液晶顯示系統(tǒng)。射頻

9、識(shí)別的液晶顯示系統(tǒng)采用射頻技術(shù),通過(guò)無(wú)線電信號(hào)識(shí)別特定目標(biāo)并讀寫相關(guān)數(shù)據(jù),而無(wú)需識(shí)別系統(tǒng)與特定目標(biāo)之間建立的機(jī)械或光學(xué)接觸;有些國(guó)家公交車報(bào)站系統(tǒng)是通過(guò)站臺(tái)的射頻卡發(fā)送信號(hào),由公交車的射頻識(shí)別器讀取后送至處理器處理進(jìn)行液晶顯示報(bào)站1。GPS全球衛(wèi)星定位系統(tǒng)利用全球定位系統(tǒng)(GPS)進(jìn)行數(shù)據(jù)采集,根據(jù)公交車所處的位置進(jìn)行自動(dòng)報(bào)站、溫磬提示等服務(wù),它將電子、控制、計(jì)算機(jī)、通信等實(shí)用技術(shù)集中運(yùn)用于公共交通系統(tǒng),適用于車流量較大的大中城市;該系統(tǒng)市場(chǎng)潛力大,但會(huì)提高公交車成本,也影響消費(fèi)者購(gòu)買的意愿,另外,也存在著整合GPS芯片與無(wú)線通信技術(shù)的難題。1.2.2國(guó)內(nèi)研究現(xiàn)狀 公交車液晶顯示系統(tǒng)在國(guó)內(nèi)研究

10、中主要有自動(dòng)報(bào)站和手動(dòng)電子按鍵液晶顯示兩種系統(tǒng)。在車流量大的城市中主要采用前者,輔之以GPS導(dǎo)航,可避免分散司機(jī)注意力;而在中小城市中,車輛較少,交通狀況較簡(jiǎn)單,考慮到成本,主要采用后者進(jìn)行液晶顯示報(bào)站。自動(dòng)報(bào)站是現(xiàn)行最先進(jìn)的報(bào)站方式,是指當(dāng)公交到達(dá)某一站臺(tái)時(shí),系統(tǒng)對(duì)站臺(tái)信息進(jìn)行采集,自動(dòng)核對(duì)站臺(tái)信息,確認(rèn)無(wú)誤后顯示站臺(tái)信息,在進(jìn)行自動(dòng)報(bào)站;其中采用識(shí)別技術(shù),主要是射頻識(shí)別技術(shù)。手動(dòng)電子按鍵報(bào)站是在傳統(tǒng)的人工報(bào)站方式上發(fā)展而來(lái)的報(bào)站方式,當(dāng)公交車到達(dá)某一站臺(tái)時(shí),司機(jī)通過(guò)按鍵對(duì)已經(jīng)錄音的錄音器進(jìn)行控制,播放到站提示,同時(shí)在LCD上顯示站臺(tái)信息,實(shí)現(xiàn)報(bào)站。總體來(lái)看,當(dāng)前公交車報(bào)站系統(tǒng)形式比較單一,

11、智能化不夠,而GPS報(bào)站系統(tǒng)成本高昂難以普及。綜合考慮后,本設(shè)計(jì)在公交車報(bào)站系統(tǒng)中,除了站臺(tái)報(bào)站外,增加實(shí)時(shí)時(shí)鐘芯片DSl302和溫度傳感器DSl8B20,在LCD上進(jìn)行當(dāng)時(shí)日歷、時(shí)間、星期和溫度的顯示,為乘客提供更多的服務(wù)。1.3 本文主要工作本文主要介紹采用單片機(jī)控制的公交車液晶顯示系統(tǒng)設(shè)計(jì)方法;系統(tǒng)的功能要求、特點(diǎn)、設(shè)計(jì)原理、硬件的總體結(jié)構(gòu)和主要電路模塊的設(shè)計(jì)以及系統(tǒng)程序設(shè)計(jì);運(yùn)用Proteus軟件進(jìn)行仿真調(diào)試。具體內(nèi)容如下:(l)對(duì)公交車液晶顯示系統(tǒng)發(fā)展現(xiàn)狀、系統(tǒng)功能要求進(jìn)行研究,以此為基礎(chǔ),確定AT89C52單片機(jī)為核心的整體設(shè)計(jì)方案。(2)完成系統(tǒng)的硬件設(shè)計(jì);包括按鍵報(bào)站電路、日歷

12、電路、溫度采集電路、液晶顯示電路等主要模塊的設(shè)計(jì)。(3)完成系統(tǒng)的程序設(shè)計(jì);包括報(bào)站模塊、日歷模塊、溫度模塊、液晶顯示模塊等主要功能模塊C語(yǔ)言程序設(shè)計(jì)。2 LCD12864簡(jiǎn)介2.1 LCD種類根據(jù)12864帶字庫(kù)與否以及字庫(kù)種類,可分為以下種類2:(1)ST7920類:這種控制器帶中文字庫(kù),為用戶免除了編制字庫(kù)的麻煩,該控制器的液晶還支持畫圖方式。該類液晶支持68時(shí)序8位和4位并口以及串口。 (2)KS0108類:這種控制器指令簡(jiǎn)單,不帶字庫(kù)。支持68時(shí)序8位并口。 (3)T6963C類:這種控制器功能強(qiáng)大,帶西文字庫(kù)。有文本和圖形兩種顯示方式。有文本和圖形兩個(gè)圖層,并且支持兩個(gè)圖層的疊加顯

13、示。支持80時(shí)序8位并口。 (4)COG類:常見的控制器有S6B0724和ST7565,這兩個(gè)控制器指令兼容。支持68時(shí)序8位并口,80時(shí)序8位并口和串口。COG類液晶的特點(diǎn)是結(jié)構(gòu)輕便、成本低。各類顯示器管腳如下:ST7920:GND、VCC、V0、RS、R/W、E、DB0-DB7、PSB、RES、VOUT、BLA、BLK;KS0108:GND、VCC、V0、RS、R/W、E、DB0-DB7、CS1、CS2、RES、VOUT、BLA、BLK;T6963C:FG、GND、VCC、V0、WR、RD、DB0-DB7、RS、CS、RES、FS、BLA、BLK;S6B0724:GND、VCC、RS、WR

14、、RD、CS、DB0-DB7、RES、BLA、BLK。2.2 LCD12864功能描述2.2.1 LCD12864管腳功能12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字3。管腳功能如表1所示。表1 LCD12864管腳功能管腳名稱LEVER管腳功能描述VSS0電源地VDD+5.0V電源電壓V0-液晶顯示器驅(qū)動(dòng)電壓D/I(RS)H/LD/I=“H”,表示DB7-DB0為顯示數(shù)據(jù)D/I=“L”,表示DB7-DB0為顯示指令數(shù)據(jù)R/WH/LR/W=“H”,E=“H

15、”數(shù)據(jù)被讀到DB7DB0R/W=“L”,E=“HL”數(shù)據(jù)被寫到IR或DREH/LR/W=“L”,E信號(hào)下降沿鎖存DB7-DB0R/W=“H”,E=“H”DDRAM數(shù)據(jù)讀到DB7-DB0DB0H/L數(shù)據(jù)線DB1H/L數(shù)據(jù)線DB2H/L數(shù)據(jù)線DB3H/L數(shù)據(jù)線DB4H/L數(shù)據(jù)線DB5H/L數(shù)據(jù)線DB6H/L數(shù)據(jù)線DB7H/L數(shù)據(jù)線CS1H/LH:選擇芯片(右半屏)信號(hào)CS2H/LH:選擇芯片(左半屏)信號(hào)RETH/L復(fù)位信號(hào),低電平復(fù)位VOUT-10VLCD驅(qū)動(dòng)負(fù)電壓LED+-LED背光板電源LED-LED背光板電源2.2.2 12864LCD內(nèi)部功能器件 (1)指令寄存器(IR):IR是用于寄存

16、指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對(duì)應(yīng)。當(dāng)D/I=0時(shí),在E信號(hào)下降沿的作用下,指令碼寫入IR。 (2)數(shù)據(jù)寄存器(DR):DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對(duì)應(yīng)。當(dāng)D/I=1時(shí),在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號(hào)高電平作用下由DR讀到DB7-DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的。 (3)忙標(biāo)志BF:BF標(biāo)志提供內(nèi)部工作情況。BF=1表示模塊在內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗(yàn)?zāi)K之工作狀態(tài)。(4)顯示控制觸發(fā)器DFF:此觸發(fā)

17、器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號(hào)控制的。 (5)XY地址計(jì)數(shù)器:XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器。高3位是X地址計(jì)數(shù)器,低6位為Y地址計(jì)數(shù)器,XY地址計(jì)數(shù)器實(shí)際上是作為DDRAM的地址指針,X地址計(jì)數(shù)器為DDRAM的頁(yè)指針,Y地址計(jì)數(shù)器為DDRAM的Y地址指針。X地址計(jì)數(shù)器是沒(méi)有記數(shù)功能的,只能用指令設(shè)置。Y地址計(jì)數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動(dòng)加1,Y地址指針從0到63。 (6)顯示數(shù)據(jù)RAM(

18、DDRAM):DDRAM是存儲(chǔ)圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見DDRAM地址表。 (7)Z地址計(jì)數(shù)器:Z地址計(jì)數(shù)器是一個(gè)6位計(jì)數(shù)器,此計(jì)數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計(jì)數(shù)器自動(dòng)加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計(jì)數(shù)器為0。Z地址計(jì)數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動(dòng)顯示64行。2.3 LCD12864顯示原理2.3.1文字顯示原理 在

19、數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對(duì)LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對(duì)于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)辦法,就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來(lái)表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。 那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來(lái)記載英文或漢字的形狀。根據(jù)芯片的不同取模的方式不同,有多種取

20、模方式:?jiǎn)紊c(diǎn)陣液晶字模,橫向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,橫向取模,字節(jié)倒序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序等等4。2.3.2文字顯示應(yīng)用說(shuō)明用帶中文字庫(kù)的128X64顯示模塊時(shí)應(yīng)注意以下幾點(diǎn):(1)欲在某一個(gè)位置顯示中文字符時(shí),應(yīng)先設(shè)定顯示字符位置,即先設(shè)定顯示地址,再寫入中文字符編碼。(2)顯示ASCII字符過(guò)程與顯示中文字符過(guò)程相同。不過(guò)在顯示連續(xù)字符時(shí),只須設(shè)定一次顯示地址,由模塊自動(dòng)對(duì)地址加1指向下一個(gè)字符位置,否則,顯示的字符中將會(huì)有一個(gè)空ASCII字符位置。(3)當(dāng)字符編碼為2字節(jié)時(shí),應(yīng)先寫入高位字節(jié),再寫入低位字節(jié)。(4)模塊在

21、接收指令前,向處理器必須先確認(rèn)模塊內(nèi)部處于非忙狀態(tài),即讀取BF標(biāo)志時(shí)BF需為“0”,方可接受新的指令。如果在送出一個(gè)指令前不檢查BF標(biāo)志,則在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長(zhǎng)的時(shí)間,即等待前一個(gè)指令確定執(zhí)行完成。指令執(zhí)行的時(shí)間請(qǐng)參考指令表中的指令執(zhí)行時(shí)間說(shuō)明。 (5)“RE”為基本指令集與擴(kuò)充指令集的選擇控制位。當(dāng)變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時(shí),無(wú)需每次均重設(shè)“RE”位。2.3.3指令描述 (1)顯示開/關(guān)設(shè)置 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHHHHH/L 功能:設(shè)置屏幕顯示

22、開/關(guān)。 DB0=H,開顯示;DB0=L,關(guān)顯示。不影響顯示RAM(DD RAM)中的內(nèi)容。 (2)設(shè)置顯示起始行 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLHH行地址(0-63) 功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。顯示起始行是由Z地址計(jì)數(shù)器控制的,該命令自動(dòng)將A0-A5位地址送入Z地址計(jì)數(shù)器,起始地址可以是0-63范圍內(nèi)任意一行。Z地址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動(dòng)加一。 (3)設(shè)置頁(yè)地址 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLHLHHH頁(yè)地址(0-7)功能:執(zhí)行本指令后,下

23、面的讀寫操作將在指定頁(yè)內(nèi),直到重新設(shè)置。頁(yè)地址就是DD RAM 的行地址,頁(yè)地址存儲(chǔ)在X地址計(jì)數(shù)器中,A2-A0可表示8頁(yè),讀寫數(shù)據(jù)對(duì)頁(yè)地址沒(méi)有影響,除本指令可改變頁(yè)地址外,復(fù)位信號(hào)(RST)可把頁(yè)地址計(jì)數(shù)器內(nèi)容清零。 (4)設(shè)置列地址 CODE:  R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址(0-63) 功能: DD RAM 的列地址存儲(chǔ)在Y地址計(jì)數(shù)器中,讀寫數(shù)據(jù)對(duì)列地址有影響,在對(duì)DD RAM進(jìn)行讀寫操作后,Y地址自動(dòng)加一。 (5)狀態(tài)檢測(cè) CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRET

24、LLLL 功能:讀忙信號(hào)標(biāo)志位(BF)、復(fù)位標(biāo)志位(RST)以及顯示狀態(tài)位(ON/OFF)。 BF=H:內(nèi)部正在執(zhí)行操作;BF=L:空閑狀態(tài)。RST=H:正處于復(fù)位初始化狀態(tài);RST=L:正常狀態(tài)。ON/OFF=H:表示顯示關(guān)閉;ON/OFF=L:表示顯示開。 (6)寫顯示數(shù)據(jù) CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LHD7D6D5D4D3D2D1D0 功能:寫數(shù)據(jù)到DD RAM,DD RAM是存儲(chǔ)圖形顯示數(shù)據(jù)的,寫指令執(zhí)行后Y地址計(jì)數(shù)器自動(dòng)加1。D7-D0位數(shù)據(jù)為1表示顯示,數(shù)據(jù)為0表示不顯示。寫數(shù)據(jù)到DD RAM前,要先執(zhí)行“設(shè)置頁(yè)地址”及“設(shè)置列地址”命令

25、。 (7)讀顯示數(shù)據(jù) CODE: R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0 功能:從DD RAM讀數(shù)據(jù),讀指令執(zhí)行后Y地址計(jì)數(shù)器自動(dòng)加1。從DD RAM讀數(shù)據(jù)前要先執(zhí)行“設(shè)置頁(yè)地址” 及“設(shè)置列地址”命令。 3 公交報(bào)站液晶顯示系統(tǒng)硬件設(shè)計(jì)3.1 整體電路設(shè)計(jì)說(shuō)明公交報(bào)站液晶顯示系統(tǒng)硬件的設(shè)計(jì)主要圍繞系統(tǒng)的功能完全實(shí)現(xiàn),并且要保證整個(gè)系統(tǒng)在運(yùn)行過(guò)程中的穩(wěn)定性、安全性及生產(chǎn)的經(jīng)濟(jì)性。本系統(tǒng)硬件電路主要由單片機(jī)外圍電路、按鍵控制報(bào)站顯示電路、日歷時(shí)間電路、溫度采集電路以及液晶顯示電路等部分組成。本設(shè)計(jì)選用ATMEL公司的AT89C5

26、2單片機(jī)作為硬件電路的主控芯片,它是一個(gè)低電壓,高性能CMOS的8位單片機(jī),采用串行時(shí)鐘芯片DSl302進(jìn)行時(shí)間獲取,用單總線數(shù)字溫度傳感器DSl8B20進(jìn)行溫度采集,將得到的信息經(jīng)單片機(jī)處理送到LCD顯示5。 公交報(bào)站液晶顯示系統(tǒng)電路框圖如圖1所示。按鍵控制電路復(fù)位電路晶振電路電子時(shí)鐘電路溫度采集電路單片機(jī)AT89C52液晶顯示電路圖1 公交車液晶顯示系統(tǒng)設(shè)計(jì)整體框圖本系統(tǒng)基于AT89C52進(jìn)行設(shè)計(jì),為了能夠方便的報(bào)站,硬件設(shè)計(jì)簡(jiǎn)單地用兩個(gè)外部中斷來(lái)控制站臺(tái)的“+”和“-”,通過(guò)記數(shù)來(lái)判斷所到的站臺(tái),并且通過(guò)RESET來(lái)復(fù)位.由于漢字信息的存儲(chǔ)量大,而單片機(jī)內(nèi)部RAM比較少,不夠用,為了提高

27、可靠性,可用串行EEPROM,它是可在線電擦除和電寫入的存儲(chǔ)器,該存儲(chǔ)器具有體積小,接口簡(jiǎn)單,數(shù)據(jù)保存可靠,可在線改寫和功耗低等特點(diǎn),在單片機(jī)系統(tǒng)中應(yīng)用十分普遍。在此,我們選用AT24C64,它是8K的串行EEPROM,是支持I²C總線數(shù)據(jù)傳送協(xié)議的串行通信的片外存儲(chǔ)CMOS、EEPROM。AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。AT89C52將通用的微處理器和FLASH存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的FLASH存儲(chǔ)器可有

28、效地降低開發(fā)成本。 應(yīng)該注意,ALE/PROG端除輸出地址鎖存允許脈沖外,在編程期間還作為編程脈沖輸入端,參與控制對(duì)FLASH存儲(chǔ)器的讀、寫、加密、擦除等操作。而EA/VPP端在尋址片內(nèi)8KB FLASH程序存儲(chǔ)器時(shí),必須連到VCC,如果將此端連到GND端,將迫使單片機(jī)尋址外部0000H-1FFFH范圍的程序存儲(chǔ)器。如果加密位被編程了,AT89C52的CPU將對(duì)EA的狀態(tài)進(jìn)行采樣并鎖存,EA的狀態(tài)不得與實(shí)際使用的內(nèi)部或外部程序存儲(chǔ)器的狀態(tài)發(fā)生矛盾。3.2 晶振電路單片機(jī)的工作是在統(tǒng)一的脈沖控制下的進(jìn)行的。這個(gè)脈沖就是由單片機(jī)控制器的時(shí)鐘電路發(fā)出的,即時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào)。單

29、片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作的時(shí)鐘信號(hào),而時(shí)鐘電路又各分為兩種,即內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,AT89C52的內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。通過(guò)XTAL1,XTAL2外部接上一片作為反饋元件的晶體,與C1和C2構(gòu)成了并聯(lián)諧振電路,使其構(gòu)成自激振蕩器。電容的值具有微調(diào)的作用,我們?nèi)?2PF6。晶振電路設(shè)計(jì)如圖2所示。圖2 公交車液晶顯示系統(tǒng)設(shè)計(jì)晶振電路AT89C52的工作頻率范圍在 0-24MHZ。晶體振蕩器的頻率越高,振蕩頻率就越高,我們選用的是

30、12MHZ的晶振,振蕩周期為1us,所以這個(gè)晶振可以滿足這個(gè)系統(tǒng)的要求。并且為了減少寄生電容,更好地保證振蕩器可靠地工作,諧振器和電容應(yīng)安裝得與單片機(jī)芯片盡可能的近,不然使用外部晶振進(jìn)行軟件調(diào)試時(shí)就會(huì)發(fā)現(xiàn)找不到信號(hào)。3.3 按鍵控制電路鍵盤實(shí)質(zhì)上是一組按鍵開關(guān)的集合,控制CPU通過(guò)按鍵來(lái)識(shí)別特定的用戶命令,從而轉(zhuǎn)入相應(yīng)的程序來(lái)執(zhí)行用戶命令。對(duì)于此設(shè)計(jì)來(lái)說(shuō)我們要準(zhǔn)確地顯示我們所要對(duì)應(yīng)的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來(lái)報(bào)站而設(shè)計(jì)的。這樣比鍵盤操作方便,也比較實(shí)惠。 鍵盤工作方式有三種,編程掃描、定時(shí)掃描和中掃描。在編程掃描中,CPU反復(fù)地掃描鍵盤,等待用戶的輸入命令,而執(zhí)

31、行鍵入命令或處理輸入數(shù)據(jù)時(shí),CPU不再相應(yīng)輸入要求,直到CPU返回重新掃描鍵盤為止。時(shí)掃描工作方式利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生定時(shí)中斷,CPU相應(yīng)定時(shí)器中斷后對(duì)鍵盤進(jìn)行掃描,在有鍵按下時(shí)識(shí)別出該鍵并執(zhí)行相應(yīng)功能程序。使用中斷方式時(shí)要求在沒(méi)有鍵按下時(shí),不占用CPU處理時(shí)間,只有當(dāng)有鍵按下時(shí)產(chǎn)生鍵盤中斷,由于中斷識(shí)別鍵并執(zhí)行功能程序,這種方法使用最多7。本設(shè)計(jì)按鍵電路采用中斷模式。按鍵的閉合與否反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,如果高電平表示斷開,那么低電平則表示閉合,通過(guò)電平的高低狀態(tài)的檢測(cè)可確認(rèn)鍵按下與否。當(dāng)有按鍵按下時(shí),系統(tǒng)產(chǎn)生中斷,CPU響應(yīng)中斷后,開始計(jì)數(shù),即查詢鍵號(hào),通過(guò)軟件來(lái)實(shí)現(xiàn)該鍵

32、號(hào)所對(duì)應(yīng)鍵的功能。按鍵控制電路設(shè)計(jì)如圖3所示。圖3 公交車液晶顯示系統(tǒng)設(shè)計(jì)按鍵控制電路鍵盤的大體設(shè)置為兩部分:電子時(shí)鐘調(diào)整按鍵和報(bào)站控制按鍵。電子時(shí)鐘調(diào)整按鍵設(shè)置如下:K1鍵為調(diào)整項(xiàng)選擇鍵,按下時(shí)依次對(duì)應(yīng)調(diào)整的對(duì)象為:年、月、日、星期、時(shí)、分、秒;如果調(diào)整項(xiàng)已經(jīng)確定,那么按下K2鍵進(jìn)行相應(yīng)的向后調(diào)整,即實(shí)現(xiàn)“+”的功能,同理,按下K3鍵后進(jìn)行相應(yīng)的向前調(diào)整,實(shí)現(xiàn)“-”的功能;最后按下K4鍵,結(jié)束對(duì)電子時(shí)鐘的調(diào)整。報(bào)站控制按鍵設(shè)置如下:“下一站”鍵用來(lái)控制站臺(tái)“+”,例如:第一站為“起始站”,按下“下一站”時(shí)顯示第二站“中間1站”,其余的站臺(tái)工作原理也一樣;“上一站”鍵用來(lái)控制站臺(tái)的“-”,比如

33、第二站為“中間1站”,再按下“上一站”鍵時(shí)就顯示“起始站”。另外,按鍵接口設(shè)計(jì)一般有兩種方法,獨(dú)立式按鍵和矩陣式鍵盤。獨(dú)立式按鍵各鍵相獨(dú)立,每個(gè)按鍵各接入一根輸入線,只要檢測(cè)輸入線的電平就可以識(shí)別按鍵狀態(tài)。這種方法電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵需占用一根輸入口。由于該設(shè)計(jì)方案IO資源浪費(fèi)大。故此方法只適用于按鍵少或其他控制功能很簡(jiǎn)單的場(chǎng)合。 矩陣鍵盤適用于按鍵數(shù)量較多的場(chǎng)合,它把鍵盤輸入線分為行線和列線,按鍵位于列的交叉點(diǎn)上。按鍵的識(shí)別需要軟件分別掃描行線和列線,根據(jù)掃描的結(jié)果判斷具體按下的按鍵。由于本設(shè)計(jì)中的按鍵只有六個(gè),考慮系統(tǒng)可靠性和鍵盤設(shè)計(jì)的簡(jiǎn)單性所以采用獨(dú)立式按鍵。3.4 復(fù)

34、位電路單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性。在完成單片機(jī)系統(tǒng)開發(fā),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場(chǎng)卻出現(xiàn)了“死機(jī)”“程序跑飛”等現(xiàn)象,出現(xiàn)這種情況的主要因素可以分為內(nèi)因和外因兩部分?;咀枞輳?fù)位電路是最簡(jiǎn)單的復(fù)位電路,利用了電容可以存儲(chǔ)電荷的特性,和電阻組成串聯(lián)網(wǎng)絡(luò)。只要保證電容充放電的時(shí)間常數(shù)滿足單片機(jī)的復(fù)位時(shí)間要求,就可以形成基本的復(fù)位電路。 復(fù)位有硬件和軟件兩種,復(fù)位的作用是使程序自動(dòng)從0000H開始執(zhí)行,因此我們只要在AT89C52單片機(jī)的RESET端加上一個(gè)高電平信號(hào),并持續(xù)10ms以上即可,RESET端接有一個(gè)上電復(fù)位電路,它是由一個(gè)小的電解電容和一個(gè)接地的電阻組成

35、的。人工復(fù)位電路另外采用一個(gè)按鈕來(lái)給RESET端加上高電平信號(hào)8。放電的瞬間RESET端的點(diǎn)位和VCC相同,隨著充電電流的減少,RESET的點(diǎn)位逐漸下降,=RC,這個(gè)時(shí)間常數(shù)一般情況下足以保證完成復(fù)位操作。 在單片機(jī)應(yīng)用系統(tǒng)工作時(shí),除了進(jìn)入系統(tǒng)正常的初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵以重新啟動(dòng)。所以,系統(tǒng)的復(fù)位電路必須準(zhǔn)確、可靠地工作。 單片機(jī)的復(fù)位都是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖以上的高電平,單片機(jī)便實(shí)現(xiàn)初始化狀態(tài)復(fù)位。復(fù)位電路設(shè)計(jì)如圖4所示。圖4 公交車液晶顯示系

36、統(tǒng)設(shè)計(jì)復(fù)位電路 我們采用放電型人工復(fù)位電路后,上電時(shí)C通過(guò)R充電,維持寬度大于10ms的正脈沖,完成上電復(fù)位功能。C充電結(jié)束后,RESET端出現(xiàn)低電平CPU正常工作。在此我們?nèi)×说湫椭礡1=10K,C=10uf。 上電復(fù)位實(shí)現(xiàn)的時(shí)間:T=R*C=10K*10UF=100ms>=10ms。需要人工復(fù)位時(shí),按下復(fù)位按鈕,C通過(guò)復(fù)位按鈕和R1放電,RESET端電位上升到高電平,實(shí)現(xiàn)人工復(fù)位,復(fù)位按鈕松開后C重新充電,充電結(jié)束后,CPU重新工作,R1是限流電阻,阻值不可以過(guò)大,否則不能起到復(fù)位作用。 3.5 時(shí)鐘電路DSl302是美國(guó)DALLAS公司開發(fā)的I²C總線的一種高性能、低功耗

37、、帶RAM、具有閏年補(bǔ)償功能的串行時(shí)鐘日歷芯片。它內(nèi)部可自行產(chǎn)生年、月、日、星期、時(shí)、分、秒等時(shí)標(biāo)并將其數(shù)據(jù)保存在相應(yīng)的寄存器中,單片機(jī)進(jìn)行相應(yīng)位數(shù)據(jù)的讀取。DSl302工作電壓在2.55.5 V范圍內(nèi)選擇,VCCI為后備電源,VCC2為主電源。在沒(méi)有主電源的情況下仍能保存時(shí)間信息及數(shù)據(jù),能夠?qū)溆秒娫催M(jìn)行慢速充電。保持時(shí)鐘的連續(xù)運(yùn)行。在雙電源供電系統(tǒng)中芯片由VCC1和VCC2較大者供電。X1和X2是振蕩源,外接32768Hz石英晶體;RST引腳為復(fù)位信號(hào),在一個(gè)讀寫期間必須保持高電平;I/O引腳為雙向數(shù)據(jù)線引腳;SCLK為串行接口的同步時(shí)鐘。 時(shí)鐘電路設(shè)計(jì)如圖5所示。圖5 公交車液晶顯示系統(tǒng)

38、設(shè)計(jì)時(shí)鐘電路DSl302有12個(gè)寄存器,在本系統(tǒng)中我們只用到與日歷時(shí)鐘相關(guān)的7個(gè)寄存器,存放的數(shù)據(jù)位為BCD碼形式。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。另外,在調(diào)試程序時(shí)可以不加電

39、容器,只加一個(gè)32.768kHz 的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較大。3.6 溫度采集電路 DSl8B20是美國(guó)DAIIAS公司生產(chǎn)的一線制單總線智能數(shù)字溫度傳感器,在其內(nèi)部使用了在板(ON-BOARD)專利技術(shù),具有微型化、低功耗、高性能、抗干抗性強(qiáng)等優(yōu)點(diǎn)。它能夠直接讀出被測(cè)溫度,測(cè)溫范圍為-55+125,在-10+80時(shí),其測(cè)量精度為0.5。 溫度采集電路設(shè)計(jì)如圖6所示。圖6 公交車液晶顯示系統(tǒng)設(shè)計(jì)溫度采集電路 上圖中DQ為數(shù)據(jù)輸入輸出引腳,以數(shù)據(jù)總線供電方式為設(shè)備提供電源;VDD為可選的電源電壓腳;GND為地。讀出或?qū)懭胄畔H需要一根口線,大大節(jié)省了CPU的I/

40、O口線。在單片機(jī)側(cè)添加上拉電阻,可以提供較大的驅(qū)動(dòng)電流,提高抗干擾能力,使DSl8B20能夠進(jìn)行精確的轉(zhuǎn)換。由于DSl8B20單線通信功能是分時(shí)完成的,遵循嚴(yán)格的時(shí)隙概念,因此,系統(tǒng)對(duì)DSl8B20和各種操作必須按協(xié)議進(jìn)行,即“初始化DSl8B20”“發(fā)ROM功能命令”一“發(fā)存儲(chǔ)器操作命令”一“處理數(shù)據(jù)”。DSl8B20內(nèi)部有9個(gè)字節(jié)的暫存器,單片機(jī)發(fā)出溫度轉(zhuǎn)換命令后,DSl8B20將測(cè)得的溫度值保存在MSB(高8位)、U沿(低8位)2個(gè)單元中,供單片機(jī)讀取。MSB和LSB存放當(dāng)前的溫度值,以16位補(bǔ)碼形式表示12位溫度讀數(shù)。其中MSB高位是溫度值的符號(hào)位,LSB的低位是溫度值的小數(shù)部分。3.

41、7液晶顯示電路 液晶顯示器(Liquid Crystal Display,LCD)具有體積小便于攜帶、功耗低、抗干擾能力強(qiáng)、信息豐富等優(yōu)點(diǎn),已被廣泛地運(yùn)用在了儀器儀表和控制系統(tǒng)中。在公交報(bào)站系統(tǒng)中,采用LCD進(jìn)行站名漢字顯示,具有直觀性,增強(qiáng)了系統(tǒng)的實(shí)用性。本文液晶模塊仿真設(shè)計(jì)選用Proteus中的AMPIRE128×64。與帶字庫(kù)的液晶不同,此塊液晶含有兩個(gè)液晶驅(qū)動(dòng)器,分為左右兩個(gè)屏幕顯示,因此有CS1和CS2兩個(gè)片選端。其管腳說(shuō)明見本文2.2部分,顯示模式見本文2.3部分。 液晶顯示電路設(shè)計(jì)如圖7所示。 圖7 公交車液晶顯示系統(tǒng)設(shè)計(jì)液晶顯示電路 報(bào)站系統(tǒng)液晶顯示的電路連接圖如上所

42、示??刂齐娐愤x用單片機(jī)AT89C52,12864管腳DB0DB7與單片機(jī)的P0口相連,將P2.0,P2.1,P2.2分別與液晶的E、RW、RS端連接,P2.4和P2.3分別和CS1和CS2端連接,用來(lái)控制液晶左右屏的顯示。為了便于司機(jī)操作,采用2個(gè)獨(dú)立式按鍵對(duì)顯示進(jìn)行控制,分別與單片機(jī)的P1.0、P1.1口相連,分別代表2種功能:本站提示和下一站提示。4 系統(tǒng)軟件設(shè)計(jì)4.1 主程序流程 首先對(duì)系統(tǒng)進(jìn)行初始化,然后掃描鍵盤是否按下,接著讀取時(shí)間,溫度送到單片機(jī)中系處理,再完成顯示。主程序流程圖如圖8所示。開始 系統(tǒng)初始化掃描鍵盤讀取DS1302時(shí)間讀取DS18B02溫度單片機(jī)處理LCD顯示圖8

43、公交車液晶顯示系統(tǒng)設(shè)計(jì)主程序流程圖4.2 按鍵控制程序按鍵電路部分共控制4站報(bào)站信息提示,對(duì)單邊線路的報(bào)站進(jìn)行了仿真。系統(tǒng)上電后,對(duì)液晶模塊進(jìn)行初始化,并進(jìn)行清屏。按鍵部分采用掃描法,當(dāng)檢測(cè)到按鍵按下時(shí),進(jìn)行鍵值判斷,并進(jìn)行相應(yīng)顯示程序的跳轉(zhuǎn),實(shí)現(xiàn)公交報(bào)站的功能。另外電子時(shí)鐘控制按鍵,用來(lái)調(diào)整電子時(shí)鐘顯示數(shù)值。時(shí)間默認(rèn)在24小時(shí)模式下運(yùn)行,定義一個(gè)標(biāo)志位flag1,第一次按下選擇鍵,把時(shí)間轉(zhuǎn)換成12小時(shí)制,令flag1=1,此后DS1302芯片在12小時(shí)模式下運(yùn)行。按鍵程序流程如圖9所示。開始 液晶模塊初始化,并清屏 否按鍵是否被按下 是 下站鍵上站鍵 次站提示本站提示圖9 公交車液晶顯示系統(tǒng)

44、設(shè)計(jì)按鍵程序流程圖 整個(gè)程序的詳細(xì)流程如下:Step l:對(duì)LCD進(jìn)行初始化,即根據(jù)系統(tǒng)的需要對(duì)液晶控制器的各項(xiàng)參數(shù)進(jìn)行設(shè)置,顯示開關(guān)、顯示起始行、光標(biāo)位置等設(shè)置,再對(duì)LCD所有單元寫零清屏后準(zhǔn)備顯示。Step 2:掃描P1端口,等待按鍵的按下,進(jìn)行鍵值判斷,不同的按鍵對(duì)應(yīng)不同的分支:K1按鍵:表示是起始站,顯示歡迎詞,在LCD上固定顯示:“歡迎您乘坐本路公交車!”;K2、K3按鍵:分別表示本站和下一站,可方便進(jìn)行站臺(tái)調(diào)節(jié),在LCD上顯示:“2站到了!下一站3”。其中2和3分別是本站和下一站的站臺(tái)名,如本線路要涉及4個(gè)站臺(tái)(包括起始站和終點(diǎn)站)。而“站到了”和“下一站”是公交線路中各站都要顯示

45、的,則固定顯示,故按鍵改變的只是模塊的左半屏上半部分和右半屏下半部分內(nèi)容的顯示。 K4鍵:表示終點(diǎn)站,顯示歡送提示,在LCD上固定顯示:“終點(diǎn)站到了,請(qǐng)乘客依次從后門下車”。一定延遲后表明本次運(yùn)行結(jié)束。Step 3:若沒(méi)有到終點(diǎn)站,返回Step2。4.3 時(shí)鐘電路程序定時(shí)采用中斷方式,利用TO每隔100mS向CPU發(fā)出一次中斷請(qǐng)求,用6Hz晶體振蕩器,定時(shí)器TO1工作在方式l的一定時(shí)器初值為30B0H(即THO=13CH,TL0=0B0H),CPU響應(yīng)中斷后進(jìn)入中斷服務(wù)子程序。時(shí)鐘電路程序流程如圖10所示。T0中斷 重裝定時(shí)器T0初值時(shí)間校正循環(huán)次數(shù)檢測(cè)否是否滿10次是秒單元加1是否是否滿60

46、秒秒單元清零否是是否滿60分分單元加1分單元清零是否是否滿24 h小時(shí)單元加1小時(shí)單元清零恢復(fù)中斷返回 圖10 公交車液晶顯示系統(tǒng)設(shè)計(jì)時(shí)鐘電路程序流程圖 如上圖所示,中斷服務(wù)子程序以100mS,ls,1min,1h對(duì)時(shí)鐘計(jì)時(shí),每產(chǎn)生一次中斷,100ms計(jì)數(shù)單元加1,當(dāng)該單元內(nèi)容累計(jì)到10時(shí),秒計(jì)數(shù)單元加1并將100ms單元清0,秒累計(jì)到60時(shí),分計(jì)數(shù)單元加l。并將秒計(jì)數(shù)單元清O,當(dāng)計(jì)數(shù)單元累計(jì)到60時(shí),時(shí)計(jì)數(shù)單元加1,并將分計(jì)數(shù)單元去清O;時(shí)計(jì)數(shù)單元滿24后,所用單元內(nèi)容清0。 定時(shí)器計(jì)數(shù)單元的內(nèi)容為十六進(jìn)制,需要把該數(shù)調(diào)整為壓縮BCD碼并通過(guò)程序拆分成單字節(jié)BCD碼后,送人顯示緩沖

47、區(qū),進(jìn)行輸出顯示。該定時(shí)中斷子程序用于實(shí)現(xiàn)定時(shí)功能,同時(shí)刷新計(jì)時(shí)緩沖區(qū)。應(yīng)該注意,控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出9。4.4 溫度顯示電路程序 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。其中溫度傳感器可完成對(duì)溫度的測(cè)量,并用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。這里以12位轉(zhuǎn)化為例說(shuō)明溫

48、度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)高低兩個(gè)8位的RAM中,二進(jìn)制中的前面5位是符號(hào)位。如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。 因?yàn)镈S18B20采用一線通信接口,所以必須在編程時(shí)應(yīng)先完成ROM設(shè)定,否則記憶和控制功能將無(wú)法使用。DS18B20完成溫度測(cè)量后,數(shù)據(jù)存儲(chǔ)在DS18B20的存儲(chǔ)器,并發(fā)出記憶功能的指令,閱讀片上存儲(chǔ)器的內(nèi)容。溫度報(bào)警觸發(fā)器TH和TL都有一字節(jié)EEPROM的數(shù)據(jù)。如果DS18B20不使用報(bào)警檢查指

49、令,這些寄存器可作為一般的用戶記憶用途。在片上還載有配置字節(jié)以理想地解決溫度數(shù)字轉(zhuǎn)換。寫TH、TL指令以及配置字節(jié)都可利用一個(gè)記憶功能的指令完成。通過(guò)緩存器讀寄存器,所有數(shù)據(jù)的讀、寫都是從最低位開始。溫度顯示程序流程見下圖11。溫度采集讀寫流程:開始進(jìn)入初始化DS18B20,就是通過(guò)主機(jī)拉低單線產(chǎn)生復(fù)位脈沖然后釋放該線,如果有應(yīng)答脈沖,即發(fā)起ROM命令,當(dāng)成功的執(zhí)行操作命令后,就使用內(nèi)存操作命令,即溫度轉(zhuǎn)換等,當(dāng)轉(zhuǎn)換完后,又初始化DS18B20是否有應(yīng)答脈沖,若有,就發(fā)起讀時(shí)隙命令,同時(shí)讀出第1,2個(gè)字節(jié),即為溫度的數(shù)據(jù)。 CPU對(duì)DS18B20的訪問(wèn)流程是:先對(duì)DS18B20初始化,再進(jìn)行R

50、OM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作10。溫度顯示程序流程圖如圖11所示。應(yīng)答脈沖應(yīng)答脈沖初始化DS18B20延時(shí)一秒等待溫度轉(zhuǎn)換完成發(fā)起Convert T 命令發(fā)起 Skip Rom 命令發(fā)起 Read Scratchpad 命令讀取1、2字節(jié)為溫度轉(zhuǎn)換數(shù)據(jù)初始化DS18B20開始 圖11 公交車液晶顯示系

51、統(tǒng)設(shè)計(jì)溫度顯示程序流程圖4.5 液晶顯示電路程序AMPIRE12864是圖形點(diǎn)陣液晶顯示器,它主要采用動(dòng)態(tài)驅(qū)動(dòng)原理由行驅(qū)動(dòng)控制器和列驅(qū)動(dòng)器兩部分組成了128(列)×64(行)的全點(diǎn)陣液晶顯示。可顯示8×4個(gè)16×16點(diǎn)陣漢字或16×4個(gè)16×8點(diǎn)陣ASCII字符集,也可完成圖形的顯示。與CPU接口采用5條位控制總線和8位并行數(shù)據(jù)總線輸入輸出,具有4位/8位并行、2線或3線串行多種接口方式??筛鶕?jù)12864引腳功能及指令編寫漢字顯示程序,12864各引腳介紹與指令說(shuō)明見本文第2部分。液晶顯示模塊中按字節(jié)為單位劃分,單個(gè)屏幕中,共分為8個(gè)頁(yè),每頁(yè)為

52、8行,而每一行為64個(gè)位(即64列)。同計(jì)算機(jī)一樣,單片機(jī)控制液晶點(diǎn)陣顯示中的數(shù)據(jù)也是以“0”和“1”代碼來(lái)表示的。一般的,“0”代表不顯示數(shù)據(jù),“1”代表有顯示數(shù)據(jù),根據(jù)編碼的不同,最終會(huì)顯示出不同的字。顯示器上的顯示點(diǎn)與驅(qū)動(dòng)控制芯片中的顯示緩存是一一對(duì)應(yīng)的,即字模當(dāng)中的一個(gè)位代表LCD顯示中的一個(gè)像素點(diǎn),取點(diǎn)方式為從左到右,自上到下的順序。這里采用16×16的點(diǎn)陣輸出顯示每個(gè)漢字,那么就需要屏幕上的256個(gè)點(diǎn)組成的方塊來(lái)顯示。一個(gè)字節(jié)對(duì)應(yīng)8個(gè)點(diǎn),所以一個(gè)漢字需要32個(gè)字節(jié)來(lái)存儲(chǔ)顯示。采用PCtoLCD2002漢字提取軟件,打開窗口,設(shè)置好字體、字號(hào)等格式參數(shù),在漢字輸入?yún)^(qū),輸入漢

53、字或其它字符,即得到需要的代碼11。根據(jù)對(duì)LCD12864資料的分析,程序編制主要有:讀取LCD的狀態(tài),忙檢查,向LCD寫入命令,向LCD寫入數(shù)據(jù),LCD初始化,設(shè)置LCD液晶的顯示位置,顯示字符等。除此之外,我們把要顯示的字符和漢字用一個(gè)專門的程序來(lái)編寫,命名為zifu.c。液晶顯示程序流程如圖12所示。開始LCD初始化寫地址延時(shí)寫數(shù)據(jù)延時(shí)顯示左半屏內(nèi)容開左半屏顯示右半屏內(nèi)容開右半屏圖12 公交車液晶顯示系統(tǒng)設(shè)計(jì)液晶顯示程序流程圖5 公交車報(bào)站液晶顯示系統(tǒng)的仿真Proteus ISIS是英國(guó)Lab center公司開發(fā)的電路分析實(shí)物仿真軟件。該軟件可以提供嵌入式系統(tǒng)(單片機(jī)應(yīng)用系統(tǒng)、ARM應(yīng)用系統(tǒng))軟硬件設(shè)計(jì)仿真平臺(tái),支持主流單片機(jī)系統(tǒng)的仿真并集SPICE分析于一身,把用戶編寫的應(yīng)用程序下載到微處理器(MCU)中,結(jié)合外界連線及模擬、數(shù)字電路對(duì)微處理器進(jìn)行系統(tǒng)邏輯功能的控制。該軟件除了大量的元件庫(kù)外,還有常

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論