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

正文內(nèi)容

基于avr單片機的花樣時鐘顯示-(編輯修改稿)

2025-07-15 15:29 本頁面
 

【文章內(nèi)容簡介】 個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。DS1302的時間寄存器 DS1302的讀和寫時序以及部分代碼DS1302的寫時序圖DS1302寫一個字節(jié)代碼如下:void write_ds1302_byte(uchar Dat){uchar i。IOout。for(i=0。i8。i++){ if(Datamp。0x01) { IO1。 }else { IO0。 } SCK1。 SCK0。 Dat=Dat1。}}DS1302的讀時序圖 需要注意的是:在讀的時候需要往DS1302中寫一個字節(jié)的數(shù)據(jù),此數(shù)據(jù)為要讀的地址,當寫完之后,緊接著的下降沿時鐘信號DS1302就開始傳出數(shù)據(jù),注意數(shù)據(jù)的接受,不然將會漏掉數(shù)據(jù)。DS1302的讀字節(jié)代碼如下value=value1。 if(IOr) { value=value|0x80。 } SCK1。 SCK0。}RST0。return value。}uchar read_ds1302(uchar add){uchar value,i。RST0。SCK0。RST1。write_ds1302_byte(add)。IOin。NOP()。for(i=0。i8。i++){需要注意的的是:DS1302寫一個字節(jié)和讀一個字節(jié)都是低位在前高位在后; 74HC595的簡介74HC595芯片是一種串入并出的芯片,在電子顯示屏制作當中有廣泛的應(yīng)用。 74HC595是8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻、關(guān)、斷狀態(tài)。 三態(tài)。特點 8位串行輸入 8位串行或并行輸出 存儲狀態(tài)寄存器,三種狀態(tài) 輸出寄存器可以直接清除 100MHz的移位頻率 輸出能力 并行輸出,總線驅(qū)動 串行輸出; 標準 中等規(guī)模集成電路應(yīng)用 串行到并行的數(shù)據(jù)轉(zhuǎn)換 Remote control holding register. 描述 595是告訴的硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標準。 595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。 移位寄存器和存儲器是分別的時鐘。數(shù)據(jù)在SCHcp的上升沿輸入,在STcp的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。 移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線74HC595引腳圖:QA~QH:三態(tài)輸出引腳GND:電源地SQH:串行數(shù)據(jù)輸出引腳SCLR:移位寄存器清零端SCK:數(shù)據(jù)輸入時鐘引腳RCK:輸出寄存器鎖存時鐘引腳OE:輸出使能引腳SI:數(shù)據(jù)輸入引腳VCC:電源引腳4 軟件的設(shè)計溫度移出顯示溫度l=100?l=100?溫度移入時間消失顯示時間和日期時間進入子程序I/O端口及各部分功能模塊初始化主程序 本設(shè)計主要實現(xiàn)時間日期及溫度的顯示:首先執(zhí)行時間進入程序timein();然后是以for循環(huán),共循環(huán)執(zhí)行100次讀時間和刷新時間程序,然后跳出for循環(huán)執(zhí)行溫度進入程序wenduin();然后顯示溫度,在計算溫度值時,會根據(jù)環(huán)境溫度選擇相應(yīng)的溫度算法; 軟件設(shè)計的流程圖 DS18B20讀取負溫度時流程圖 該部分為溫度算法判斷子程序流程圖,根據(jù)高位(jamp。0xf8)是否為0xf8來選擇具體的算法程序。真假正溫度算法程序負溫度算法程序返回溫度值溫度值高8位(jamp。0xf8)=0xf8?讀溫度子程序5 結(jié)論本文研究了以ATmega16作為控制核心的32*64點陣屏,用于時間和溫度的顯示。剛開始時準備用AT89C52來做控制單元,但經(jīng)過實踐發(fā)現(xiàn),由于刷新32*64點陣屏要求單片機的運算頻率較高,只要刷新速率夠快才能不產(chǎn)生閃動的現(xiàn)象,AT89C52型單片機并不能勝任這項任務(wù),因為它每個指令周期是經(jīng)過時鐘的12分頻所得到的,而且它最高支持24M晶振,這就大大限制的它的工作速率。況且要實現(xiàn)這些功能,程序代碼頁比較多,AT95C52的內(nèi)存也不夠,經(jīng)過查資料得知,發(fā)現(xiàn)ATmega16這款A(yù)VR型單片機可以勝任這項任務(wù)。經(jīng)過這幾個月的努力學(xué)習和研究,加上老師的指導(dǎo),基本上學(xué)會了使用ATmega16這款單片機,使用它對點陣屏的刷新、對DS1302時鐘芯片的讀取和對DS18B20溫度傳感器的讀取相當輕松,為何使它的速率更高,本設(shè)計給ATmega16單片機使用了12M的晶振,使它擁有每秒可以執(zhí)行12x106次方條指令。但是由于刷新點陣屏所需的程序比較大,還有顯示需要的字模比較多,加上DS130DS18B20的讀取程序,最后使得ATmega16單片機的內(nèi)存也被用完,導(dǎo)致本設(shè)計沒能夠加上調(diào)時鬧鐘功能。還有就是本設(shè)計顯示的負溫度,由于沒能真正的在負溫度環(huán)境下測試,所以并未知道該功能的準確性。在顯示溫度時,由于讀取溫度需要一定的時間,所以屏幕會發(fā)暗,并伴有閃爍感。不過在以后的學(xué)習實踐中,會對程序進一步的優(yōu)化,合理應(yīng)用內(nèi)存,力求完美。在本設(shè)計即將完成之際,我首先要感謝我的指導(dǎo)老師劉彥華老師,感謝老師對我的耐心幫助和指導(dǎo)。從論文的選題、理論的研究、硬件的設(shè)計,軟件的設(shè)計思路和論文的編寫、修改及定稿等各個環(huán)節(jié)嚴格要求,使我在學(xué)習過程中受益匪淺。6 參考文獻[1] 鄒益民 《單片機C語言教程》 中國石化出版社。[2] 劉志民 《電路分析》(第三版) 西安電子科技大學(xué)出版社。[3] 胡宴如 《模擬電子技術(shù)》(第三版) 高等教育出版社。[4] 張大彪 《電子測量技術(shù)與儀器》 電子工業(yè)出版社。[5] 張文濤 《PROTEUS仿真軟件應(yīng)用》 華中科技大學(xué)出版社。[6] 楊志忠 《數(shù)字電子技術(shù)》 高等教育出版社。[7] 王川 《實用電源技術(shù)》 重慶大學(xué)出版社。[8] 霖風 51單片機到ARM征服嵌入式之AVR篇。[9] 胡應(yīng)占 《Altium Designer 6 電路設(shè)計實用教程》 河南科學(xué)技術(shù)出版社。[10] 杜橫 《C語言程序設(shè)計》(理實一體化教程) 機械工業(yè)出版社。[11] 百度文庫 Baidu Library。[12] 百度百科 Baidu Encyclopedia。 7 附錄 程序代碼由于程序代碼比較長,所以本設(shè)計采用模塊化編程,各模塊的代碼如下ifndef __DEFINITION_H__define __DEFINITION_H__includeincludedefine uint unsigned intdefine uchar unsigned chardefine ser0 PORTBamp。=~BIT(0)define ser1 PORTB|=BIT(0)define srch0 PORTBamp。=~BIT(1)define srch1 PORTB|=BIT(1)define rc0 PORTBamp。=~BIT(2)define rc1 PORTB|=BIT(2)define serl0 PORTBamp。=~BIT(3)define serl1 PORTB|=BIT(3)define serh0 PORTDamp。=~BIT(4)define serh1 PORTD|=BIT(4)define srcl0 PORTDamp。=~BIT(5)define srcl1 PORTD|=BIT(5)define IO0 PORTCamp。=~BIT(5)define IO1 PORTC|=BIT(5)define IOout DDRC|=BIT(5)define IOin DDRCamp。=~BIT(5)define IOr PINCamp。BIT(5)define SCK0 PORTCamp。=~BIT(4)define SCK1 PORTC|=BIT(4)define SCKout DDRC|=BIT(4)define RST0 PORTCamp。=~BIT(6)define RST1 PORTC|=BIT(6)define RSTout DDRC|=BIT(6)define DQin DDRCamp。=~BIT(7)define DQout DDRC|=BIT(7)define DQ1 PORTC|=BIT(7)define DQ0 PORTCamp。=~BIT(7)define DQr PINCamp。BIT(7)define music0 PORTDamp。=~BIT(7)define music1 PORTD|=BIT(7)define key1 (PINCamp。BIT(3))define key2 (PINCamp。BIT(2))define key3 (PINCamp。BIT(1))define key4 (PINCamp。BIT(0))endif 各I/: :.h代碼ifndef __HC595_H__define __HC595_H__includeextern void delay(uint z)。extern void write_595x(uchar DATA)。extern void write_595s(uchar DATA)。endif.c代碼:includevoid delay(uint z) { uint x,y。 for(x=z。x0。x) for(y=80。y0。y)。 } void write_595x(uchar DATA) //向點陣屏下部分595寫一個字節(jié)的數(shù)據(jù) { uchar i。 for(i=0。i8。i++) { if(DATAamp。0x01) { ser1。 } else { ser0。 } srcl0。 srcl1。 DATA=DATA1。 }} void write_595s(uchar DATA) //向點陣屏上部分595寫一個字節(jié)的數(shù)據(jù){ uchar i。 for(i=0。i8。i++) { if(DATAamp。0x01) { serl1。 } else { serl0。 } srcl0。 srcl1。 DATA=DATA1。 }} :.h代碼ifndef __DS1302_H__ define __DS1302_H__ includeuchar shi,fen,miao,ri,yue,nian,xingqi。 uint num。 void write_ds1302_byte(uchar Dat)。 uchar read_ds1302(uchar add)。 void write_ds1
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦