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

正文內(nèi)容

數(shù)字電子時鐘設計報告(參考版)

2024-08-31 12:03本頁面
  

【正文】 // 寫 1Byte 數(shù)據(jù) T_CLK = 1。 _nop_()。 v_RTInputByte(ucAddr)。 T_CLK = 0。 } return(ACC)。 T_CLK = 1。 i) { ACC = ACC 1。 for(i=8。 } } /******************************************************************** * 名稱 : uc_RTOutputByte() * 功能 : 從 DS1302 讀取 1Byte 數(shù)據(jù) * 輸入 : 無 * 返回值 : ACC ***********************************************************************/ uchar uc_RTOutputByte(void) { uchar i。 T_CLK = 0。 i) { T_IO = ACC0。 for(i=8。 ACC = ucDa。0x7f)。 } } } if(num==0) //關閉光標閃爍 { enable(0x0c)。 L1602_char(1, 8, year % 10 + 48)。 if(year==1) year=20。 year = bcdtodec(uc_R1302(0x8d))。 } if(jian==0) delay(5)。 L1602_char(1, 8, year % 10 + 48)。 if(year20) year=0。 year++。 if(jia==0) delay(5)。 v_W1302(0x88,dectobcd(mon))。 L1602_char(1, 10, mon / 10 % 10 + 48)。 mon。 if(jian==0) { while(!jian)。 v_W1302(0x88,dectobcd(mon))。 L1602_char(1, 10, mon / 10 % 10 + 48)。 while(!jia)。 if(jia==0) { mon = bcdtodec(uc_R1302(0x89))。 } } if(num==5) //調月份 { enable(0x80+10)。 L1602_char(1,14,day%10+48)。 if(day==1) day=31。 day=bcdtodec(uc_R1302(0x87))。 } if(jian==0) delay(5)。 L1602_char(1, 14, day % 10 + 48)。 if(day31) day=0。 day++。 if(jia==0) delay(5)。 v_W1302(0x84,dectobcd(hour))。 L1602_char(2, 6, hour / 10 % 10 + 48)。 hour。 if(jian==0) { while(!jian)。 v_W1302(0x84,dectobcd(hour))。 L1602_char(2, 6, hour / 10 % 10 + 48)。 while(!jia)。 if(jia==0) { hour = bcdtodec(uc_R1302(0x85))。 } } if(num==3) //調小時 { enable(0xc0+6)。 L1602_char(2, 10, min % 10 + 48)。 if(min==1) min=59。 min。 } if(jian==0) delay(5)。 L1602_char(2, 10, min % 10 + 48)。 if(min59) min=0。 min++。 if(jia==0) delay(5)。 v_W1302(0x80,dectobcd(sec)|0x80)。 L1602_char(2, 12, sec/10%10+48)。 sec。 if(jian==0) { while(!jian)。 v_W1302(0x80,dectobcd(sec)|0x80)。 L1602_char(2, 12, sec/10%10+48)。 sec++。 sec=bcdtodec(uc_R1302(0x81)amp。 if(jia==0) delay(5)。 //調時到年以后退出調時 if(num==7) num=0。 v_W1302(0x8e,0)。 enable(0x0f)。 } //退出調時按鍵 m if(m==0) delay(5)。 // beep()。 //進入調時循環(huán) while(num) { if(t==0) delay(5)。 } } //時鐘調節(jié) // void timechange() { uchar a,num=1。 write(*p)。\039。 enable(a)。 if(hang == 2) a = 0xc0。) * 輸入 : 行,列,需要輸入 1602 的數(shù)據(jù) * 輸出 : 無 ***********************************************************************/ void L1602_string(uchar hang,uchar lie,uchar *p) { uchar a。 write(sign)。 a = a + lie 1。 if(hang == 1) a = 0x80。b39。j++) write(hanzi[i][j])。i++) for(j=0。 for(i=0。 } //裝入自定義字符(漢字) void writch() { uchar i,j。 enable(0x0c)。 enable(0x38)。 E=0。 E = 1。 RW = 0。 E=0。 E = 1。 RW = 0。i++)。 while(x) for(i=0。 void beep()。 uchar dectobcd(uchar bcd)。 void v_W1302(uchar ucAddr, uchar ucDa)。 uchar sec, min, hour, day, month, year。 //1602 讀寫引腳 sbit RS=P2^5。 /*實時時鐘復位線引腳 */ sbit E=P2^7。 /*實時時鐘時鐘線引腳 */ sbit T_IO = P1^1。//蜂鳴器 sbit jtod=P1^5。//減一按鍵 sbit m=P3^5。//進入調時按鍵 sbit jia=P3^3。 sbit ACC7 = ACC^7。但是由于數(shù)碼管動態(tài)掃描需要借助 74LS164 移位寄存器進行移位,該芯片在電路調試時往往會有很多障礙,因此本次設計選擇了 LCD1602,液晶顯示屏的顯示功能強大 ,可顯示大量文字 ,圖形 ,顯示多樣 ,清晰可見;從元件性能和組裝電路后的測試結果來看,硬件電路的設計是比較成功的 ,各個功能都能實現(xiàn)了。采用此種方案雖然可以減少時鐘芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。 在硬件電路方面,詳盡解析了各個獨立元件的選擇依據(jù),對數(shù)種方案進行了全面的比較。 結束語 以上所述即是基于單片機電子萬年歷的設計全過程,經(jīng)過多次的反復測試與分析 ,對電路的原理及功能更加熟悉 ,同時提高了設計能力與及對電路的分析能力 .經(jīng)過此設計,基本完成了設計任務的要求。其次,芯片很多都有時鐘輸入端,需要晶振支持。 軟件測試 由于本系統(tǒng)涉及到多個子程序,多個芯片的編程。 2. 檢查完畢后接通電源后 LCD1602 沒有正確的顯示。時間調整程序的流程圖如圖 所示。由于 LCD1602, DS18B20,DS1302 的數(shù)據(jù)讀取及指令寫入函數(shù)均已在各自的頭文件中完成,在主程序中只須引用即可。 圖 顯示電路 鍵盤電路 按鍵電路由 3個按鍵組 成,主要是用于調節(jié)時間,日期和星期如圖 所示。 RD1 主要用于限流作用,起到一定的保護作用。使能端 E由單片機 引腳控制,數(shù)據(jù) /命令選擇端由單片機的 引腳控制。 圖 震蕩電路 圖 溫度采集電路 圖 串口通信電路 顯示電路 顯示電路由 1602 液晶接口插槽組成,如下圖 所示。特別是用于串口通信時,選用這種晶振比較好。 在本設計中采用了 的晶振。在振蕩回路中,晶體既不能過激勵 (容易產(chǎn)生高次諧波 )也不能欠激勵 (不容易起振 )。而單片機復位電路設計的好壞 ,直接影響到整個系統(tǒng)工作的可靠性。 BLA、 BLK分別為顯示器背光燈的正、負極。 E(或 EN)端為使能 (enable)端,下降沿使能。 RS 為寄存器選擇,高電平 1時選擇數(shù)據(jù)寄存器、低電平 0 時選擇指令寄存器。 顯示模塊的設計 采用 LCD1602 液晶顯示器,單片機 P0口作為數(shù)據(jù)輸出口,通過 10R 的上拉電阻連接到 VCC, VCC 接 5V電源, GND 接地。另外,還可以在上面的電路中加 入 DS18B20,同時顯示實時溫度。實際上,在調試程序時可以不加電容器,只加一個 的晶振即可。 DS1302 與 RAM 相關的寄存器分為兩類:一類是單個 RAM 單元,共 31個,每個單元組態(tài)為一個 8位的字節(jié),其命令控制字為 C0H~ FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31個字節(jié),命令控制字為 FEH(寫 )、 FFH(讀 )。此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與 RAM相關的寄存器等。同樣,在緊跟 8位的控制指令字后的下一個 SCLK 脈沖的下降沿讀出 DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0位到高位 7。最低有效位 (位 0)如為 0 表示要進行寫操作,為 1 表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 DS1302 的控制字節(jié)的最高有效位 (位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入 DS1302 中,位6如果為 0,則表示存取日歷時鐘數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù) 。只有在 SCLK 為低電平時,才能將 RST 置為高電平。如果在傳送過程中 RST 置為低電平,則會終止此次數(shù)據(jù)傳送, I/O 引腳變?yōu)楦咦钁B(tài)。 RST 輸入有兩種功能:首先, RST 接通控制邏輯,允許地址 /命令序列送入移位寄存器;其次, RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。 X1 和 X2 是振蕩源,外接 晶振。當 Vcc2 大于 Vcc1+ 時, Vcc2 給 DS1302 供電。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。 DS1302 是 DS1202 的升級產(chǎn)品,與 DS1202 兼容,但增加了主電源 /后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。采用三線接口與 CPU 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM數(shù)據(jù)。外接晶體時, XTAL1 和 XTAL2 各接晶體的一端,借外接晶體與片內(nèi)反相放大器構成振蕩器。 ( 4)外接晶振引腳 XTAL1:片內(nèi)反 相放大器輸入端。 EA/ VDD:片外程序存儲器選用端。 Vcc 掉電期間,該引腳如接備用電源 VPD(電壓范圍 + 至 +),可用于保存片內(nèi) RAM 中的數(shù)據(jù)。單片機的 振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平就可實現(xiàn)復位操作,使單片機回復到初始狀態(tài)。 RST/ V:( RST 是 RETET 簡略寫法。在向片外程序存儲器讀取指令或常數(shù)期間,每個機器周期該信號兩次有效(低電平),以通過數(shù)據(jù)總線 P0 口讀回指令或常數(shù)。對于片內(nèi)含 EPROM 的機型,在編程期間,此引腳用作編程脈沖 PROG 的輸入端。(片外數(shù)據(jù)存儲器讀控制信號) ( 3)控制總線 ALE/ PROG:地址鎖存有效信號輸出端。(片外數(shù)據(jù)存儲器寫控制信號) R175。(外部中斷 1輸入) T0(定時器 0的外部輸入) T1(定時器 1的外部輸入
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1