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

正文內(nèi)容

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

  

【正文】 ........................................ 11 硬件調(diào)試 ............................................................. 12 六、 結(jié)論 ........................................................... 12 七、 遇到的問(wèn)題及解決方法和總 結(jié) ....................................... 12 硬件方面 ............................................................. 12 軟件方面 ............................................................. 13 總結(jié) ................................................................. 13 2 八、 參考文獻(xiàn) ........................................................ 13 九、 附 錄 .......................................................... 14 3 一、 課程設(shè)計(jì)概述 課程設(shè)計(jì)背景 隨著微電子技術(shù)的高速發(fā)展,單片機(jī)在國(guó)民經(jīng)濟(jì)的個(gè)人領(lǐng)域得到了廣泛的運(yùn)用。 ( 2) 通過(guò) DS18B20 能夠?qū)崟r(shí)、準(zhǔn)確的檢測(cè)當(dāng)前環(huán)境溫度。 二、 方案的選擇 及確定 單片機(jī)芯片的選擇 方案( 1) : 采用 AT89S51芯片 作為硬件核心 該芯片 采用 Flash ROM,內(nèi)部具有 4KB ROM 存儲(chǔ)空間 ,而且與 MCS51 系列單片機(jī)完全兼容 ,但是 需要 通過(guò) 下載板 來(lái)下載,比較不方便。 因 本設(shè)計(jì)顯示的字符較多, 1602LCD 可以顯示 32 個(gè)字符,而 8 段 數(shù)碼管 顯示的字符較少,且 操作 比 液晶顯示略顯繁瑣 , 所以 采用 方案( 2) 1602 液晶 屏 組成本設(shè)計(jì)的顯示模塊。 方案( 2): 采用 DS18B20 DS18B20 是美國(guó) DALLAS 公司生產(chǎn)的數(shù)字溫度傳感器,采用單總線(xiàn)的接口方式與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 1602 液晶與單片機(jī)接口電路 如 圖 31 所示 : 時(shí)間計(jì)算模塊設(shè)計(jì) DS1302 通過(guò)三根 I/O 線(xiàn)實(shí)現(xiàn)與單片機(jī)的通信, 依靠 3 腳外接的晶振與其內(nèi)部的電圖 31 1602液晶與單片機(jī)接口 7 容配合來(lái)產(chǎn)生時(shí)鐘脈沖的。 方波圖如 圖 34所示: 圖 34 方波圖 8 設(shè)置模塊 設(shè)置模塊采用四個(gè)按鍵 K1K4 與 單片機(jī) 、 、 、 ,其中 K1為 設(shè)置模塊的選擇位, K2是增加 鍵, K3是減少鍵, K4為退出按鍵。 1602LCD 流程圖 如圖 43所示 : 圖 43 1602LCD流程圖 1602 初始 化 刷新顯示第一行數(shù)據(jù) 刷新顯示第二行數(shù)據(jù) 結(jié) 束 開(kāi) 始 按 K1? 進(jìn)入設(shè)置模塊 進(jìn)入時(shí)間調(diào)整 按 K2? 按 K3? 進(jìn)入高溫報(bào)警設(shè)置 按 K4? 進(jìn)入鬧鐘時(shí)間設(shè)置 是 是 是 是 否 否 否 否 A A 按 K1? 是 否 退 出 開(kāi) 始 11 軟件原理 圖 軟件原理圖 如附錄圖二所示:這個(gè)設(shè)計(jì)中, STC89C52RC 主要功能是儲(chǔ)存程序、根據(jù)程序的內(nèi)容對(duì)各個(gè)端口進(jìn)行判斷并作出相應(yīng)的處理; DS1302 主要功能是控制年,月,日,時(shí),分,秒的顯示效果 。 仿真結(jié)果如下所示 : 圖 a : 顯示實(shí)時(shí)時(shí)間 圖 b: 顯示當(dāng)前溫度 圖 c : 當(dāng)達(dá)到設(shè)置的最高溫度 圖 d: 當(dāng)達(dá)到設(shè)置的鬧鐘時(shí)間 圖 e : ,當(dāng)進(jìn)入調(diào)節(jié)狀態(tài) 圖 f: 當(dāng)調(diào)節(jié)時(shí)間 圖 g : 當(dāng)調(diào)節(jié)最高溫度 圖 h: 當(dāng)調(diào)節(jié)鬧鐘 12 根據(jù)仿真后的電路圖進(jìn)行做板,先用萬(wàn)用表 檢測(cè) 各元器件 是否正確,再焊接電路,完成后檢查無(wú)誤就將程序用單片機(jī)板下載到芯片上,后把芯片拔下插入實(shí)物板上,即可工作??傊?,一步步制作下來(lái)我們完成的還是比較可觀(guān)的。修改歡迎界面的延時(shí)時(shí)間。 解決方案:修改報(bào)警模塊,利用控制 腳電源的通斷,使蜂鳴器發(fā)出嘀嘀的響聲。 圖 1(硬件原理圖 ) 圖 2( 軟件原理圖 ) 16 圖 3( PCB) 程序: include include unsigned char code displaywele[]={ Wele To My Lcd Timer}。 //DS1302復(fù)位端口 sbit SET=P1^4。j)。 } /***********蜂鳴器模塊 ************/ void dely500(void) { unsigned char i。y10。 delaynus(2)。 18 delaynus(2)。 SCLK=1。 SCLK=1。 REST=1。 flag= ReadSet1302(0x81)。 //根據(jù)寫(xiě)月寄存器命令字,寫(xiě)入月的初始值 WriteSet1302(0x8c,((10/10)4|(10%10)))。 RS=0。 _nop_()。 _nop_()。 _nop_()。 E=0。 E=1。 Write_(0x38)。 delay1ms(1)。T39。 delay1ms(1)。39。)。:39。39。)。 } void display_Minute(unsigned char minute) //在液晶上顯示分 { unsigned char i,j。 i=hour/10。 j=day%10。 Write_Address(0x0B)。 Write_Date(digit[i])。 Write_Date(digit[j])。 Write_(0x0c)。0x70)4)*10+(valueamp。 value=ReadSet1302(0x87)。0x0f))。 Write_Address(0x0f)。 while(displaywish[i]!=39。 } Write_(0x01)。 delay1ms(2)。 } /*****************時(shí)間調(diào)整部分 *********************/ void hourset(void) //調(diào)時(shí) { unsigned char timevalue,hour。 if(ADD==0) { hour++。 } } timevalue=(((hour)/10)4|(hour%10))。 if(CANL==0) { mode=0。 minute=(((timevalueamp。 if(RED==0) { minute。 Write_Address(0x4c)。 } void secondset(void) //調(diào)秒 { unsigned char second,timevalue。 if(ADD==0) { second++。 delay1ms(1)。 break。0x0f))。 } } datevalue=((year/10)4|(year%10))。 Write_(0x0c)。0x70)4)*10+(datevalueamp。 delay1ms(300)。 delay1ms(5)。 datevalue=ReadSet1302(0x87)。 } } if(RED==0) { delay1ms(10)。 display_Day(day)。 value=houra。 if(RED==0) { value。 } } 32 } void alarmminuteset(void) //鬧鐘分鐘調(diào)整 { while(1) { if(ADD==0) { delay1ms(20)。 } } display_minutea(minutea)。 switch(mode) { case(1):{gbdisplay(0x48)。delay1ms(500)。dayset()。 unsigned char flag。 DQ=0。 temp=DQ。i8。time++)。 } /*********************向 DS18B20寫(xiě)數(shù)據(jù) **************************/ void WriteDS18B20(unsigned char date) { unsigned char i。 for(time=0。 } for(time=0。 WriteDS18B20(0XCC)。 delay1ms(100)。 delay1ms(100)。 i++。 delay1ms(5)。 } Write_Address(0x49)。 k=x%10。 delay1ms(5)。\039。 while(displaypart1[i]!=39。 delay1ms(5)。 while(displayerror1[i]!=39。 while(displayerror[i]!=39。 WriteDS18B20(0XCC)。 for(time=0。 _nop_()。 for(time=0。 _nop_()。 return temp。 DQ=1。 DQ=1。 unsigned char code displayerror[]={DS18B20 ERROR}。} case(5):{gbdisplay(0x0c)。minuteset()。 } } } void TimeSet(void) //時(shí)間調(diào)整函數(shù) { display_Time()。 } } if(RED==0) { delay1ms(20)。 display_houra(houra)。 value++。 Write_(0x0c)。 while(RED==0)。 while(1) { if(ADD==0) { delay1ms(10)。 } } WriteSet1302(0x8e,0x80)。 WriteSet1302(0x88,datevalue)。 if(month12) month=1。 delay1ms(500)。 delay1ms(5)。 } } if(RED==0) { delay1ms(10)。 WriteSet1302(0x8e,0x00)。 28 if(second=60) second=0 。 if(RED==0) { if(second==0) second=59。 second=(((timevalueamp。 if(CANL==0) { mode=0。 } } timevalue=((minute/10)4|(minute%10))。 if(ADD==0) { minute++。 } void minuteset(void) //調(diào)分 { unsigned char timevalu
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1