freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于lcd1602電子時(shí)鐘課程設(shè)計(jì)報(bào)告-文庫(kù)吧資料

2025-08-28 15:25本頁(yè)面
  

【正文】 鬧鐘小時(shí)部分顯示 { unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x08)。 i=year/10。 delay1ms(1)。 Write_Date(digit[i])。 j=month%10。 } void display_Month(unsigned char month) //在液晶上顯示月 { unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x0E)。 i=day/10。 delay1ms(1)。 Write_Date(digit[i])。 j=hour%10。 } void display_Hour(unsigned char hour) //在液晶上顯示時(shí) { unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x4B)。 i=minute/10。 delay1ms(1)。 Write_Date(digit[i])。 j=second%10。 } void display_Second(unsigned char second) //在液晶上顯示秒 { unsigned char i,j。039。)。 Write_Date(39。)。 Write_Date(39。)。 Write_Date(39。)。 Write_Date(39。E39。)。 Write_Date(39。I39。)。 Write_Date(39。)。 Write_Date(39。)。 Write_Date(39。 Write_Address(0x0A)。)。 Write_Date(39。E39。)。 Write_Date(39。A39。)。 Write_Date(39。 } void displaymainpart(void)//顯示液晶主要部分 ( 不變化部分 ) { Write_Address(0x01)。 delay1ms(1)。 delay1ms(1)。 delay1ms(1)。 21 delay1ms(1)。 delay1ms(1)。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 RW=0。 delay1ms(1)。 E=0。 _nop_()。 E=1。 _nop_()。 P0=mand。 _nop_()。 E=0。 RS=0。 return result。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 RW=1。 /*液晶忙檢測(cè) */ bit BusyTest(void) { bit result。 sbit E=P2^7。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護(hù)指令 } } /***************液晶顯示模塊 *****************/ sbit RS=P2^5。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((0/10)4|(0%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((0/10)4|(0%10)))。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令 WriteSet1302(0x80,((0/10)4|(0%10)))。 if(flagamp。 19 } void IntDS1302(void) //DS1302初始化 { unsigned char flag。 REST=0。 date=Read1302()。 Write1302(cmd)。 SCLK=0。 } unsigned char ReadSet1302(unsigned char cmd)//根據(jù)命令讀取 1302相應(yīng)的值 { unsigned char date。 delaynus(2)。 delaynus(2)。 if(DATE==1) date|=0x80。i8。 delaynus(2)。 REST=0。 Write1302(date)。 Write1302(cmd)。 SCLK=0。 date=1。 SCLK=0。 SCLK=1。i++) { DATE=dateamp。 for(i=0。 SCLK=0。 } dely500()。j50。y++) { beep=~beep。h++) { for(y=0。 for(h=0。i) { _nop_()。 for(i=i++)。 for(i=0。k)。 for(k=29。j1。 //位定義 , 定義 fmp void delay1ms(int i)//1毫秒延時(shí) { 17 int j,k。 //減小 sbit CANL=P1^7。 //DS1302設(shè)置模式選擇位 sbit ADD=P1^5。 //DS1302數(shù)據(jù)輸入 sbit REST=P1^2。 sbit SCLK=P1^0。 unsigned char code digit[]={0123456789}。//歡迎界面 unsigned char code displaywish[]={ Happy Every Day ^_^}。 15 b、正常顯示時(shí) 按下 K2 顯示當(dāng)前溫度并延時(shí) 5秒 ;報(bào)警時(shí)按 K4 退出。在這次設(shè)計(jì)中也使我們的同學(xué)關(guān)系更進(jìn)一步了 ,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽(tīng)聽(tīng)不同的看法對(duì)我們更好的理解知識(shí),所以在這里非常感謝幫助我 們 的同學(xué)。 讓我們 認(rèn)識(shí)到 腳踏實(shí)地,認(rèn)真嚴(yán)謹(jǐn)是學(xué)習(xí)的態(tài)度,不怕困難、堅(jiān)持不懈、吃苦耐勞的精神是我 們 在這次設(shè)計(jì)中最大的收益。 課程設(shè)計(jì)的完成,為我 們 的大二下學(xué)期學(xué)習(xí)生活畫下了最后一筆。 ( 5)在報(bào)警時(shí)無(wú)聲音。 ( 4)進(jìn)入調(diào)節(jié)時(shí)間狀態(tài)時(shí)字符閃爍以至于看不清楚調(diào)節(jié)的大小。 ( 3)秒鐘 調(diào)節(jié)時(shí)會(huì)自動(dòng)轉(zhuǎn)零。 ( 2) 溫度顯示錯(cuò)亂,并且在顯示時(shí)高位自動(dòng)補(bǔ)零。 解決方案 。 面 由于對(duì) C 語(yǔ)言程序的認(rèn)知不深入,在修改程序時(shí),出現(xiàn)了 以下幾點(diǎn)問(wèn)題 。雖然過(guò)程出現(xiàn)很多困難,但結(jié)果還是實(shí)現(xiàn)了 電子時(shí)鐘 的功能 ,不過(guò)在顯示 溫度負(fù)數(shù)時(shí)有三個(gè)數(shù)值顯示錯(cuò)誤,分別是 16℃ , 32℃ , 48℃ ;另外設(shè)置模塊的 邏輯 沒(méi)有做到簡(jiǎn)單化,在設(shè)置模塊時(shí)只能退出本級(jí)的設(shè)置,而不能直接退出到當(dāng)前實(shí)時(shí)時(shí)間顯 示狀態(tài)。 軟件的編寫上我們出現(xiàn)了較大的困難, 電子時(shí)鐘的 程序有些復(fù)雜,一開(kāi) 始對(duì)于我們來(lái)說(shuō)毫無(wú)頭緒。對(duì)于 電子時(shí)鐘的 制作,我們基于小系板來(lái)實(shí)現(xiàn),外接 顯示部分的1602LCD 液晶屏、溫度傳感部分 DS18B提供實(shí)時(shí)時(shí)間部分 DS130蜂鳴器、電源接口部分等 。 硬件的制作要涉及到 protel 軟件的運(yùn)用,在畫原理圖的時(shí)候如果連錯(cuò)了就直接導(dǎo)致硬件的出錯(cuò),所以畫圖的時(shí)候要特別注意。例外還加了歡迎界面、鬧 鐘功能、最高溫度報(bào)警功能。上電后,撥動(dòng)電源開(kāi)關(guān)就進(jìn)入歡迎界面 , 后進(jìn)入當(dāng)前實(shí)時(shí)時(shí)間狀態(tài),按下按鍵 1 進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)按下按鍵 1為設(shè)置時(shí)間狀態(tài) , 按下按鍵 2為設(shè)置最大溫度報(bào)警狀態(tài) , 按按鍵 3為設(shè)置鬧鐘狀態(tài) , 按下按鍵 4為退出調(diào)節(jié)狀態(tài) ; 在調(diào)節(jié)狀態(tài)時(shí)按鍵 2為對(duì)應(yīng)增加鍵,按鍵 3為對(duì)應(yīng)減鍵, K4 為退出按鍵; 按下按鍵 2 后 用手捏住 DS18B20 芯片 ,在液晶屏上顯示的溫度有明顯的變化,所以判斷芯片是良好的。 先根據(jù)仿真檢測(cè)當(dāng)中的元件是否符合電路的設(shè)計(jì), 在 KeilC51 寫入程序并且修改 至編譯正確, 在 將寫好的程序入入到 Protues 軟件 單片機(jī)芯片上 ,進(jìn)行仿真 。硬件部分現(xiàn)在 Protel99SE上設(shè)計(jì)出 硬件電路圖,畫出 PCB 圖 , 然后再制造出實(shí)物。 五、 系統(tǒng)調(diào)試過(guò)程 系統(tǒng)調(diào)試共分為兩大部分:一個(gè)是軟件 調(diào)試 ,另一個(gè)是硬件 調(diào)試 。LCD1602 主要功能是將所要顯示的顯示出來(lái); DS18B20 主要功能是控制溫度的顯示效果。 設(shè)置 步驟 流程圖 如 圖 42所示 : 顯示歡迎界 面 按 K2? 顯示時(shí)間主要部分 清屏顯示實(shí)時(shí)時(shí)間 設(shè) 置 模 塊 清屏顯示當(dāng)前溫度 清屏顯示時(shí)間主要部分 清屏顯示‘ TIME UP’ 清屏顯示時(shí)間主要部分 實(shí)時(shí) =鬧鐘? 鬧鐘開(kāi)? 報(bào) 警 按 K4? 是 是 是 是 否 否 否 A A 否 初始化 開(kāi) 始 10 圖 42 設(shè)置步驟流程圖 1602 液晶屏 1602 液晶屏是此設(shè)計(jì)的 主要 輸出 部分 ,有 2行顯示,每行 16 個(gè)字符,根 據(jù)寫入的位置而顯示,當(dāng)顯示歡迎界面時(shí)是流動(dòng)的,整個(gè)屏幕向右移動(dòng)。 主函數(shù)程序框圖如 圖 41所示 : 圖 41 主函數(shù)程序框圖 設(shè)置模塊 設(shè)置模塊分時(shí)間設(shè)置、 鬧鐘設(shè)置 、 最高溫度報(bào)警設(shè)置。 本系統(tǒng)采用具有編寫靈活、移植方便、便于模塊化設(shè)計(jì) 的 C 語(yǔ)言 編寫 ,并通過(guò) Proteus 軟件進(jìn)行仿真,完成各種實(shí)質(zhì)性功能的設(shè)計(jì)。 獨(dú)立按鍵 與單片機(jī)接口 電路如 圖 35所示 : 圖 35 獨(dú)立按鍵與單片機(jī)接口 電源接口部分 采用 USB 接口從電腦接到電源接口中,撥動(dòng)開(kāi)關(guān)可控制電路的接通 和關(guān)閉 , 并 用 一個(gè)發(fā)光二極管 作電源 指示。 報(bào) 警模塊采用單片機(jī)輸出 的 頻率從而使蜂鳴器發(fā)出聲音 。在使用中 DS18B20 沒(méi)有用到 任何外圍元件 , 可工作在 - 15℃ ~ +100℃ 內(nèi) 。因其 功耗很小, 當(dāng) 1 腳的主電源 超過(guò) 8腳接的備用電源加 時(shí),由主電源對(duì)芯片供電;否則,有備用電源對(duì)芯片供電,所以 即使電源掉電后通過(guò) 3V的電池仍能維持 芯片 精確走時(shí)。當(dāng)外接晶振電路振蕩時(shí), DS1302計(jì)時(shí)正確;當(dāng)外接晶振電路停振時(shí), DS1302 計(jì)時(shí)停止。另外 1602有 2行顯示,每行顯示的字符數(shù)為 16個(gè) , 可以用于顯示字母、數(shù)字、符號(hào)等,并具有簡(jiǎn)單且功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符顯示、移動(dòng)、閃爍等功能。 端口分配表 如 31 所示 : 表 31 端口分配表 顯示模塊( 1602液晶) S T C 8 9 C 5 2 R C 報(bào)警模 塊(蜂鳴) 時(shí)間計(jì)算模塊 (DS1302) 實(shí)時(shí)溫度采集模塊 ( DS18B20) 設(shè)置模塊 (獨(dú)立按鍵) 圖 21 總體方案組成框圖 6 引腳序號(hào) 引腳名稱 作用及功能 1 DS1302時(shí)鐘輸入 2 時(shí)鐘串行數(shù)據(jù)輸入、輸出端 3 時(shí)鐘芯片復(fù)位端 5~8 ~ 按鍵設(shè)置 9 RST 芯片復(fù)位端口 13 實(shí)現(xiàn) 18B20溫度的輸入 16 接蜂鳴器,實(shí)現(xiàn)鬧鐘功能 1 19 XTAL XTAL2 外部晶振端口 26 實(shí)現(xiàn) 1602數(shù)據(jù)和指令選擇控制端 27 1602讀寫控制端 28 1602數(shù)據(jù)讀寫操作控制位 31 ALE、 EA 地址鎖存端口,燒寫程序的端口 32~39 P0 輸出數(shù)據(jù),控制 1602液晶屏的顯示 LCD顯示模塊設(shè)計(jì) 1602 液晶功耗較小可直接與單片機(jī)接口相接,電源直接與電源電路相接 為 +5V,對(duì)比度可調(diào)。 電路設(shè)計(jì)最終方案決定 綜上各方案所述 ,本系統(tǒng)以 STC89C52RC 單片機(jī)為控制核心 ,通過(guò)與 DS1302 和 DS18B20通信獲取實(shí)時(shí)時(shí)間和實(shí)時(shí)環(huán)境溫度,并將得到的數(shù)據(jù)通過(guò) 1602 液晶顯示出來(lái),同時(shí)通過(guò)對(duì) 應(yīng)的按鍵調(diào)整相應(yīng)的值 ,并且通過(guò)蜂鳴器實(shí)現(xiàn)報(bào)警功能。在使用中 可以 不 接 任何外圍元件, 或者在單總線上接一個(gè) 的上拉電阻 , 支持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫,供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源 , 因此非常適合本系統(tǒng)使用。 通過(guò)一定的電路可以將周圍環(huán)境的溫度變化轉(zhuǎn)化成電壓的變化,通過(guò) AD 轉(zhuǎn)化器件將信號(hào)傳輸給單片機(jī)進(jìn)行分析, 所以熱敏電阻需要的外部器件較多。 因 STC89C52RC 芯片
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1