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

正文內(nèi)容

基于avr單片機的花樣時鐘顯示--在線瀏覽

2025-08-05 15:29本頁面
  

【正文】 B的第二功能PB7SCKSPI串行時鐘PB6MISOSPI主機輸入從機輸出PB5MOSISPI主機輸出從機輸入PB4SSSPI從機選擇PB3AIN1/OCO模擬比較負輸入,OCO(T/C0比較匹配輸出)PB2AIN0INT2模擬比較正輸入,INT2(外部中斷2輸入)PB1T1T/C1外部計數(shù)器輸入PB0T0/XCKT/C0外部計數(shù)器輸入,XCK(DSART外部時鐘輸入)端口C的第二功能PC7TOSC2定時振蕩器引腳2PC6TOSC1定時振蕩器引腳1PC5TDIJTAG測試數(shù)據(jù)輸入PC4TDOJTAG測試數(shù)據(jù)輸出PC3TMSJTAG測試模式選擇PC2TCKJTAG測試時鐘PC1SDA串行數(shù)據(jù)PC0SCL串行時鐘端口D的第二功能PD7OC2T/C2比較匹配輸出PD6ICP1T/C1輸入捕捉引腳PD5OC1AT/C1輸出比較A匹配輸出PD4OC1BT/C1輸出比較B匹配輸出PD3INT1外部中斷1輸入PD2INT0外部中斷0輸入PD1TXDUSART發(fā)送PD0RXDUSART接收 DS18B20溫度傳感器的介紹 DS18B20簡介 DS18B20是DALLAS公司生產(chǎn)的一種“單總線”溫度傳感器,它采用獨特的單線接口方式,僅需要一個端口引腳來發(fā)送或接收信息,在MCU和DS18B20之間僅需一條數(shù)據(jù)線。所以可以將多個DS18B20同時連在一根總線上,進行簡單的多點分布測量不同點的溫度值。DS18B20內(nèi)部有三個主要數(shù)字部件:64位激光ROM,溫度傳感器,非易失性溫度報警觸發(fā)器TH和TL。采用外部電源供電的標(biāo)準(zhǔn)接法為 DS18B20的操作指令和溫度值寄存器DS18B20依靠一個單總線端口通信,必須先建立ROM操作協(xié)議才能進行存儲器和控制器的操作。 讀出ROM,代碼為33H,用于讀出DS18B20的序列號,即64位激光ROM代碼。 匹配ROM,代碼為55H,用于識別或選中某一特定的DS18B20進行操作。 搜索ROM,代碼為F0H,用于確定總線上的節(jié)點數(shù)以及所有節(jié)點的序列號。 跳過ROM,代碼為CCH,命令發(fā)出后系統(tǒng)將對所有的DS18B20進行操作,通常用于啟動所有DS18B20轉(zhuǎn)換之前或系統(tǒng)中僅有一個DS18B20時。 報警搜索,代碼為ECH,主要用于鑒別和定位系統(tǒng)中超出程序設(shè)定的報警溫度界限的節(jié)點。 溫度轉(zhuǎn)換,代碼為44H,用于啟動DS18B20進行溫度測量,溫度轉(zhuǎn)換命令被執(zhí)行后,DS18B20保持等待狀態(tài)。178。178??梢栽谌魏螘r刻發(fā)出復(fù)位命令來終止寫入。 復(fù)制暫存器,代碼為48H,用于將暫存器的內(nèi)容復(fù)制到DS18B20的非易失性EERAM,即把溫度報警觸發(fā)字節(jié)存入到非易失性存儲器里。 重讀EERAM,代碼為B8H,用于將存儲器在非易失性EERAM中的內(nèi)容重新讀入到暫存器中。 讀電源,代碼為B4H,用于將DS18B20的供電方式信號發(fā)送到主機。DS18B20的溫度寄存器如圖所示其中中高字節(jié)MSB中的前5位位溫度符號位,S全為0表示正溫度,全為1表示負溫度。IOout。i8。0x01) { IO1。 } SCK1。 Dat=Dat1。 } SCK1。}RST0。}讀代uchar read_ds1302(uchar add){uchar value,i。SCK0。write_ds1302_byte(add)。NOP()。i8。if(IOr)碼為 DS1302時鐘芯片的介紹 DS1302簡介 DS1302是美國DALLAS公司推出了一種串行接口實時時鐘芯片。如圖所示為DS1302的引腳及封裝圖,單片機與DS1302之間采用3線串行通信方式,CE為通信允許信號,CE=1允許通信,CE=0,禁止通信。,VCC1和VCC2是電源引腳,單電源供電時接VCC腳,雙電源供電時主電源接VCC2,備份電池接VCC1,如果采用可充電鎘鎳電池,可啟用內(nèi)部涓流充電器在主電源正常時向電池充電,以延長電池的使用時間。DS1302與單片機進行數(shù)據(jù)交換時,首先由單片機向電路發(fā)送命令字節(jié),命令字節(jié)最高位Write Protect(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302的寄存器 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302的時間寄存器 DS1302的讀和寫時序以及部分代碼DS1302的寫時序圖DS1302寫一個字節(jié)代碼如下:void write_ds1302_byte(uchar Dat){uchar i。for(i=0。i++){ if(Datamp。 }else { IO0。 SCK0。}}DS1302的讀時序圖 需要注意的是:在讀的時候需要往DS1302中寫一個字節(jié)的數(shù)據(jù),此數(shù)據(jù)為要讀的地址,當(dāng)寫完之后,緊接著的下降沿時鐘信號DS1302就開始傳出數(shù)據(jù),注意數(shù)據(jù)的接受,不然將會漏掉數(shù)據(jù)。 if(IOr) { value=value|0x80。 SCK0。return value。RST0。RST1。IOin。for(i=0。i++){需要注意的的是:DS1302寫一個字節(jié)和讀一個字節(jié)都是低位在前高位在后; 74HC595的簡介74HC595芯片是一種串入并出的芯片,在電子顯示屏制作當(dāng)中有廣泛的應(yīng)用。 三態(tài)。 595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。數(shù)據(jù)在SCHcp的上升沿輸入,在STcp的上升沿進入的存儲寄存器中去。 移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當(dāng)使能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。真假正溫度算法程序負溫度算法程序返回溫度值溫度值高8位(jamp。剛開始時準(zhǔn)備用AT89C52來做控制單元,但經(jīng)過實踐發(fā)現(xiàn),由于刷新32*64點陣屏要求單片機的運算頻率較高,只要刷新速率夠快才能不產(chǎn)生閃動的現(xiàn)象,AT89C52型單片機并不能勝任這項任務(wù),因為它每個指令周期是經(jīng)過時鐘的12分頻所得到的,而且它最高支持24M晶振,這就大大限制的它的工作速率。經(jīng)過這幾個月的努力學(xué)習(xí)和研究,加上老師的指導(dǎo),基本上學(xué)會了使用ATmega16這款單片機,使用它對點陣屏的刷新、對DS1302時鐘芯片的讀取和對DS18B20溫度傳感器的讀取相當(dāng)輕松,為何使它的速率更高,本設(shè)計給ATmega16單片機使用了12M的晶振,使它擁有每秒可以執(zhí)行12x106次方條指令。還有就是本設(shè)計顯示的負溫度,由于沒能真正的在負溫度環(huán)境下測試,所以并未知道該功能的準(zhǔn)確性。不過在以后的學(xué)習(xí)實踐中,會對程序進一步的優(yōu)化,合理應(yīng)用內(nèi)存,力求完美。從論文的選題、理論的研究、硬件的設(shè)計,軟件的設(shè)計思路和論文的編寫、修改及定稿等各個環(huán)節(jié)嚴格要求,使我在學(xué)習(xí)過程中受益匪淺。[2] 劉志民 《電路分析》(第三版) 西安電子科技大學(xué)出版社。[4] 張大彪 《電子測量技術(shù)與儀器》 電子工業(yè)出版社。[6] 楊志忠 《數(shù)字電子技術(shù)》 高等教育出版社。[8] 霖風(fēng) 51單片機到ARM征服嵌入式之AVR篇。[10] 杜橫 《C語言程序設(shè)計》(理實一體化教程) 機械工業(yè)出版社。[12] 百度百科 Baidu Encyclopedia。=~BIT(0)define ser1 PORTB|=BIT(0)define srch0 PORTBamp。=~BIT(2)define rc1 PORTB|=BIT(2)define serl0 PORTBamp。=~BIT(4)define serh1 PORTD|=BIT(4)define srcl0 PORTDamp。=~BIT(5)define IO1 PORTC|=BIT(5)define IOout DDRC|=BIT(5)define IOin DDRCamp。BIT(5)define SCK0 PORTCamp。=~BIT(6)define RST1 PORTC|=BIT(6)define RSTout DDRC|=BIT(6)define DQin DDRCamp。=~BIT(7)define DQr PINCamp。=~BIT(7)define music1 PORTD|=BIT(7)define key1 (PINCamp。BIT(2))define key3 (PINCamp。BIT(0))endif 各I/: :.h代碼ifndef __HC595_H__define __HC595_H__includeextern void delay(uint z)。extern void write_595s(uchar DATA)。 for(x=z。x) for(y=80。y)。 for(i=0。i++) { if(DATAamp。 } else { ser0。 srcl1。 }} void write_595s(uchar DATA) //向點陣屏上部分595寫一個字節(jié)的數(shù)據(jù){ uchar i。i8。0x01) { serl1。 } srcl0。 DATA=DATA1。 uint num。 uchar read_ds1302(uchar add)。 void set_sz(void)。 void write_suffx(uchar *q,uchar (*p)[16
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1