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

正文內容

基于lcd1602電子時鐘課程設計報告(完整版)

2024-10-14 15:25上一頁面

下一頁面
  

【正文】 e,minute。 Write_Address(0x49)。 if(RED==0) { hour。 //讀取此 時的數(shù)值 hour=(((timevalueamp。 k=x%10。 Write_(0x0e)。 delay1ms(1)。 i++。0xf0)4)*10+(valueamp。 display_Day(day)。 hours=(((valueamp。0x0f))。 Write_Address(0x47)。 i=x/10。 } void display_Year(unsigned char year) //在液晶上顯示年 { 23 unsigned char i,j。 delay1ms(1)。 Write_Date(digit[j])。 Write_Date(digit[i])。 Write_Address(0x4E)。239。39。 Write_Date(39。T39。39。)。 Write_Date(39。 Write_(0x0c)。 E=0。 P0=date。 } /*寫地址 */ void Write_Address(unsigned char address) { Write_(address|0x80)。 _nop_()。 } /*寫指令 */ void Write_(unsigned char mand) { while(BusyTest()!=0)。 _nop_()。 sbit RW=P2^6。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((0/10)4|(0%10)))。 SCLK=1。 } return date。 for(i=0。 REST=1。0x01。j++)。 } } void baojing() //報警 { unsigned int j,h,y。 } void delaynus(unsigned char n) //延時若干微秒 { unsigned char i。 sbit beep=P3^6。 //數(shù)字代碼 unsigned char mode,TH,TL,TN,TD,length,tempswitch,Maxtemp=40,amode,alarmmode,minutes,hours, minutea,seconds,houra=12。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學習和工作有很大的幫助。 解決方案: 把自動轉零部分的程序改為秒鐘調節(jié)功能。 七、 遇到的問題及解決方法和總結 畫的 PCB 板焊盤不夠大,又沒有相應大小的磚針,而且在融板過程中出現(xiàn)了差錯,最 13 后導致 PCB 板不完美 . 解決方案: 最終 決定自己用萬能板焊接。 下面從軟件和硬件兩個方面具體說明。其中軟件仿真通過Protues 實現(xiàn) 。 主函數(shù) 主函數(shù)是程序功能總結顯示的函數(shù),其主要顯示的是時間主要部分和當前實時時間,當按下 按鍵 2 時 1602 顯示當前溫度狀態(tài),并延時 5s,后返回當前時間顯示狀態(tài); 當鬧鐘功能打開,實時時間又和鬧鐘時間相等就會 發(fā)出嘀嘀的響聲并且 在液晶屏上 有相應的 提 9 示,此時按 按鍵 4 退出; 當進入設 置 狀態(tài) 完成后 退出就 回到 當前 時間 顯示 狀態(tài)。 DS1302 與單片機接口電路 如圖 32所示 : 圖 32 DS1302與單片機接口 實時環(huán)境溫度檢測模塊 DS18B20 通過單總線實現(xiàn)與單片機的通信, 系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成。 因此本設計 的 總體方案組成框圖如 圖 21所示: 三、 系統(tǒng)硬件設計 主控模塊 本 次課程設計 主要用到 STC89C52RC 單片機 , 硬件原理 圖(見附錄圖一) 。內部帶有 31個 字節(jié) RAM, 用于存放臨時性數(shù)據(jù),同時具有可編程涓細電流充電能力。 采用數(shù)碼管顯示 ,數(shù)碼管亮度高、體積小、重量輕,但其顯示信息簡單、有限, 操作比較液晶顯示來說略顯繁瑣 。 ( 3) 時間是 24小時制 ;年限 2020 年 ~2099 年。因為它有很好的開放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對單片機的掌握能力更加強調了對單片機擴展的應用。而且在操作的設計上要力求簡潔,功能上盡量齊全,顯示界面也要出色。 ( 4) 測量溫度范圍為 0 ℃ ~+ 60 ℃ ,誤差 為 177。 方案( 2): 1602 液晶 屏顯示 1602 液晶也叫 1602 字符型液晶 它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊 采用液晶顯示。 因 STC89C52RC 芯片 時間計算邏輯較困難,而 DS1302 可根據(jù)月份和閏年的情況自動調整月份的結束日期且具有編程涓細電流充電能力, 所以 采用方案 (2)實現(xiàn)實時計時功能。 端口分配表 如 31 所示 : 表 31 端口分配表 顯示模塊( 1602液晶) S T C 8 9 C 5 2 R C 報警模 塊(蜂鳴) 時間計算模塊 (DS1302) 實時溫度采集模塊 ( DS18B20) 設置模塊 (獨立按鍵) 圖 21 總體方案組成框圖 6 引腳序號 引腳名稱 作用及功能 1 DS1302時鐘輸入 2 時鐘串行數(shù)據(jù)輸入、輸出端 3 時鐘芯片復位端 5~8 ~ 按鍵設置 9 RST 芯片復位端口 13 實現(xiàn) 18B20溫度的輸入 16 接蜂鳴器,實現(xiàn)鬧鐘功能 1 19 XTAL XTAL2 外部晶振端口 26 實現(xiàn) 1602數(shù)據(jù)和指令選擇控制端 27 1602讀寫控制端 28 1602數(shù)據(jù)讀寫操作控制位 31 ALE、 EA 地址鎖存端口,燒寫程序的端口 32~39 P0 輸出數(shù)據(jù),控制 1602液晶屏的顯示 LCD顯示模塊設計 1602 液晶功耗較小可直接與單片機接口相接,電源直接與電源電路相接 為 +5V,對比度可調。在使用中 DS18B20 沒有用到 任何外圍元件 , 可工作在 - 15℃ ~ +100℃ 內 。 主函數(shù)程序框圖如 圖 41所示 : 圖 41 主函數(shù)程序框圖 設置模塊 設置模塊分時間設置、 鬧鐘設置 、 最高溫度報警設置。硬件部分現(xiàn)在 Protel99SE上設計出 硬件電路圖,畫出 PCB 圖 , 然后再制造出實物。 硬件的制作要涉及到 protel 軟件的運用,在畫原理圖的時候如果連錯了就直接導致硬件的出錯,所以畫圖的時候要特別注意。 面 由于對 C 語言程序的認知不深入,在修改程序時,出現(xiàn)了 以下幾點問題 。 ( 4)進入調節(jié)時間狀態(tài)時字符閃爍以至于看不清楚調節(jié)的大小。在這次設計中也使我們的同學關系更進一步了 ,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我 們 的同學。 sbit SCLK=P1^0。 //位定義 , 定義 fmp void delay1ms(int i)//1毫秒延時 { 17 int j,k。 for(i=0。 for(h=0。 } dely500()。 SCLK=1。 Write1302(cmd)。i8。 } unsigned char ReadSet1302(unsigned char cmd)//根據(jù)命令讀取 1302相應的值 { unsigned char date。 REST=0。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((0/10)4|(0%10)))。 sbit E=P2^7。 _nop_()。 RS=0。 _nop_()。 delay1ms(1)。 _nop_()。 delay1ms(1)。 delay1ms(1)。A39。 Write_Date(39。)。)。E39。)。)。 Write_Date(digit[i])。 Write_Date(digit[j])。 delay1ms(1)。 } void display_Month(unsigned char month) //在液晶上顯示月 { unsigned char i,j。 i=year/10。 j=x%10。 Write_Date(digit[i])。 display_Second(seconds)。0x70)4)*10+(valueamp。 value=ReadSet1302(0x89)。0x0f))。 delay1ms(1)。 } j=40。 delay1ms(5)。 Write_Date(digit[i])。0x70)4)*10+(timevalueamp。 delay1ms(300)。 delay1ms(5)。 delay1ms(500)。 if(minute=60) timevalue=0。 WriteSet1302(0x82,timevalue)。 Write_(0x0c)。0x70)4)*10+(timevalueamp。 while(RED==0)。 delay1ms(5)。 datevalue=ReadSet1302(0x8d)。 if(RED==0) { year。 Write_Address(0x09)。 WriteSet1302(0x8e,0x00)。 while(ADD==0)。 delay1ms(1)。 } void dayset(void) //調日 { unsigned char datevalue,day。 if(ADD==0) { day++。 } } datevalue=((day/10)4|(day%10))。 break。 if(value23) value=0。 gbdisplay(0x45)。 if(RED==0) { minutea。 if(SET==0) { delay1ms(10)。delay1ms(500)。monthset()。 unsigned char code displayerror1[]={PLEASE CHECK }。 for(time=0。 for(time=0。 } /**************************讀 DS18B20**********************/ unsigned char ReadDS18B20(void) { unsigned char i。 DQ=1。time10。 DQ=0。time1。 WriteDS18B20(0X44)。\039。\039。 while(displayexplain[i]!=39。\039。) { Write_Date(displaypart2[i])。 } /*********************顯示溫度整數(shù)部分 *************************/ void Display_Integer(unsigned char x) { unsigned char i,j,k。 j=x%100/10。 delay1ms(5)。 i++。) { Write_Date(displayexplain[i])。 i++。 i++。 IntDS18B20()。 date=1。0x01。 } return dat。time2。 34 for(i=0。time++)。time++)。 unsigned char code displaypart2[]={Cent}。} case(6):{gbdisplay(0x0f)。secondset()。 33 delay1ms(20)。 while(RED==0) 。 break。 } } if(RED==0) { del
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1