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

正文內(nèi)容

液晶lcd電子鐘設(shè)計論文(完整版)

2025-07-30 18:08上一頁面

下一頁面
  

【正文】 習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次設(shè)計中的最大收獲。我們還是用萬用表檢查所用線路,對照電路原理圖,最后發(fā)現(xiàn)時鐘上拉電阻沒焊上電源。唉!液晶竟然不顯示。呵呵!又進(jìn)一步!最后對程序進(jìn)行相應(yīng)的擴(kuò)展完善,由于按鍵不靈敏我們加上聲音程序。經(jīng)過分析,疊屏現(xiàn)象是沒有對液晶清平所致。四.軟硬件調(diào)試部分 1) 軟件調(diào)試 軟件調(diào)試,我是在keil軟件平臺和單片機學(xué)習(xí)板上來完成的。按out鍵退出到時鐘顯示界面。 DS18B20溫度數(shù)據(jù)處理程序 DS18B20數(shù)據(jù)處理對芯片內(nèi)部數(shù)據(jù)處理獲得液晶的顯示字符。3. 上述六個模塊可以按原理圖整齊的焊接在電路板。它一般串口、并口兩種方式顯示,而我們一般采用并口顯示。第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。用單片機的4x4矩陣鍵盤I/O口接收控制信號,其電路圖如下: 4x4按鍵的一端與地相連,、 、 、相連。這種方法應(yīng)用它內(nèi)部的寄生電源,因此在QT上要用一個MOSFET把I/O線只接拉到電源上。DS18B20也是我們通常使用的型號,因此溫度傳感器用DS18B20。4) EA非/Vpp 腳我們沒有用外部擴(kuò)展ROM,因此EA非/Vpp為高電平,即接+5V電源。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。如想禁止ALE的輸出可在SFR8EH地址上置0。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能 RXD(串行輸入口) TXD(串行輸出口) /INT0(外部中斷0) /INT1(外部中斷1) T0(計時器0外部輸入) T1(計時器1外部輸入) /WR(外部數(shù)據(jù)存儲器寫選通) /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。 二.硬件設(shè)計部分 1 單片機最小系統(tǒng)電路設(shè)計 單片機芯片選擇單片機采用51系列單片機。 鍵盤控制方案選擇方案1:購買集成鍵盤,采用矩陣形式連接。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。同樣,當(dāng)通電時壓電材料會發(fā)生形變。但是數(shù)碼管的只能顯示簡單的設(shè)計的系統(tǒng),與我們設(shè)計要求也不相符。綜上所述,選擇方案1.對于單片機的選擇,STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM CortexM3內(nèi)核。并且引導(dǎo)一種創(chuàng)新的思維,把學(xué)到的知識應(yīng)用到日常生活當(dāng)中。單片機通過外部設(shè)定時間獲取時間數(shù)據(jù),對數(shù)據(jù)處理后顯示時間;單片機再把時間數(shù)據(jù)和溫度數(shù)據(jù)傳送到LCD液晶顯示屏上顯示;還可以設(shè)定鬧鈴,到設(shè)定時間發(fā)出鬧鈴聲;不僅如此,1602還可以顯示星期、年月日、時分秒;4x4矩陣鍵盤可以設(shè)定年月日,時間,鬧鈴。 方案1:通過單片機內(nèi)部的定時器/計數(shù)器,用軟件實現(xiàn),直接用單片機的定時器編程以實現(xiàn)時鐘;方案2:用專門的時鐘芯片實現(xiàn)時鐘的記時,再把時間數(shù)據(jù)送入單片機,由單片機控制顯示。 方案2:用液晶1602顯示。 鬧鈴系統(tǒng)的方案比較方案1:用壓電式蜂鳴器實現(xiàn)鬧鐘鈴聲。 溫度系統(tǒng)方案選擇方案1:用熱敏電阻等測溫元件測出電壓,再轉(zhuǎn)換成對應(yīng)的溫度。176。因此我們選擇方案2. 呼吸燈系統(tǒng)方案選擇方案1:通過陽極控制LED燈使其發(fā)光??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。1) 復(fù)位電路 復(fù)位電路有兩種方式:上電復(fù)位和按鈕復(fù)位,我們主要用按鈕復(fù)位方式。內(nèi)部含有寄存器為我們設(shè)計實現(xiàn)上下限報警功能提供保障。DS18B20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。因為DS18B20的工作電流約為1MA,因此Qt端還要加上拉電阻為其提供電流。 1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。第15~16腳:空腳或背燈電源。 LCD1602顯示電路如下圖所示:7 總體硬件系統(tǒng)設(shè)計1. 由于材料有限,我們只能使用大小為10x15(cm)大的雙面都帶有銅的銅板,通過Altiun designed軟件畫好PCB圖,通過油紙打印出來把電路圖附在銅板上,通過腐蝕液腐蝕掉多余的銅,從來制作出電路板。簡單流程圖如下: 液晶程序LCD1602的程序主要是對內(nèi)部控制指令進(jìn)行指定如液晶初始化,顯示空白,讀,寫,判斷液晶是否忙及指定字符的位置等函數(shù)構(gòu)成。通過按鍵設(shè)置,改變芯片內(nèi)數(shù)據(jù)達(dá)到調(diào)時的效果,設(shè)置鬧鐘,設(shè)置溫度上下限等功能。 程序中的注意點1. 按鍵處理防抖動應(yīng)加延時函數(shù)。由于c語言中有警告是沒關(guān)系的,我將HEX文件下在到單片機竟顯示一些亂碼。最后在void R1302()函數(shù)中DS1302InputByte(ucAddr|0x01)。我只有問度娘啰! 2)硬件調(diào)試 硬件調(diào)試,我們用萬用表,單片機學(xué)習(xí)板來完成的。后來在調(diào)試液晶能夠顯示了。在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進(jìn)了很多,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法。sbit s1=P1^0。char m,n,miao,shi,fen,yue,ri,week。 //星期月參變數(shù)unsigned char data temp_data[2] = {0x00,0x00} 。_nop_() 。 _nop_()。 _nop_()。 rw = 0。 _nop_()。 //當(dāng)lcd_busy為1時,再次檢測LCD忙碌狀態(tài),lcdbusy為0時,開始寫數(shù)據(jù) rs = 1。 ep = 1。 lcd_wcmd(0x40) 。 //單片機將DQ拉低 Delay1(90) 。 unsigned char dat = 0 。 } return (dat) 。 DQ = 1 。 //讀取溫度寄存器 temp_data[0] = ReadOneChar() 。 display[3]=display[4]/100+0x30 。 lcd_pos(0x49) 。 //小數(shù)位數(shù)顯示 } //閏年的計算bit leap_year(){ bit leap。 num_leap=nian/4nian/100+nian/400。 fen=59。 lcd_wcmd(0x06)。 week_proc()。 TH0=0xd8。 lcd_wcmd(0x80+0x40+add)。 lcd_wdat(0x30+ge)。 lcd_wdat(0x30+bai)。 lcd_wdat(0x20)。 if(s1num==1) { TR0=0。 } if(s1num==7) { lcd_wcmd(0x80+0x40+8)。 lcd_wcmd(0x80+0x40+7)。 write_sfm(3,fen)。 if(s2==0) { while(!s2)。 lcd_wcmd(0x80+0x40+4)。 } } } if((yue==4)||(yue==6)||(yue==9)||(yue==11)) { if(ri==31) ri=1。 lcd_wdat(dis_week[week*4+num])。 write_yr(7,yue)。 write_n(2,nian)。 if(armsec==60) armsec=0。 if(armhour==24) armhour=0。 lcd_wcmd(0x80+0x40+7)。 lcd_wcmd(0x80+0x40+1)。 lcd_wcmd(0x80+11)。 } else { if(ri28) ri=28。num++) { lcd_wcmd(0x80+13+num)。num3。 } if(s1num==9) { armmin。 } } } } week_proc()。 BEEP=!BEEP。} //鬧鐘啟用時,報警時間到,啟動Timer1} }//主程序void main(){ init()。 //顯示自定義字符 lcd_pos(0x4f) 。amp。 //顯示溫度 } }}void timer0() interrupt 1{ TH0=0xd8。 miao++。 if(yue==2) { if(leap_year()) { if(ri29) { ri=1。 } } if(yue==13) { yue=1。 }}。 write_n(2,nian)。 } } else { if(ri28) { ri=1。 fen++。//定時時間=(6553655536)*(1/12)*12=10ms (f0=12Mhz) count++。amp。 while(1) { unsigned char i。 n=1。 //延時 if ((s1==0||s2==0||s3==0||s4==0)amp。 m=1。 write_sfm(3,armmin)。 lcd_wdat(dis_week[week*4+num])。 lcd_wcmd(0x80+8)。 } if(yue==0) yue=12。num3。 if(yue==2) { if(leap_year()) { if(ri==0) ri=29。 if(fen==1) fen=59。 lcd_wcmd(0x80+0x40+1)。 lcd_wcmd(0x80+0x40+7)。 for(num=0。 for(num=0。 } } if(s1num==5) { yue++。 } if(yue==13) yue=1。 if(shi==24) shi=0。 if(miao==60) miao=0。 write_sfm(6,miao)。 lcd_wcmd(0x0f)。 lcd_wcmd(0x80+0x40+8)。 lcd_wcmd(0x0f)。amp。 lcd_wdat(0x30+ge)。
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1