![畢業(yè)設(shè)計(jì)論文基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)02565_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/b0eefe18-6595-4fa1-97c5-91df286a3317/b0eefe18-6595-4fa1-97c5-91df286a33171.gif)
![畢業(yè)設(shè)計(jì)論文基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)02565_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/b0eefe18-6595-4fa1-97c5-91df286a3317/b0eefe18-6595-4fa1-97c5-91df286a33172.gif)
![畢業(yè)設(shè)計(jì)論文基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)02565_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/b0eefe18-6595-4fa1-97c5-91df286a3317/b0eefe18-6595-4fa1-97c5-91df286a33173.gif)
![畢業(yè)設(shè)計(jì)論文基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)02565_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/b0eefe18-6595-4fa1-97c5-91df286a3317/b0eefe18-6595-4fa1-97c5-91df286a33174.gif)
![畢業(yè)設(shè)計(jì)論文基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)02565_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/b0eefe18-6595-4fa1-97c5-91df286a3317/b0eefe18-6595-4fa1-97c5-91df286a33175.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于51單片機(jī)數(shù)字電壓表的設(shè)計(jì)目 錄一、系統(tǒng)總體方案選擇與說明11.1設(shè)計(jì)要求11.2 設(shè)計(jì)思路11.3 設(shè)計(jì)方案1二、硬件電路設(shè)計(jì)22.1 at89c51的功能介紹22.1.1簡單概述22.1.2主要功能特性32.1.3 at89c51的引腳介紹32.2 adc0808的引腳及功能介紹52.2.1芯片概述5adc0808芯片模型52.2.2 引腳簡介52.2.3 adc0808的轉(zhuǎn)換原理62.2.4 adc0808的內(nèi)部結(jié)構(gòu)62.2.5 adc0808電路接線圖62.3 顯示電路72.3.1 lm016l的結(jié)構(gòu)及功能72.3.2 lm016l的引腳功能介紹72.3.3 lm016l的電路接線
2、圖132.4 復(fù)位電路設(shè)計(jì)132.5振蕩電路設(shè)計(jì)14三、軟件設(shè)計(jì)與說明10四、系統(tǒng)仿真與調(diào)試12五、總 結(jié)13參考文獻(xiàn)14附 錄15附錄a 系統(tǒng)原理圖15附錄b 程序清單16 一、系統(tǒng)總體方案選擇與說明1.1設(shè)計(jì)要求(1)使用51單片機(jī),ad0809,數(shù)碼管等元件組成(2)能測量0-5v的直流電壓(3)能連續(xù)、穩(wěn)定顯示所測電壓(4)測量誤差<0.02v)1.2 設(shè)計(jì)思路 根據(jù)設(shè)計(jì)要求,選擇at89c51單片機(jī)為核心控制器件。 a/d轉(zhuǎn)換采用adc0808實(shí)現(xiàn)。 電壓顯示采用lcd顯示。1.3 設(shè)計(jì)方案數(shù)字電壓表的設(shè)計(jì)即將連續(xù)的模擬電壓信號經(jīng)過a/d轉(zhuǎn)換器轉(zhuǎn)換成二進(jìn)制數(shù)值,再經(jīng)由單片機(jī)軟件
3、編程轉(zhuǎn)換成十進(jìn)制數(shù)值并通過顯示屏顯示。該設(shè)計(jì)主要由三個(gè)模塊組成:a/d轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。a/d轉(zhuǎn)換主要由芯片adc0808來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片at89c51來完成,其負(fù)責(zé)把a(bǔ)dc0808傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著adc0808芯片工作。時(shí)鐘電路 復(fù)位電路a/d轉(zhuǎn)換電路測量電壓輸入顯示系統(tǒng)at89c51 p2 p0 p3 數(shù)字電壓表系統(tǒng)硬件設(shè)計(jì)框圖 二、硬件電路設(shè)計(jì)2.1 at89c51的功能介紹2.1.1簡單概述at89c51是一種帶4k字節(jié)閃存可編程
4、可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機(jī)。at89c51是一種帶2k字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案
5、。外形及引腳排列如圖3-2所示。圖3-2 at89c51芯片模型2.1.2主要功能特性(1) 4k字節(jié)可編程閃爍存儲器。 (2) 32個(gè)雙向i/o口;128×8位內(nèi)部ram 。(3) 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷,時(shí)鐘頻率0-24mhz。 (4) 可編程串行通道。 (5) 5個(gè)中斷源。 (6) 2個(gè)讀寫中斷口線。 (7) 低功耗的閑置和掉電模式。(8) 片內(nèi)振蕩器和時(shí)鐘電路。2.1.3 at89c51的引腳介紹89c51單片機(jī)多采用40只引腳的雙列直插封裝(dip)方式,下面分別簡單介紹。(1)電源引腳電源引腳接入單片機(jī)的工作電源。vcc(40引腳):+5v電源。gnd(20引腳
6、):接地。(2)時(shí)鐘引腳xtal1(19引腳):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路的輸入端。xtal2(20引腳):片內(nèi)振蕩器反相放大器的輸出端。圖3-3 電源接入方式(3)復(fù)位rst(9引腳)在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腳時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,51芯片便循環(huán)復(fù)位。(4)/vpp(31引腳)為外部程序存儲器訪問允許控制端。當(dāng)它為高電平時(shí),單片機(jī)讀片內(nèi)程序存儲器,在pc值超過0fffh后將自動轉(zhuǎn)向外部程序存儲器。當(dāng)它為低電平時(shí),只限定在外部程序存儲器,地址為0000hffffh。vpp為該引腳的第二功能,為編程電壓輸入端。(5)al
7、e/(30引腳)ale為低八位地址鎖存允許信號。在系統(tǒng)擴(kuò)展時(shí),ale的負(fù)跳沿江p0口發(fā)出的第八位地址鎖存在外接的地址鎖存器,然后再作為數(shù)據(jù)端口。為該引腳的第二功能,在對片外存儲器編程時(shí),此引腳為編程脈沖輸入端。(6)(29引腳)片外程序存儲器的讀選通信號。在單片機(jī)讀片外程序存儲器時(shí),此引腳輸出脈沖的負(fù)跳沿作為讀片外程序存儲器的選通信號。(7) pin39-pin32為p0.0-p0.7輸入輸出腳,稱為p0口。p0是一個(gè)8位漏極開路型雙向i/o口。內(nèi)部不帶上拉電阻,當(dāng)外接上拉電阻時(shí),p0口能以吸收電流的方式驅(qū)動八個(gè)lsttl負(fù)載電路。通常在使用時(shí)外接上拉電阻,用來驅(qū)動多個(gè)數(shù)碼管。 在訪問外部程序
8、和外部數(shù)據(jù)存儲器時(shí),p0口是分時(shí)轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,不需要外接上拉電阻。(8)pin1-pin8為p1.0-p1.7輸入輸出腳,稱為p1口,是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/0口。p1口能驅(qū)動4個(gè)lsttl負(fù)載。(9)pin21-pin28為p2.0-p2.7輸入輸出腳,稱為p2口。p2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p2口能驅(qū)動4個(gè)lsttl負(fù)載。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時(shí),接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時(shí),p2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時(shí)其引腳上的內(nèi)容在此
9、期間不會改變。 (10)pin10-pin17為p3.0-p3.7輸入輸出腳,稱為p3口。p3口是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p2口能驅(qū)動4個(gè)lsttl負(fù)載,這8個(gè)引腳還用于專門的第二功能。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時(shí),接控制信息。2.2 adc0808的引腳及功能介紹2.2.1芯片概述 adc0808是采樣分辨率為8位的、以逐次逼近原理進(jìn)行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個(gè)進(jìn)行a/d轉(zhuǎn)換。adc0808是adc0809的簡化版本,功能基本相同。一般在硬
10、件仿真時(shí)采用adc0808進(jìn)行a/d轉(zhuǎn)換,實(shí)際使用時(shí)采用adc0809進(jìn)行a/d轉(zhuǎn)換。adc0808是一種典型的a/d轉(zhuǎn)換器。它是由8位a/d轉(zhuǎn)換器,一個(gè)8路模擬量開關(guān),8位模擬量地址鎖存譯碼器和一個(gè)三態(tài)數(shù)據(jù)輸出鎖存器組成; +5v單電源供電,轉(zhuǎn)化 時(shí)間在100us左右;內(nèi)部沒有時(shí)鐘電路,故需外部提供時(shí)鐘信號。芯片模型如圖所示。adc0808芯片模型2.2.2 引腳簡介adc0808芯片有28條引腳,采用雙列直插式封裝,各引腳功能如下: (1) in0in7:8路模擬量輸入端。這里只接一路電壓信號,其輸入信號是由直流電源及可調(diào)電阻提供。 (2) d0d7:8位數(shù)字量輸出端口,其另一端連接到at
11、89c51單片機(jī)進(jìn)行數(shù)值轉(zhuǎn)換(3) start:a/d轉(zhuǎn)換啟動信號輸入端。由單片機(jī)p3.6口寫信號與p2.0口相或取反輸入一個(gè)正脈沖使其啟動(脈沖上升沿使0808復(fù)位,下降沿啟動a/d轉(zhuǎn)換)。 (4) ale:地址鎖存允許信號,高電平有效。(5) eoc:輸出允許控制信號,高電平有效。eoc為 ad轉(zhuǎn)換結(jié)束信號,當(dāng)ad轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平取反給p3.3口(轉(zhuǎn)換期間一直為低電平)。(6) oe: 輸出允許控制信號,高電平有效。當(dāng)ad轉(zhuǎn)換結(jié)束時(shí),此端由單片機(jī)p3.7讀信號與p2.0口相或后取反輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 (7) clk:時(shí)鐘信號輸入端。(8)a、b、
12、c:轉(zhuǎn)換通道地址,控制8路模擬通道的切換。a、b、c分別與地址線或數(shù)據(jù)線相連,三位編碼對應(yīng)8個(gè)通道地址端口,a、b、c=000111分別對應(yīng)in0in7通道的地址端口。2.2.3 adc0808的轉(zhuǎn)換原理adc 0808 采用逐次比較的方法完成a/d轉(zhuǎn)換,由單一的+5v電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由a、b、c的編碼來決定所選的通道。adc0809完成一次轉(zhuǎn)換需100s左右,它具有輸出ttl三態(tài)鎖存緩沖器,可直接連接到at89c51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐?,adc0808可對05v的模擬信號進(jìn)行轉(zhuǎn)換。2.2.4 adc0808的內(nèi)部結(jié)構(gòu)adc0808是cmos單片型逐
13、次逼近式a/d轉(zhuǎn)換器,它有8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型a/d轉(zhuǎn)換器。2.2.5 adc0808電路接線圖2.3 顯示電路2.3.1 lm016l的結(jié)構(gòu)及功能lm016l液晶模塊采用hd44780控制器,hd44780具有簡單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動,閃爍等功能,lm016l與單片機(jī)mcu通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個(gè)8位寄存器,指令寄存器(ir)和數(shù)據(jù)寄存器(dr)忙標(biāo)志(bf),顯示數(shù)ram(ddram),字符發(fā)生器roma(cgorom)字符發(fā)生器ram(cgram),地址計(jì)數(shù)器ram(ac)。ir用于寄存指令碼,只能寫
14、入不能讀出,dr用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入ddram和cgram,或者暫存從ddram和cgram讀出的數(shù)據(jù),bf為1時(shí),液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),ddtam用來存儲顯示的字符,能存儲80個(gè)字符碼,cgrom由8位字符碼生成5*7點(diǎn)陣字符160中和5*10點(diǎn)陣字符32種.cgram是為用戶編寫特殊字符留用的,它的容量僅64字節(jié),可以自定義8個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣字符,ac可以存儲ddram和cgram的地址,如果地址碼隨指令寫入ir,則ir自動把地址碼裝入ac,同時(shí)選擇ddram或cgram單元。2.3.2 lm016l的引腳功能介紹1602字
15、符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線。vcc(15腳)和地線gnd(16腳),其控制原理與14腳的lcd完全一樣,其中:(1) vss:一般接地(2) vdd:接電源(+5v)(3) v0:液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對比度)。(4) rs:rs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。(5) r/w:r/w為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。當(dāng)rs和r/w共同為低電平時(shí)可以寫入指令或者顯示地址,
16、當(dāng)rs為低電平r/w為高電平時(shí)可以讀忙信號,當(dāng)rs為高電平r/w為低電平時(shí)可以寫入數(shù)據(jù)。(6) e:e(或en)端為使能(enable)端,下降沿使能(7) db0:底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)(8) db1:底4位三態(tài)、 雙向數(shù)據(jù)總線 1位(9) db2:底4位三態(tài)、 雙向數(shù)據(jù)總線 2位(10) db3:底4位三態(tài)、 雙向數(shù)據(jù)總線 3位(11) db4:高4位三態(tài)、 雙向數(shù)據(jù)總線 4位(12) db5:高4位三態(tài)、 雙向數(shù)據(jù)總線 5位(13) db6:高4位三態(tài)、 雙向數(shù)據(jù)總線 6位(14) db7:高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位) 2.3.3 lm016l的電路接線
17、圖 lcd顯示電路電路圖2.4 復(fù)位電路設(shè)計(jì)復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的reset鍵,電源vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實(shí)現(xiàn)單片機(jī)自動復(fù)位操作。上電瞬間reset引腳獲得高電平,隨著電容的充電,rerst引腳的高電平將逐漸下降。rerst引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位的電路如下圖所示。 按鍵復(fù)位電路電路圖2.5振蕩電路設(shè)計(jì)單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳xtal1
18、,其輸出端為引腳xtal2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器(大小為1mhz)和兩只電容(電容和一般取30pf)。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號,再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ale信號,此時(shí)得到的信號時(shí)機(jī)器周期信號。振蕩電路如圖所示 振蕩電路電路圖 三、軟件設(shè)計(jì)與說明主程序的內(nèi)容包括:起始地址、中斷服務(wù)程序的起始地址、有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序的調(diào)用等。根據(jù)設(shè)計(jì)要求,設(shè)計(jì)出如圖所示的主程序流程圖。 結(jié) 束 調(diào)用顯示子程序 調(diào)用a/d轉(zhuǎn)換子程序 初 始 化 開 始a/d轉(zhuǎn)換子程序設(shè)計(jì): a/d轉(zhuǎn)換程序的功能是采集數(shù)據(jù),在整個(gè)系統(tǒng)
19、設(shè)計(jì)中占有很高的地位。當(dāng)系統(tǒng)置好后,單片機(jī)掃描轉(zhuǎn)換結(jié)束管腳p3.3的輸入電平狀態(tài),當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值顯示輸出。若輸入為低電平,則繼續(xù)掃描。程序流程圖如圖所示。 開 始 顯示轉(zhuǎn)換結(jié)果 處理轉(zhuǎn)換結(jié)果調(diào)用a/d轉(zhuǎn)換程序,開始a/d轉(zhuǎn)換 轉(zhuǎn)換是否完成? nn n 結(jié) 束 y 四、系統(tǒng)仿真與調(diào)試本設(shè)計(jì)應(yīng)用proteus7.8及keil51軟件進(jìn)行仿真,首先根據(jù)自己設(shè)計(jì)的電路圖用proteus7.8軟件畫出電路模型,然后我們用keil51軟件對自己所編寫的程序進(jìn)行編譯、鏈接,若程序沒有錯(cuò)誤和警告便可生成一個(gè)*.hex文件,然后再將此文件加到proteus7.8電路圖上使軟硬件結(jié)合仿真。
20、仿真結(jié)果如下圖所示。 五、總 結(jié) 在這次單片機(jī)課程設(shè)計(jì)之初,我了無頭緒,但在不斷查閱資料,和同學(xué)的相互討論之后對本次課程設(shè)計(jì)有了基本的認(rèn)識。經(jīng)過近兩周的努力,雖然基于單片機(jī)的簡易數(shù)字電壓表基本完成,但設(shè)計(jì)中的不足之處仍然存在。這次設(shè)計(jì)是我第一次設(shè)計(jì)電路,并用proteus實(shí)現(xiàn)了仿真。在這過程中,我對電路設(shè)計(jì),單片機(jī)的使用等都有了新的認(rèn)識。通過這次設(shè)計(jì)學(xué)會了proteus和keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計(jì)、功能模塊的劃分、原理圖的設(shè)計(jì)和電路圖的仿真的設(shè)計(jì)流程,積累了不少經(jīng)驗(yàn)。經(jīng)過這兩個(gè)星期的學(xué)習(xí),我覺得自己不論是在理論知識方面還是在動手能力方面都有了不小的進(jìn)步,自己從中受益
21、匪淺。這次設(shè)計(jì)很好的把以前學(xué)到的理論知識應(yīng)用于實(shí)踐中去,使我認(rèn)識到理論知識與實(shí)踐之間有一定的差距,只有通過不斷的努力學(xué)習(xí)和實(shí)踐相結(jié)合才能更好地掌握這門學(xué)科。通過這次設(shè)計(jì)不僅學(xué)會了如何去查找相關(guān)資料,更重要的是通過查找資料和翻閱書籍學(xué)到了不少知識,擴(kuò)大了知識面,提高了知識水平。經(jīng)過單元設(shè)計(jì)和系統(tǒng)設(shè)計(jì)鞏固了以前所學(xué)的專業(yè)知識,自己真正認(rèn)識到理論聯(lián)系實(shí)際的重要性,為以后的學(xué)習(xí)和工作提供了很多有價(jià)值的經(jīng)驗(yàn)。通過這次設(shè)計(jì)不僅增強(qiáng)了自己的動腦能力和動手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學(xué)會用工程化的思想來解決問題。這在以前的學(xué)習(xí)過程中是不曾學(xué)到的。這次設(shè)計(jì)使我認(rèn)識到完整、嚴(yán)謹(jǐn)、
22、科學(xué)分析問題、解決問題的思想是多么的重要,只有擁有了科學(xué)的態(tài)度才能設(shè)計(jì)出有用的產(chǎn)品。另外通過本次設(shè)計(jì),使我認(rèn)識到自己所學(xué)到的理論知識在應(yīng)用到實(shí)際中去的能力有很大的欠缺,需要在以后的學(xué)習(xí)中進(jìn)一步提高。通過這次課程設(shè)計(jì),使我對單片機(jī)的認(rèn)識了解有了更加深刻的認(rèn)識。參考文獻(xiàn)1、單片機(jī)原理及應(yīng)用李建忠 編 西安電子科技大學(xué)出版社2、單片微型計(jì)算機(jī)原理與接口技術(shù) 高峰 編 電子工業(yè)出版社3、單片機(jī)應(yīng)用新技術(shù)教程鄒逢興 編 高等教育出版社4、16位微型計(jì)算機(jī)原理接口及其應(yīng)用 朱宇光 編 電子工業(yè)出版社5、微型計(jì)算機(jī)原理與接口技術(shù) 吳秀清 編 中國科學(xué)技術(shù)出版社6、微型計(jì)算機(jī)接口技術(shù) 鄧亞平 編 清華大學(xué)出版
23、社 7、單片機(jī)原理及及應(yīng)用 王迎旭 編 機(jī)械工業(yè)出版社 附 錄附錄a 系統(tǒng)原理圖附錄b 程序清單#include "includes.h"#define time0h 0x3c#define time0l 0xb0 /全局變量unsigned char uc_clock=0; /定時(shí)器0中斷計(jì)數(shù)bit b_datransform=0; void vshowvoltage(unsigned int uinumber)/把電壓顯示在lcd上unsigned char ucanumber3,uccount;if(uinumber>999)uinumber=999;ucanu
24、mber0=uinumber/100;/把計(jì)算數(shù)字的每個(gè)位存入數(shù)組。ucanumber1=(uinumber-100*(int)ucanumber0)/10ucanumber2=uinumber-100*(int)ucanumber0-10*ucanumber1;for(uccount=0;uccount<3;uccount+)vshowonechar(ucanumberuccount+48);/從首位到末位逐一輸出。if(uccount=0)vshowonechar('.');/主函數(shù)*void main() 設(shè)置定時(shí)器0tmod=0x01;/定時(shí)器0,模式1。th0=
25、time0h;tl0=time0l;tr0=1;/啟動定時(shí)器。et0=1;/開定時(shí)器中斷。ea=1;/開總中斷vdinitialize();vwritecmd(0x84); /寫入顯示起始地址(第二行第一個(gè)位置)vshowchar("voltage:");vwritecmd(0xc9);vshowchar("(v)");while(1)if(b_datransform=1)b_datransform=0;vwritecmd(0xc4);vshowvoltage(uiadtransform();void time0() interrupt 1 /定時(shí)器0中
26、斷函數(shù)/if(uc_clock=0)uc_clock=5;b_datransform=1;elseuc_clock-;th0=time0h; /恢復(fù)定時(shí)器0。tl0=time0l; #include "smc1602.h" /驅(qū)動程序 void vwritecmd(unsigned char uccommand) /把1個(gè)命令寫入lcdvdelay();/先延時(shí)。lcde=1;/然后把改為寫入命令狀態(tài)。lcdrs=0;lcdrw=0;lcdport=uccommand;/再輸出命令。lcde=0;/最后執(zhí)行命令。 void vwritedata(unsigned char
27、ucdata)/把1個(gè)數(shù)據(jù)寫入lcdvdelay(); /先延時(shí)。lcde=1; /然后把改為寫入數(shù)據(jù)狀態(tài)。lcdrs=1;lcdrw=0;lcdport=ucdata; /再輸出數(shù)據(jù)。lcde=0; /最后顯示數(shù)據(jù)。void vshowonechar(unsigned char ucchar)switch(ucchar)case ' ': vwritedata(0x20);break;case '!': vwritedata(0x21);break;case '"': vwritedata(0x22);break;case '
28、#': vwritedata(0x23);break;case '$': vwritedata(0x24);break;case '%': vwritedata(0x25);break;case '&': vwritedata(0x26);break;case '>': vwritedata(0x27);break;case '(': vwritedata(0x28);break;case ')': vwritedata(0x29);break;case '*'
29、: vwritedata(0x20);break;case '+': vwritedata(0x2a);break;case '-': vwritedata(0x2d);break;case '/': vwritedata(0x2f);break;case '=': vwritedata(0x3d);break;case '<': vwritedata(0x3e);break;case '?': vwritedata(0x3f);break;case '.': vwriteda
30、ta(0x2e);break;case ':': vwritedata(0x3a);break;case '0': vwritedata(0x30);break;case '1': vwritedata(0x31);break;case '2': vwritedata(0x32);break;case '3': vwritedata(0x33);break;case '4': vwritedata(0x34);break;case '5': vwritedata(0x35);brea
31、k;case '6': vwritedata(0x36);break;case '7': vwritedata(0x37);break;case '8': vwritedata(0x38);break;case '9': vwritedata(0x39);break;case 'a': vwritedata(0x41);break;case 'b': vwritedata(0x42);break;case 'c': vwritedata(0x43);break;case 'd
32、': vwritedata(0x44);break;case 'e': vwritedata(0x45);break;case 'f': vwritedata(0x46);break;待添加的隱藏文字內(nèi)容3case 'g': vwritedata(0x47);break;case 'h': vwritedata(0x48);break;case 'i': vwritedata(0x49);break;case 'j': vwritedata(0x4a);break;case 'k
33、39;: vwritedata(0x4b);break;case 'l': vwritedata(0x4c);break;case 'm': vwritedata(0x4d);break;case 'n': vwritedata(0x4e);break;case 'o': vwritedata(0x4f);break;case 'p': vwritedata(0x50);break;case 'q': vwritedata(0x51);break;case 'r': vwriteda
34、ta(0x52);break;case 's': vwritedata(0x53);break;case 't': vwritedata(0x54);break;case 'u': vwritedata(0x55);break;case 'v': vwritedata(0x56);break;case 'w': vwritedata(0x57);break;case 'x': vwritedata(0x58);break;case 'y': vwritedata(0x59);brea
35、k;case 'z': vwritedata(0x5a);break;case 'a': vwritedata(0x61);break;case 'b': vwritedata(0x62);break;case 'c': vwritedata(0x63);break;case 'd': vwritedata(0x64);break;case 'e': vwritedata(0x65);break;case 'f': vwritedata(0x66);break;case 'g
36、': vwritedata(0x67);break;case 'h': vwritedata(0x68);break;case 'i': vwritedata(0x69);break;case 'j': vwritedata(0x6a);break;case 'k': vwritedata(0x6b);break;case 'l': vwritedata(0x6c);break;case 'm': vwritedata(0x6d);break;case 'n': vwrite
37、data(0x6e);break;case 'o': vwritedata(0x6f);break;case 'p': vwritedata(0x70);break;case 'q': vwritedata(0x71);break;case 'r': vwritedata(0x72);break;case 's': vwritedata(0x73);break;case 't': vwritedata(0x74);break;case 'u': vwritedata(0x75);break;case 'v': vwriteda
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新學(xué)期開學(xué)講話稿合集15篇
- 文明禮儀講話稿(15篇)
- 食品安全從小學(xué)起-家長必讀
- 職場新人心理適應(yīng)問題研究與對策
- 智能照明系統(tǒng)在學(xué)校圖書館的實(shí)踐與思考
- 面向未來的教育-如何通過培養(yǎng)學(xué)生自我管理能力來塑造未來的領(lǐng)導(dǎo)者
- 職場家庭暴力心理健康的警鐘
- 車聯(lián)網(wǎng)技術(shù)在交通安全中的應(yīng)用探討
- 經(jīng)濟(jì)角度分析學(xué)生飲食與健康問題關(guān)系
- 2025年克孜勒蘇州道路貨運(yùn)運(yùn)輸從業(yè)資格證模擬考試
- 2025民政局離婚協(xié)議書范本(民政局官方)4篇
- 2024年03月四川農(nóng)村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 小學(xué)一年級數(shù)學(xué)上冊口算練習(xí)題總匯
- 潤滑油知識-液壓油
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊第十章靜電場中的能量10-1電勢能和電勢練習(xí)含答案
- 《中國香文化》課件
- 蓋房四鄰簽字協(xié)議書范文
- 2024簡易租房合同下載打印
- 阿基米德課件
評論
0/150
提交評論