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

正文內(nèi)容

基于at89c51單片機的多功能電子萬年歷的設(shè)計的(編輯修改稿)

2024-07-24 17:23 本頁面
 

【文章內(nèi)容簡介】 MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。 要特別說明的是備用電源B1,可以用電池或者超級電容器()。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調(diào)整時間。 DS1302 存在時鐘精度不高,易受環(huán)境影響,出現(xiàn)時鐘混亂等缺點。DS1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的分析及對異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數(shù)據(jù)而無法準(zhǔn)確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機的資源,而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時鐘芯片DS1302,則能很好地解決這個問題。 第四章 系統(tǒng)的軟件設(shè)計 主程序主程序如圖41所示: 開始讀年、月、日送第一塊LED顯示讀星期、閏、年、日送第二塊LED顯示讀時、分、秒送第三塊LED顯示返回圖41 主程序圖 從1302讀取日期和時間程序系統(tǒng)初始化開 始需要調(diào)整時間嗎?讀1302日期和時間調(diào)整時間和日期YN圖42 從1302讀取程序 系統(tǒng)源代碼DELAY.Cdefine DELAY_Cinclude”includes.h”define XTAL 12void delay_lus(void) { asm(”nop”): }void delay_nus(unsigned int n) {unsigned int i=0;for(i=0;in;i++)delay_lus(); }void delay_ims(void) { unsigned int i; for(i=0:i(unsigned int)(XTAL*1432)。i++)。 }void delay_nms(unsigned int n) { unsigned int i=0。 for(i=0;in;i++) { delay_ims()。 } } DSl302.Cinclude”includes.h”define DSl302_C unsigned char bflag;unsigned char bpm;unsigned char get_hours(void){ unsigned char i; unsigned char R_Byte; unsigned char TmpByte; reset(); write(0x85); ddr_set_io(); R_Byte=0x00; Prt_clear_io(); ddr_clear_io(); for(i:0;i4;i++) } TmpByte=0。 if((pinpamp。(1io))) TmpByte=1; TmpByte=7。R_Byte=1。R_Byte I=TmpByte;Prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2);}bflag=0;if((pinpamp。(1io))) bflag=l。prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2); bpm=0。if((pinpamp。(1io))) bpm=1;prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2);prt_clear_rst();prt_clear_clk();R_Byte =4;return R_Byte;}unsigned char readbyte(unsigned char w_byte){ unsigned char temp; reset(); write(w_byte); temp=read(); prt_clear_rst(); prt_clear_clk(); return temp;}void writebyte(unsigned char w_byte,unsigned char w_2_byte) { reset(); write(w_byte)。 write(w_2_byte); prt_clear_rst(); prt_clear_clk();}void reset(void){ ddr_set_rst(); prt_clear_clk(); prt_clear_rst(); prt_set_rst();}void write(unsigned char W_Byte){ unsigned char i; DDRC=0xFF。for(i=0;i8;i++){ Prt_clear_io(); if(W_Byte amp。0x01) { prt_set_io();}Prt_set_clk();delay_nus(1);//delay_nus(2);prt_clear_clk();delay_nus(1);//delay_nus(2);W_Byte=1; }}unslgned char read(void){ unsigned char i; unsigned char R_Byte; unsigned char R_Byte2; unsigned char TmpByte; ddr_set_io(); R_Byte=0x00。 R_Byte2=0x00;prt_clear_io();ddr_clear_io();for(i=0。i4;i++)//get the first 4 bits{ TmpByte=0;if((pinpamp。(1io))){ TmpByte=1。 TmpByte=0x80。 }//TmpByte=7;R_Byte= (RByte1)。//R_Byte=1。R_Byte |=TmpByte;prt_set_clk();delay_nus(1);//delay_nus(2)。prt_chear_clk()。delay_nus(1);//delay_nus(2);}for(i=0;i4;i++){ TmpByte=0; if((pinpamp。(1io))) { TmpByte=1; TmpByte=0x80; } //TmpByte=7; R_Byte2=(R_Byte21);//R_Byte2=l; R_Byte2 |=TmpByte。 Prt_set_clk(); delay_nus(1)://delay_nus(2); prt_clear_clk(); delay_nus(1);//delay_nus(2); } R_Byte=4; R_Byte2=4; R_Byte=(R_Byte2*10)+R_Byte; return R_Byte;}HD44780.Cinclude”includes.h”define HD44780_Cvoid lcd_pulse(void) {Icd—set—e()delay_nms(1)。Icd_clear_e()。 delay_nms(1); }void icd_wait(void) { asm(”nop”);}void icd_send(unsigned char data) {Lcd_wait();dataport=data。lcd_pulse();}void clrscr(void){lcd_clear_rs();lcd_clear_rw();icd_send(0x01);lcd_wait();}void gotoz(unsigned char z){lcd_clear_rs();lcd_clear_rw();lcd_send(z || 0x80);}void gotoxy(unsigned char x,unsigned char y){gotoz((x)|((y)(6));}void put_char(char c){lcd
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1