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

正文內(nèi)容

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

2025-07-15 15:29 本頁(yè)面
 

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