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

正文內(nèi)容

基于lcd1602電子時鐘課程設(shè)計報告-文庫吧資料

2025-06-24 17:06本頁面
  

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