版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南京郵電大學(xué)2010/2011學(xué)年 第2學(xué)期 軟件設(shè)計(jì)實(shí)驗(yàn)報(bào)告題 目 基于單片的顯示溫度控制器設(shè)計(jì)專 業(yè) 電子信息工程 學(xué) 號(hào) 姓 名 指導(dǎo)老師 實(shí)驗(yàn)日期 2011 年 05 月 05 日題目:基于cpu的lcd顯示溫度控制器設(shè)計(jì)一 ,實(shí)驗(yàn)?zāi)康暮鸵?,proteus軟件的mcs51單片機(jī)仿真學(xué)習(xí)2,根據(jù)提供的參考工程,在proteus平臺(tái)自己重新設(shè)計(jì)實(shí)驗(yàn)電路所需要的電器原理圖,并在此基礎(chǔ)上編寫(xiě)相對(duì)應(yīng)的程序,實(shí)現(xiàn)其功能,學(xué)習(xí)proteus軟件的使用,其中包括原理圖器件的選取,原理圖的電氣連接,程序的編寫(xiě)編譯以及運(yùn)行,并能查出其錯(cuò)誤等。基本要求: 用熱敏電阻或溫度傳感器作溫度探頭,通過(guò)ad轉(zhuǎn)換器
2、變換,把溫度數(shù)據(jù)轉(zhuǎn)換成bcd碼在lcd上顯示。 顯示精度0。5 能記錄和回放溫度參數(shù),記錄間隔可任意設(shè)定(1s到1h,步長(zhǎng)1s) 回放數(shù)據(jù)速度可設(shè)定 畫(huà)出溫度變化曲線。發(fā)揮部分:1 顯示精度提高到0。12 顯示精度提高到0。013 與實(shí)際溫度計(jì)溫度比較,找出溫度顯示誤差曲線,在報(bào)告中描出,并分析誤差來(lái)源4 實(shí)現(xiàn)溫度自動(dòng)補(bǔ)賞二,實(shí)驗(yàn)儀器微型計(jì)算機(jī)三,實(shí)驗(yàn)原理溫度測(cè)量通??梢杂脙煞N方式來(lái)實(shí)現(xiàn),一種是用熱敏電阻之類的器件,由于感溫效應(yīng),熱敏電阻的阻值能夠隨溫度變化,當(dāng)熱敏電阻接入電路,測(cè)量過(guò)它的電流或其兩端的電壓就會(huì)隨溫度 變化發(fā)生響應(yīng)的變化,在將溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行a/d轉(zhuǎn)化后,發(fā)送
3、到單片機(jī)進(jìn)行處理,通過(guò)顯示電路,就可以將被測(cè)溫度顯示出來(lái)。這種設(shè)計(jì)需要用到a/d轉(zhuǎn)換電路,其測(cè)溫電路比較麻煩。第二種方法是用溫度傳感器芯片。溫度傳感器芯片能把溫度信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),直接發(fā)送給單片機(jī),轉(zhuǎn)換后通過(guò)顯示電路既可以顯示。四,基本原件及其原理單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是指在一塊芯片體上集成了中央處理器cpu、隨機(jī)存儲(chǔ)器ram、程序存儲(chǔ)器rom或eprom、定時(shí)器/計(jì)數(shù)器、中斷控制器以及串行和并行i/o接口等部件,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。目前,新型單片機(jī)內(nèi)還有a/d及d/a轉(zhuǎn)換器、高速輸入/輸出部件、dma通道、浮點(diǎn)運(yùn)算等特殊功能部件。由于它的結(jié)構(gòu)和指令功能都是按工業(yè)控制設(shè)計(jì)要求設(shè)計(jì)
4、的,特別適用于工業(yè)控制及其數(shù)據(jù)處理場(chǎng)合,因此,確切的稱謂是微控制器,單片機(jī)只是習(xí)慣稱呼。51單片機(jī)引腳圖如下:(1)單片機(jī)的特點(diǎn)1)有優(yōu)異的性能價(jià)值比。2)集成度高、體積小、有很高的可靠性。單片機(jī)把各個(gè)功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取措施,適合于惡劣環(huán)境下工作;也易于產(chǎn)品化。3)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有及其豐富的轉(zhuǎn)移指令、i/o口邏輯操作及位處理指令。一般來(lái)說(shuō),單片機(jī)的邏輯控制功能及運(yùn)行速度高于同意檔次的微機(jī)。4)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置都比較
5、典型、規(guī)范,而且非常容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。(2)單片機(jī)并行i/o接口的擴(kuò)展單片機(jī)與外部交換信息是通過(guò)i/o接口電路來(lái)實(shí)現(xiàn)的。at89c51單片機(jī)本身有4個(gè)8位的并行i/o口p0-p3,但實(shí)際使用時(shí)往往再增加些i/o口,以便與外部設(shè)備交換數(shù)據(jù)。at89c51單片機(jī)外部ram和擴(kuò)展i/o接口是統(tǒng)一編址的。用戶可以把外部64kb ram空間的一部分作為擴(kuò)展i/o接口地址空間,每一個(gè)i/o接口相當(dāng)于一個(gè)ram存儲(chǔ)單元,訪問(wèn)外部ram存儲(chǔ)單元就像訪問(wèn)外部i/o接口,即用“movx”指令對(duì)擴(kuò)展i/o接口進(jìn)行輸入輸出操作。查詢式鍵盤(pán)的接口電路查詢式鍵盤(pán)屬于獨(dú)立式鍵盤(pán),鍵盤(pán)的各個(gè)按鍵之間彼此是獨(dú)立的且是
6、最簡(jiǎn)單的鍵盤(pán)電路。每個(gè)鍵地接入一根數(shù)據(jù)輸入線。如圖所示。注意:由于每一個(gè)按鍵均需要一根i/o口線 ,當(dāng)鍵盤(pán)按鍵數(shù)量比較多時(shí),需要的i/o口線也較多,因此獨(dú)立式鍵盤(pán)只適合于按鍵較少的應(yīng)用場(chǎng)合。一般情況下,按鍵數(shù)等于占用i/o端口數(shù)。查詢式鍵盤(pán)的結(jié)構(gòu)圖如圖所示:p1.0p1.1 查詢式鍵盤(pán)的接口電路查詢式鍵盤(pán)可以工作在多種方式下,中斷方式、程序查詢方式、定時(shí)查詢發(fā)送和中斷查詢方式。在中斷模式下,按鍵的數(shù)量受到外部中斷源的限制。在有特殊需要的場(chǎng)合,還可以借用內(nèi)部的定時(shí)器中斷。所以在這種模式下,按鍵的數(shù)目小于外部中斷源和單片機(jī)定時(shí)器數(shù)量之和。程序查詢和定時(shí)查詢類似,都是通過(guò)讀i/o狀態(tài),當(dāng)有鍵被按下時(shí)
7、相應(yīng)的i/o口線變?yōu)榈碗娖?,而未被按下的鍵對(duì)應(yīng)的i/o口線保持為高電平,這樣通過(guò)讀i/o口狀態(tài)可判斷是否有鍵按下和哪一個(gè)鍵被按下。1602lcd的基本參數(shù)及引腳功能1602lcd分為帶背光和不帶背光兩種,其控制器大部分為hd44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別。lm016l結(jié)構(gòu)圖溫度傳感器及其原理溫度傳感器是一種將溫度變化轉(zhuǎn)換為電量變化裝置。將溫度變化轉(zhuǎn)換為熱電勢(shì)變化的稱熱電偶傳感器。將溫度變化轉(zhuǎn)換為電阻變化的稱為熱電阻傳感器;金屬熱電阻式傳感器簡(jiǎn)稱為熱電阻,半導(dǎo)體熱電阻式傳感器簡(jiǎn)稱為熱敏電阻。溫度傳感在工業(yè)生產(chǎn)、科學(xué)研究、民用生活等許多領(lǐng)域得到廣泛應(yīng)用。電阻式傳感器
8、廣泛被用于-200960范圍內(nèi)的溫度。是利用導(dǎo)體或半導(dǎo)體的電阻隨溫度變化而變化的性質(zhì)而工作的,用儀表測(cè)量出熱電阻的阻值變化,從而得到與電阻值對(duì)應(yīng)的溫度值。電阻式傳感器分為金屬熱電阻傳感器和半導(dǎo)體熱電阻傳感器兩大類。前者稱為熱電阻,后者稱為熱敏電阻。對(duì)于熱敏電阻,需要了解以下幾點(diǎn):(1)測(cè)溫原理及特性ntc熱敏電阻研制的較早,也較成熟。最常見(jiàn)的是由金屬氧化物組成。根據(jù)不同的用途,ntc又可以分為兩大類。第一類用于測(cè)量溫度。它的電阻值與溫度之間呈負(fù)的指數(shù)關(guān)系。第二類為負(fù)的突變型,當(dāng)其溫度上升到某設(shè)定值時(shí),其電阻值突然下降,多用于各種電子電路中抑制浪涌電流,起保護(hù)作用。典型的ptc熱敏電阻通常是在鈦
9、酸鋇陶瓷中加入施主雜質(zhì)以增大電阻溫度系數(shù)。(2)熱敏電阻的應(yīng)用熱敏電阻具有尺寸小、響應(yīng)速度快、阻值大、靈敏度高等特點(diǎn),因此它在許多領(lǐng)域被廣泛應(yīng)用。(3)熱敏電阻的溫度補(bǔ)償熱敏電阻可以在一定的溫度范圍內(nèi)對(duì)某些元件進(jìn)行溫度補(bǔ)償。熱敏電阻可以用于溫度控制:ds18b20溫度傳感器的作用是將溫度經(jīng)過(guò)熱敏電阻rt轉(zhuǎn)換為電壓信號(hào)。在本課題中溫度范圍的計(jì)算原理:首先把a(bǔ)/d轉(zhuǎn)換中電位器旋鈕順時(shí)針旋到底,即模擬信號(hào)的輸入不衰減,選取兩個(gè)溫度狀態(tài)t1、t2,分別測(cè)量出其模擬輸出電壓v1、v2;根據(jù)0809的輸入范圍在0到5伏,即可計(jì)算出溫度極限。0伏時(shí)對(duì)應(yīng)的溫度tl:t1-(v1-0)(t2-t1)/(v2-v
10、1)。5伏時(shí)對(duì)應(yīng)的溫度th: t1-(v1-5)(t2-t1)/(v2-v1)本實(shí)驗(yàn)中近似計(jì)算th為150攝氏度,tl為-50攝氏度。程序溫度的計(jì)算原理:首先用溫度范圍除以0到256(即每個(gè)十六進(jìn)制數(shù)的溫度增長(zhǎng)率),然后乘以模擬轉(zhuǎn)換的數(shù)字量,即得到升高的溫度,在和最低溫度相加,就可以得到實(shí)際的溫度值。其公式為:tl+ax(th-tl)/256tl:顯示的最低溫度th:顯示的最高溫度ax:模擬電壓所轉(zhuǎn)換的數(shù)字量五,仿真軟件的使用1.keil軟件的使用:首先正確安裝keil軟件打開(kāi)keilprojectnew uvision project為工程取名字,并選擇工程要保存的路徑,建議每個(gè)工程新建一個(gè)
11、文件夾,方便文件管理出來(lái)一個(gè)對(duì)話框,是選擇芯片的,你根據(jù)你的芯片公司和型號(hào)來(lái)選擇就行了,比如:最常用的at89c52,點(diǎn)atmel,找到at89c52,點(diǎn)ok后會(huì)出來(lái)一個(gè)對(duì)話框,問(wèn)你是否添加啟動(dòng)文件,點(diǎn)“是”這樣就建好了一個(gè)工程,點(diǎn)file菜單下new新建文件先保存文件,點(diǎn)保存按鈕后出來(lái)路徑框,取名字后綴是.c或者.h,點(diǎn)保存接下來(lái)在左邊project下把target1點(diǎn)開(kāi),在source group 1上右鍵,點(diǎn)擊add file to group source group 1在彈出的框中點(diǎn)剛剛保存的文件,然后點(diǎn)add,關(guān)閉對(duì)話框,左邊project框中可以看到文件已經(jīng)添加在開(kāi)始之前還是先來(lái)
12、配置一下keil環(huán)境,點(diǎn)擊工具欄品字圖標(biāo)左邊像魔棒一樣的按鈕接下來(lái)的配置比較復(fù)雜,我用圖來(lái)解釋,target項(xiàng)目下只改一個(gè)晶振的值,output下要點(diǎn)擊生產(chǎn)hex文件,debug下左邊是keil仿真調(diào)試配置,右邊是程序下載到芯片調(diào)試配置,看你是怎么用了。一切完工,可以編程調(diào)試了。2.proteus軟件的使用:新建文件,查找元件,并添加。畫(huà)好電路圖后,添加用keil生成的hex文件,即可運(yùn)行。六,實(shí)驗(yàn)數(shù)據(jù) 實(shí)驗(yàn)原理圖:四張圖分別代表:實(shí)驗(yàn)連接圖(無(wú)鍵盤(pán)),實(shí)驗(yàn)連接圖(有鍵盤(pán)),溫度記錄控制圖1, 溫度記錄控制圖2。1.實(shí)驗(yàn)連接圖(無(wú)鍵盤(pán))2.實(shí)驗(yàn)連接圖(有鍵盤(pán))3.溫度記錄控制圖1。4.溫度記錄
13、控制圖2。置存儲(chǔ)取首址;顯示緩沖區(qū)首址(對(duì)應(yīng)字形碼);置串行輸出口即rxd,置時(shí)鐘輸出口即txd;存入顯示數(shù)據(jù)。 表頭地址;查表指令;段碼地址指針,顯示段碼字節(jié)數(shù);輸出子程序;取段碼;段碼左移則輸出一位段碼然后發(fā)送脈沖一位。顯示程序流程圖lcd顯示器流程圖如圖所示:a=1yna #80ha0c0h調(diào)命令寫(xiě)入子程序調(diào)數(shù)據(jù)寫(xiě)入子程序返回 (顯示子程序)顯示地址p0顯示數(shù)據(jù) p0rs0rs 1清wr有效清wr有效調(diào)使能脈沖子程序調(diào)使能脈沖子程序返回返回(寫(xiě)數(shù)據(jù)子程序) (寫(xiě)命令子程序)a/d轉(zhuǎn)換子程序設(shè)計(jì) 顯示緩沖器存放0ah,0dh,0xh,0xh;串行靜態(tài)顯示“adxx”xx表示0f;a/d地址
14、清零,啟動(dòng)a/d轉(zhuǎn)換器,延時(shí)等待轉(zhuǎn)換結(jié)果然后讀入結(jié)果送入數(shù)碼管顯示。累加器內(nèi)容存入b中,a的內(nèi)容高四位與低四位交換,a的內(nèi)容高四位清零,a/d轉(zhuǎn)換結(jié)果高位送入dbuf3中,取出a/d轉(zhuǎn)換后的結(jié)果,a的內(nèi)容高四位清零則結(jié)果低位送入dbf4中;串行靜態(tài)顯示“adxx”。靜態(tài)顯示子程序;顯示表頭地址;取段碼到temp中去顯示段碼地址指針讀出段碼字節(jié)數(shù);移位次數(shù)取段碼;段碼左移;輸出一位段碼;發(fā)送一個(gè)一位脈沖。a/d轉(zhuǎn)換流程圖a/d轉(zhuǎn)換流程圖如圖所示:初始啟動(dòng)a/d轉(zhuǎn)換a/d轉(zhuǎn)換完成?數(shù)據(jù)輸出延時(shí)開(kāi)始結(jié)束查詢式鍵盤(pán)程序設(shè)計(jì)先初始化地址參數(shù),顯示緩沖區(qū)初始;輸入前,鎖存器置“1”;讀取鍵盤(pán)狀況;有鍵按下
15、,若無(wú)鍵按下返回;延時(shí)去抖動(dòng);確有鍵按下則從鍵表中取鍵值然后相比較,若相等則等鍵釋放,延時(shí)去抖動(dòng)得鍵碼;若不相等,到繼續(xù)訪問(wèn)鍵值表,鍵值不在鍵值中,即多鍵同時(shí)按下;然后鍵表值靜態(tài)顯示。查詢式鍵盤(pán)流程圖查詢式鍵盤(pán)流程圖如圖所示:顯示緩沖區(qū)初始lcd顯示有鍵輸入?讀取鍵值鍵值轉(zhuǎn)換為顯示數(shù)ny開(kāi)始溫度傳感器設(shè)計(jì)溫度傳感器的程序設(shè)計(jì)輸入a/d端口地址;顯示溫度,將正負(fù)值區(qū)分顯示;顯示“”號(hào)時(shí)求補(bǔ)碼;顯示“ ”時(shí)存入顯示內(nèi)容,讀入結(jié)果,計(jì)算溫度。其公式為:tl+ax(th-tl)/256(tl:顯示的最低溫度th:顯示的最高溫度ax:模擬電壓所轉(zhuǎn)換的數(shù)字量)溫度檢測(cè)的流程圖:溫度檢測(cè)流程圖如圖所示: a
16、/d轉(zhuǎn)換溫度計(jì)算判斷正負(fù)顯示加 “”號(hào)溫度控制系統(tǒng)的總流程圖如圖所示:初始化溫度參數(shù)當(dāng)前溫度和設(shè)定溫度送顯示緩沖顯示溫度采樣當(dāng)前溫度鍵盤(pán)值是?當(dāng)前溫度與設(shè)定溫度比較不變讀鍵盤(pán)向上鍵向下鍵設(shè)定溫度加1設(shè)定溫度減1開(kāi)始當(dāng)前溫度和設(shè)定溫度送顯示緩沖實(shí)驗(yàn)程序c語(yǔ)言代碼#include#include #define uchar unsigned char#define uint unsigned intuchar code tab2=temprature:;uchar code tab3= ;sbit dq = p37;/定義ds18b20數(shù)據(jù)端口char code tab44=1,4,7,10,2,
17、5,8,0,3,6,9,11,12,13,14,15;uchar a,miao,shi,fen,tt,key1n,key3n,key2n,nian,yue,r,nianb,speak,wendu,wendu1,wendu3,miao1,shu,shu1,wendu4;unsigned char code dotcode167=0,6,12,19,25,31,37,44,50,56,62,69,75,81,87,94;sbit rs=p31;sbit rw=p32;sbit en=p33;/定義1602端口#define yh 0x80 /第一行的初始位置#define er 0x80+0x40
18、 /第二行初始位置sfr dbport = 0x80;unsigned char tt,tt1;unsigned char t2,*pt;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-)/定義dq引腳為p3.7/*ds18b20延遲子函數(shù)(晶振12mhz )*/void delay_18b20(unsigned int i)while(i-);/*ds18b20初始化函數(shù)*/void init_ds18b20(void)unsigned char x=0;dq = 1; /dq復(fù)位delay_18b20(8); /稍做延時(shí)dq
19、= 0; /單片機(jī)將dq拉低delay_18b20(80); /精確延時(shí) 大于 480usdq = 1; /拉高總線delay_18b20(14);x=dq; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗delay_18b20(20);/*ds18b20讀一個(gè)字節(jié)*/unsigned char readonechar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-)dq = 0; / 給脈沖信號(hào)dat=1;dq = 1; / 給脈沖信號(hào)if(dq)dat|=0x80;delay_18b20(4);return(
20、dat);/*ds18b20寫(xiě)一個(gè)字節(jié)*/void writeonechar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-)dq = 0;dq = dat&0x01;delay_18b20(5);dq = 1;dat=1;/*讀取ds18b20當(dāng)前溫度*/unsigned char *readtemperature()unsigned char tt2;init_ds18b20();writeonechar(0xcc); / 跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(0x4e); / /寫(xiě)入寫(xiě)暫存器命令,修改th和tl和分辯率配置
21、寄存器/先寫(xiě)th,再寫(xiě)tl,最后寫(xiě)配置寄存器writeonechar(100);/寫(xiě)入想設(shè)定的溫度報(bào)警上限writeonechar(4);/寫(xiě)入想設(shè)定的溫度報(bào)警下限writeonechar(0x7f);/寫(xiě)配置寄存器,格式為0 r1 r0 1,1 1 1 1/r1r0=00分辨率婁9位,r1r0=11分辨率為12位delay_18b20(80); / this message is wery importantinit_ds18b20();writeonechar(0xcc); / 跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay_18b20(80); /
22、 this message is wery importantinit_ds18b20();writeonechar(0xcc); /跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(0xbe); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度delay_18b20(80);tt0=readonechar(); /讀取溫度值低位tt1=readonechar();return(tt);void covert1(void)/將溫度轉(zhuǎn)換為lcd顯示的數(shù)據(jù)unsigned char th=110,tl=-20;unsigned char x=0x00,y=0x00;pt=readtemperat
23、ure();t0=*pt;pt+;t1=*pt;if(t10x07) /判斷正負(fù)溫度wendu3=1; /0x2d為-的ascii碼t1=t1; /*下面幾句把負(fù)數(shù)的補(bǔ)碼*/t0=t0; /* 換算成絕對(duì)值*/x=t0+1; t0=x;if(x255) t1+;else wendu3=0; /0xfe為變+的ascii碼t1=4;/右移4位x=x&0x0f;/和前面兩句就是取出t0的高四位x=t1|x; /將高低字節(jié)的有效值的整數(shù)部分拼成一個(gè)字節(jié)wendu=x;t0=t0&0x0f;/取有效的兩位小數(shù)x=t0;wendu1=dotcodex; /分離出百分位unsigned char lcd_
24、wait(void)rs=0;rw=1;delay(1);en=1;delay(1);/while(dbport&0x80);/在用proteus仿真時(shí),注意用屏蔽此語(yǔ)句,在調(diào)用gotoxy()時(shí),會(huì)進(jìn)入死循環(huán),/可能在寫(xiě)該控制字時(shí),該模塊沒(méi)有返回寫(xiě)入完備命令,即dbport&0x80=0x80/實(shí)際硬件時(shí)打開(kāi)此語(yǔ)句en=0;return dbport;void lcd_write(bit style, unsigned char input)en=0;rs=style;rw=0;_nop_();dbport=input;_nop_();/注意順序en=1;_nop_(); /注意順序en=0
25、;_nop_();lcd_wait();void gotoxy(unsigned char x, unsigned char y)if(y=0)lcd_write(0,0x80|x);if(y=1)lcd_write(0,0x80+0x40+x);/sbit s4=p03;uchar num,count,flag,flag1,flag2,flag3,s1num,j;void keyscan();write_1602com(uchar com)/液晶寫(xiě)入指令函數(shù)en=0;rs=0; /置為寫(xiě)入命令rw=0;_nop_();p0=com; /送入數(shù)據(jù)_nop_();en=1;/拉高使能端_nop_
26、();en=0;/完成高脈沖_nop_();lcd_wait();write_1602dat(uchar dat)en=0;rs=1; /置為寫(xiě)入數(shù)據(jù)rw=0;_nop_();p0=dat;/送入數(shù)據(jù)_nop_();en=1;_nop_();en=0;_nop_();lcd_wait();void write_sfm(uchar add,uchar dat)/寫(xiě)時(shí)分秒uchar gw,sw;gw=dat%10;sw=dat/10;write_1602com(add+er);write_1602dat(0x30+sw);write_1602dat(0x30+gw);void write_nyr(
27、uchar add,uchar dat)/寫(xiě)時(shí)分秒uchar gw,sw;gw=dat%10;sw=dat/10;write_1602com(add+yh);write_1602dat(0x30+sw);write_1602dat(0x30+gw);void write(uchar add) /寫(xiě)時(shí)分秒write_1602com(add+yh);write_1602dat(58);void init()write_1602com(0x38); /設(shè)置液晶工作模式write_1602com(0x0c); /開(kāi)顯示不顯示光標(biāo)write_1602com(0x06); /整屏不移動(dòng),指針加一write
28、_1602com(0x01);write_1602com(yh); /字符寫(xiě)入的位置for(a=0;a16;a+)write_1602dat(tab3a);/delay(3);write_1602com(er+2);for(a=0;a16;a+)write_1602dat(tab2a);/delay(3);keys()unsigned char hang,lie,key;if(p3!=0x0f)delay(5);if(p3!=0x0f)switch(p3&0x0f)case 0x0e:lie=0;break;case 0x0d:lie=1;break;case 0x0b:lie=2;break
29、;case 7:lie=3;break;p3=0xf0;p3=0xf0;switch(p3&0xf0)case 0xe0:hang=0;break;case 0xd0:hang=1;break;case 0xb0:hang=2;break;case 0x70:hang=3;break;p3=0x0f;while(p3!=0x0f)p1_1=1;p1_1=0;key=tabhanglie;elsekey=20;speak=0;return(key);char kbscan() /鍵盤(pán)掃描int key;key=keys();if(key=10)key1n+;if(key1n=6)key1n=0;
30、if(key=12)key3n+;if(key3n=2)key3n=0;if(key=11)key2n+;if(key2n=6)key2n=0;while(key1n!=0)key=keys();if(key=10)key1n+;if(key1n=7)key1n=0;switch(key1n)case 1: tr1=0;/關(guān)閉定時(shí)器/tr1=0;write_1602com(er+0x02);/寫(xiě)入光標(biāo)位置write_1602com(0x0f); /設(shè)置光標(biāo)為閃爍break;case 2: write_1602com(er+3);/fen/write_1602com(0x0f);break;ca
31、se 3: write_1602com(er+5);/shi/write_1602com(0x0f);break;case 4: write_1602com(er+6);/fen/write_1602com(0x0f)break;case 5: write_1602com(er+8);/shi/write_1602com(0x0f);break;case 6: write_1602com(er+9);/fen/write_1602com(0x0f);break;case 0:write_1602com(0x0c);/設(shè)置光標(biāo)不閃爍tr1=1;/打開(kāi)定時(shí)器break;if(key10)write
32、_1602dat(0x30+key);switch(key1n)case 1: shi=shi%10+key*10;break;case 2: shi=shi/10*10+key;break;case 3: fen=fen%10+key*10;break;case 4: fen=fen/10*10+key;break;case 5: miao=miao%10+key*10;break;case 6: miao=miao/10*10+key;break;case 0:write_1602com(0x0c);/設(shè)置光標(biāo)不閃爍tr1=1; /打開(kāi)定時(shí)器break;while(key2n!=0)key=keys();speak=0;if(key=11)key2n+;if(key2n=4)key2n=0;switch(key2n)case 1: tr1=0; /關(guān)閉定時(shí)器/tr1=0;write_1602com(er+13);/寫(xiě)入光標(biāo)位置write_1602com(0x0f);/設(shè)置光標(biāo)為閃爍break;case 2: write_1602com(er+14);/fen/write_1602com(0x0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色建筑鋼筋綁扎與回收利用合同4篇
- 江蘇省無(wú)錫市錫山區(qū)2019-2020學(xué)年八年級(jí)下學(xué)期期中物理試題【含答案、解析】
- 2025版房屋抵押貸款風(fēng)險(xiǎn)評(píng)估與咨詢服務(wù)合同4篇
- 股權(quán)代持合同簽訂與解除的法律要點(diǎn)2025年合同2篇
- 江西省贛州市瑞金市2024-2025學(xué)年八年級(jí)上學(xué)期期末考試道德與法治試題(含答案)
- 廣東省茂名市電白區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末地理試卷(含答案)
- 固體飲料行業(yè)的融資模式與投資機(jī)會(huì)分析報(bào)告考核試卷
- 2025版企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)委托合同范本指南3篇
- 東南歐eMAG知識(shí)百科 2025
- 2001年江蘇南通中考滿分作文《我發(fā)現(xiàn)女孩也可做“太陽(yáng)”》
- 《健康體檢知識(shí)》課件
- 蘇少版七年級(jí)美術(shù)下冊(cè) 全冊(cè)
- 名表買(mǎi)賣合同協(xié)議書(shū)
- JTG-T-F20-2015公路路面基層施工技術(shù)細(xì)則
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準(zhǔn)媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責(zé)承諾書(shū)范本
- 練字本方格模板
評(píng)論
0/150
提交評(píng)論