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

正文內(nèi)容

畢業(yè)設計-基于89c51單片機的電子時鐘設計-預覽頁

2025-02-09 23:34 上一頁面

下一頁面
 

【正文】 P1接收低 8位地址。 在訪問外部程序存儲器或 16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVXDPTR指令)時, P2口送出高 8位地址數(shù)據(jù)。對 P3口寫入“ 1”時,它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。當振蕩器工作時, RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。即使不訪問外部存儲器, ALE仍以時鐘振蕩頻率的 1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。該位置后,只有一條 MOVX和 MOVC指令 ALE才會被激活。 ? EA/VPP:外部訪問允許。 Flash存儲器編程時,該引腳加上 +12V 的變成電壓 Vpp. ? XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 WDT 在默認情況下無法工作;為了激活 WDT,用戶必須往 WDTRST 寄存器(地址: 0A6H)中依次寫入 01EH 和 0E1H。當 WDT溢出,它將驅(qū)動 RSR引腳輸出一個高電平。串行口內(nèi)的接收器采用的是雙緩沖結(jié)構(gòu),能夠在接收到的第一個字節(jié)從接收寄存器讀走之前就開始接收第二個字節(jié)(當然,如果第二個字節(jié)接收完畢,第 10 頁 共 50 頁 10 而第一個字節(jié)仍然沒有被讀走,那將會丟掉一個字節(jié))。因此, CPU對 SBUF的讀寫,實際上是分別訪 問 2個不同的寄存器??梢岳盟鼉?nèi)部的振蕩器產(chǎn)生時鐘,只要 XTAL1和 XTAL2引腳上一個晶體及電容組成的并聯(lián)諧振電路,便構(gòu)成一個完整的振蕩信號發(fā)生器,此方式稱為內(nèi)部方式。 ? 定時 /計數(shù)器: AT89C51單片機內(nèi)含有 2個 16位的定時器 /計數(shù)器。 ? RAM:高于 7FH內(nèi)部數(shù)據(jù)存儲器的地址是 8位的,也就是說其地址空間只有256字節(jié),但內(nèi)部 RAM的尋址方式實際上可提供 384字節(jié)。 ? SFR: SFR是具有特殊功能的所有寄存器的集合,共含有 22個不同寄存器,它們的地址分配在 80H~ FFH中。 IE 寄存器用于允許或禁止中斷; IP 寄存器用于確定中斷源的優(yōu)先級別;優(yōu)先級結(jié)構(gòu)用于執(zhí)行中斷源的優(yōu)先排序;有關(guān)邏輯門用于輸入中斷請求信號。當有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在 CLOCK 上升沿作用 Q0的狀態(tài)。這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。采用三線接口與 CPU 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM 數(shù)據(jù)。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。 X1和 X2是振蕩源,外接 。如果在傳送過程中 RST 置為低電平, 則會終止此次數(shù)據(jù)傳送, I/O引腳變?yōu)楦咦钁B(tài)。 SCLK始終是輸入端。 在控制指令字輸入后的下一個 SCLK時鐘的上升沿時,數(shù)據(jù)被寫入 DS1902,數(shù)據(jù)輸入從低位即位 0 開始。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存 器外的所有寄存器內(nèi)容。 DS1302 與 CPU 的連接 , 實 際上,在調(diào)試程序時可以不加電容器,只加一個 的晶振即可。 LED 還可以換成 LCD,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10 位多功能 8 段液晶顯示模塊 LCM101,內(nèi)含看門狗 (WDT)/時鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動電路,并有內(nèi)置顯示 RAM,可顯示任意字段筆劃,具有 3- 4 線串行接口,可與任何單片機、 IC 接口。下面對 DS1302的基本操作進行編程: 根據(jù)本人在調(diào)試中遇到的問題,特作如下說明: DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位 MSB(D7)必須為邏輯 1,如果 D7=0,則禁止寫 DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù), D6=1,指定 RAM 數(shù)據(jù); D5~ D1 指定輸入或輸出的特定寄存器;最低位 LSB(D0)為邏輯 0,指定寫操作 (輸入 ), D0=1,指定讀操作 (輸出 )。 要特別說明的是備用電源 B1,可以用電池或者超級電容器 ( 以上 )。 100 μF 就第 17 頁 共 50 頁 17 可以保證 1 小時的正常走時。 DS1302 可以用于數(shù) 據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。 第 18 頁 共 50 頁 18 4 系統(tǒng)的軟件設計 電子萬年歷的功能是在程序控制下實現(xiàn)的。 用 PROTEUS ISIS 對電子萬年歷的硬件電路設計 通過 PROTEUS ISIS 軟件的 VSM(虛擬仿真技術(shù)),用戶可以對模擬電 路、數(shù)字電路、模數(shù)混合電路,以及基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真。會彈出如圖 53所示的窗口。 第 22 頁 共 50 頁 22 圖 54 所用器件 其中 74LS174表示三個串行接口, AT89C51 代表單片機會, DS1302 代表時鐘芯片, RESPACK8代表八排電阻。在布線之前,如果覺得元器件的引腳的方向不好布線,則可以通過單擊 這四個按鈕進行調(diào)整,這四按鈕的意思分別是:順時針旋轉(zhuǎn) 90176。接著進行布線,由于 PROTEUS ISIS 有自動布線的功能,比如要把 AT89C51 的 P2 口連到 74LS164 的 OUT8 口,只要先在 P2 引腳上單擊一下,再在 OUT8 引腳上單擊,則 ISIS 自動將兩個引腳連上線。選擇 ,從中可以選擇電路原理中的兩個通用的端子,一個是接地,一個是電源。 ② 編譯源程序,生成 .HEX目標代碼文件 單擊 Source→ Build All。 圖 59 ④ 單擊 按鈕,進行對電子萬年歷的仿真測試, 運行結(jié)果如圖 510所示 第 26 頁 共 50 頁 26 圖 510 仿真測試 ⑤ PROTEUS的調(diào)試功能 由于使用的是匯編語言編寫的程序,如果在測量的時候測量值顯示錯誤,說明程序中存在問題,這個問題只用在仿真測量的時候才能被發(fā)現(xiàn),這時可以使用PROTEUS 對程序進行調(diào)試。而且 所設計的 電子萬年歷設計也按當初要求的能夠在 PROTEUS中進行仿真,并且能夠很精確的 顯示年歷。由于平時沒有接觸過這兩個軟件,加上畢業(yè)設計的時間有限,對于他們的連接調(diào)試程序,未能熟練掌握,但以后有機會的話會再好好學習的。在此畢業(yè)設計完成之際,謹向?qū)熀退袔椭^我的老師致以崇高的敬意和衷心的感謝。i++)。 if((pinpamp。(1io))) bflag=l。 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。i4; i++)// get the first 4 bits { TmpByte=0; if((pinpamp。//R_Byte=1。(1io))) { TmpByte=1; TmpByte=0x80; } // TmpByte=7; R_Byte2=(R_Byte21);// R_Byte2=l; R_Byte2 |=TmpByte。 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_clear_rw(); lcd_set_rs(); lcd_send(c); } void outtext(unsigned char*text) 第 35 頁 共 50 頁 35 { unsigned char i; for(i=0。BIT3: LCD_OP_PORT=(CMD & 0xf0)| temp; lcd_clear_rw(); lcd_clear_rs(); lcd_set_e(); asm(”nop”); asm(”nop”); lcd_clear_e(); LCD_OP_PORT=(CMD4)|temp; 第 37 頁 共 50 頁 37 lcd_clear_rw(); lcd_clear_rs(); lcd_set_e(); asm(”nop”)。 temp=tempamp。 lcd_clear_rw(); lcd_set_rs(); lcd_set_e(); asm(”nop”); asm(”nop”); lcd_clear_e(); } // *********************************// // ***初始化液晶 ***// // *********************************// void Init_LCD(void) { LCD_INIT()。 default: break; } } // **************************// // ***打開光標 ***// // **************************// void LCD_Cursor_On(void) { LCD_WriteControl(LCD_CURS_ON); } // ***************************// // ***關(guān)閉光標 ***// // ***************************// void LCD_Cursor_Off(void) { LCD_WriteControl(LCD_ON); // ********************// // ***關(guān)閉 LCD***// // *************殺 ******// void LCD_Display_Off(void) { LCD_WriteControl(LCD_OFF); } // *******************// // ***打開 LCD***// // ******************// void LCD_Display_On(void) { LCD_WriteControl(LCD_ON); } MAIN. C include”includes. h” define WDR() asm(”wdr”) unsigned char alarm _1_set, alarm_2_set, alarm_3_set; __flash unsigned char test[ ]=”DSl302 time is: ”; void main(void) { 第 40 頁 共 50 頁 40 unsigned char hour, min, sec; unsigned char date, month。 while(1) { sec =readbyte(sec_r); //讀秒 min =readbyte(min_r); //讀分 hour =readbyte(hour_r); //讀小時 month =readbyte(month_r); date =readbyte(date_r); WDR(); LCD_DisplayString_F(1, 1, test); if(flag) { LCD_Cursor(2, 1); LCD_DisplayCharacter(~+hour/ 10); LCD_DisplayCharacter(~+hour% lO); LCD_DisplayCharacter(’:, ); WDR(); LCD_DisplayCharacter(~+m~/ 10)} LCD_DisplayCharacter(~+min% 10); LCD_DisplayCharacte
點擊復制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1