




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。(4)P3口介紹P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口。復(fù)位系統(tǒng)(5)上電復(fù)位電路AT89C51的上電復(fù)位電路如圖4.2所示,只要在RST復(fù)位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。對于CMOS型單片機(jī),由于在RST端內(nèi)部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1μF。上電復(fù)位的工作過程是在加電時,復(fù)位電路通過電
容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST端的高電平信號必須維持足夠長的時間。上電時,Vcc的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在如圖的復(fù)位電路中,當(dāng)Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個負(fù)電壓將不會對器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時得不到有效的復(fù)位,則程序計數(shù)器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執(zhí)行程序。圖4.2上電復(fù)位電路(6)手動復(fù)位電路手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。如圖4-3所示,當(dāng)人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復(fù)位的電路如所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時間要求。圖4.3手動復(fù)位電路(7)晶振系統(tǒng)晶振是給單片機(jī)提供工作信號脈沖的.這個脈沖就是單片機(jī)的工作速度.比如12M晶振.單片機(jī)工作速度就是每秒12M.單片機(jī)內(nèi)部也有晶振,接外部晶振可以或得更穩(wěn)定的頻率。因為晶振與單片機(jī)的腳XTAL0和腳XTAL1構(gòu)成的振蕩電路中會產(chǎn)生偕波(也就是不希望存在的其他頻率的波),這個波電路的影響不大,但會降低電路的時鐘振蕩器的穩(wěn)定性,如圖4.4所示。80C51型單片機(jī)內(nèi)有一高增益反相放大器,按如圖連接可構(gòu)成自激振蕩電路,振蕩頻率取決于石英晶體的振蕩頻率,范圍可取1.2—12MHz,C01.C02主要起頻率微調(diào)和穩(wěn)定作用,電容值可取5—30Pf。圖4.4晶振電路4.3.2控制電路介紹(1)按鍵機(jī)械式按鍵再按下或釋放時,由于機(jī)械彈性作用的影響,通常伴隨有一定時間的觸點機(jī)械抖動,然后其觸點才穩(wěn)定下來。抖動時間的長短與開關(guān)的機(jī)械特性有關(guān),一般為5~10ms,如圖4.5所示。圖4.5按鍵控制電路(2)LED電路LED顯示器具有功耗低,接口控制方便等優(yōu)點,能直接與單片機(jī)接口,可方便地實現(xiàn)各種不同的操作。16個發(fā)光二極管L1-L16分別接在單片機(jī)P0.0-P0.7,P2.0-P2.7。輸出“0”,發(fā)光二極管亮。圖4.6LED顯示電路4.3.3Proteus電路仿真圖圖4.7電路原理圖4.4軟件設(shè)計4.4.1程序流程圖開始開始讀入四個開關(guān)狀態(tài)判斷開關(guān)狀態(tài)燈依次向下移動、單、雙數(shù)燈亮向中間亮循環(huán)前面三種無輸入圖4.9主程序流程圖在主程序中,應(yīng)該盡量的使得任務(wù)簡化,不要讓中斷服務(wù)程序作過多復(fù)雜的任務(wù),而要盡量把這些復(fù)雜的任務(wù)放到主程序中間去完成。中斷流程如圖所示。去抖功能:讀入鍵值,存入地址,然后延遲10ms后,也就是一個很短的時間之后,再次讀入一個鍵值,兩次鍵值相比較,如果一樣則不是因為外部原因抖動產(chǎn)生按鍵,如果不一樣則說明是別的原因產(chǎn)生的按鍵抖動。這樣的一個程序就可以去除因為抖動產(chǎn)生的錯誤輸入信號。4.4.2軟件程序及分析(1)主要程序分析:#include<reg51.h>//定義8051寄存器的頭文件#include<intrins.h>//定義intrins.h函數(shù)#include<math.h>//定義數(shù)學(xué)函數(shù)#include<stdio.h>#defineu8unsignedchar//定義無符號字符#defines8signedchar#defineu16unsignedshort//定義無符號整型#defines16signedshort#defineu32unsignedint//定于無符號整型#defines32signedint#definefp32float//定義浮點數(shù)#definefp64double//雙倍精度浮點數(shù)#defineINT8Uunsignedchar#defineINT16UunsignedintsbitK1=P1^0;//按鍵1sbitK2=P1^1;//按鍵2sbitK3=P1^2;//按鍵3sbitK4=P1^3;//按鍵4#defineKEY_CHK_TIM10//按鍵檢測時間u8__g_key_value;//獲取到按鍵的值跑馬燈數(shù)組:codeu16dispcode[16]={ 0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff, 0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f};雙流水燈數(shù)組:codeu16dispcode1[16]={ 0xfe7f,0xfc3f,0xf81f,0xf00f,0xe007,0xc003,0x8001,0x0000, 0x7ffe,0x3ffc,0x1ff8,0x0ff0,0x07e0,0x03c0,0x0180,0x0000};定時器初始化函數(shù):voidtime_init(void){ TMOD|=0x01; TH0=0xf8; TL0=0x2f;//設(shè)定定時器初值(65535-63535)大約60msTR0=1;//打開定時器 ET0=1;//開中斷 EA=1; ES=1; }(2)跑馬燈運行方式:voiddisp0(void)//調(diào)用前面的跑馬燈數(shù)組{ u8i;//定義i for(i=0;i<16;i++) { P0=dispcode[i]>>8;//P0口運行第二行數(shù)組 P2=dispcode[i];//P1口運行第一行數(shù)組 delay_ms(100);//延時100ms }}(3)鴛鴦燈運行方式:voiddisp1(void){ delay_ms(100);//延時100ms P0=0xaa;//P0口8個LED單數(shù)亮 P2=0xaa;//P0口8個LED燈亮 delay_ms(100); P0=0x55;//雙數(shù)燈亮 P2=0x55;//雙數(shù)燈亮 delay_ms(100);//延時100ms}(4)雙流水燈運行方式:voiddisp2(void){ u8i; for(i=0;i<8;i++) { P0=dispcode1[i]>>8;//P0口運行第二行數(shù)組,逐個點亮,向中間 P2=dispcode1[i];//P2口運行第一行數(shù)組,逐個點亮,向中間 delay_ms(100); } for(i=8;i<16;i++) { P0=dispcode1[i]>>8;//向兩邊亮 P2=dispcode1[i];//向兩邊亮 delay_ms(100);//延時100ms }}(5)按鍵掃描函數(shù):voidkey_scan(void){static u16 k1_pre_kep_tim=0;//k1按鍵按下保持時間static u8 k1_press_flag=0;//k1按鍵按下標(biāo)志static u8 k1_short_press_flag=0;//k1短按觸發(fā)標(biāo)志static u16 k2_pre_kep_tim=0;//k2按鍵按下保持時間static u8 k2_press_flag=0;//k2按鍵按下標(biāo)志static u8 k2_pre_ctn_tim=0;//按鍵連續(xù)觸發(fā)的間隔延時計數(shù)static u16 k3_pre_kep_tim=0;//k3按鍵按下保持時間static u8 k3_press_flag=0;//k3按鍵按下標(biāo)志static u8 k3_pre_ctn_tim=0;//k1短按觸發(fā)標(biāo)志static u16 k4_pre_kep_tim=0;//k4按鍵按下保持時間static u8 k4_press_flag=0;//k4按鍵按下標(biāo)志if(K1==1)//當(dāng)按鍵松開為真{ k1_pre_kep_tim=0;//k1按鍵按下保持時間清零 k1_press_flag=0;//k1按鍵按下標(biāo)志清零if(k1_short_press_flag==1)//短按標(biāo)志為1{ k1_short_press_flag=0;//短按標(biāo)志清零 __g_key_value=1;//觸發(fā)1號短按鍵 } }elseif(k1_press_flag==0){ k1_pre_kep_tim++;//累加定時中斷次數(shù)if(k1_pre_kep_tim>KEY_CHK_TIM){ k1_short_press_flag=1;//短按標(biāo)志置1 }if(k1_pre_kep_tim>300){ k1_pre_kep_tim=0;//中斷計數(shù)清零 k1_short_press_flag=0;//清除按鍵短按的有效標(biāo)志 k1_press_flag=1;//自鎖按鍵置位,避免一直觸發(fā) __g_key_value=11;//觸發(fā)長按 }(6)主程序:if(con_f==1){ disp0();//只運行跑馬燈 }if(con_f==2){ disp1();//只運行鴛鴦燈 }if(con_f==3){ disp2();//只運行雙流水 }if(con_f==4){ disp0();//循環(huán)以上三種 disp1(); disp2(); } }}五、組裝調(diào)試5.1硬件硬件包括MCS-51單片機(jī),LED發(fā)光二極管,晶振,電容,開關(guān),電源,電阻及導(dǎo)線。將所有硬件配齊,按電路原理圖組裝好電路,在電路板上一一對應(yīng),所有硬件準(zhǔn)備就緒后,接通電源,軟硬結(jié)合。首先用燒錄軟件給單片機(jī)芯片加載*.hex文件,等待加載完畢,運行電路。當(dāng)按下K1時,跑馬燈開始,16個LED燈從上到下逐個點亮,第一個燈亮,然后滅,然后每個間隔時間為100ms;當(dāng)按下K2時,鴛鴦燈開始,16個LED燈先單數(shù)亮,然后雙數(shù)亮,間隔時間也是100ms;當(dāng)K3按下時,雙流水燈開始,16個LED燈依次往中間移動,然后再依次往外移動,亮過的燈不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書字體標(biāo)準(zhǔn)
- 合同范本美容美發(fā)
- 傳媒影視合同范本
- 和移動合作合同范本
- 兼職寶潔勞務(wù)合同范本
- 含油銅軸承采購合同范例
- 知識產(chǎn)權(quán)保護(hù)高地建設(shè)的實踐步驟與部署
- 品牌冠名合作合同范本
- 合作投資入股合同范本
- 加快建設(shè)知識產(chǎn)權(quán)保護(hù)高地的戰(zhàn)略規(guī)劃
- 大模型落地應(yīng)用實踐方案
- 售后服務(wù)組織結(jié)構(gòu)及崗位職責(zé)
- 2025年鞍鋼集團(tuán)招聘筆試參考題庫含答案解析
- 人文社科類橫向課題技術(shù)服務(wù)合同5篇
- 網(wǎng)絡(luò)工程師(軟考)考試(重點)題庫300題(含答案解析)
- 統(tǒng)編版八年級語文上冊第六單元作業(yè)設(shè)計
- 中建通風(fēng)與空調(diào)施工方案
- 2024-2025年江蘇專轉(zhuǎn)本英語歷年真題(含答案)
- 永磁滾筒設(shè)備操作規(guī)程
- 2024解析:第五章透鏡及其應(yīng)用-講核心(解析版)
- 《子宮肉瘤》課件
評論
0/150
提交評論