


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗 4:按鍵掃描+8 種 LED 亮滅模式控制(GCC)筆記:htt/一、程序結(jié)構(gòu)二、仿真效果三、程序源碼1、main.c/* Platform : AVR mega16 學習板()Project Clock F Software Author VerUpdata:實驗四:按鍵掃描+8 種 LED 亮滅模式控制 GCC 3.6864MWinAVR-20071221+Proteus7.4依然08.11.2209.02.2509.04.3009.07.21模塊化增加 proteus 仿真模型,修改 key_scan.c 檢測程序,仿真通過WinAVR-20071221 環(huán)境下編譯通過commen
2、ts:1、以學習板八個 LED 燈和八個按鍵為硬件電路,JP7 短路塊需裝上2、AVR 單片機端口寄存器的使用及理解3、練習程序模塊化,結(jié)構(gòu)化的書寫4、端口電平檢測程序的編寫方法5、8 種 LED 點亮模式由對應的 KEY 鍵選擇,同時按下多個鍵時,LED 點亮模式不會循環(huán)進行,詳見仿真。原因為:盡管 key_scan.c 采用循環(huán)判斷方式,但采用了狀態(tài)處理程序6、增加狀態(tài)處理,防止運行選定 LED 模式序時按下其他按鍵7、使用 GCC delay.h 頭文件中延時函數(shù),更換 io 頭文件Problem :1、ICC 中 DelayMs()函數(shù)在 GCC 中不可用,不知何因。*/#includ
3、e#include #includeport_init.h key_scan.hmain(void)port_init(); while (1)key_scan();/MCUCR=0 x40;/MCUCR=0 x50;/MCUCR=0 x60;/MCUCR=0 x70;/MCUCR=0 xE0; MCUCR=0 xF0;asm(sleep);/空閑模式,CPU 占用 100%/ADC 噪聲抑制模式,CPU 占用 100%/掉電模式,CPU 占用 80%/省電模式,CPU 占用 4%/Standby 模式,CPU 占用 80%/擴展 Standby 模式,CPU 占用 4%/CPU 休眠指令2、
4、key_scan.c#include #include#include key_scan.hled.h/*鍵盤掃描函數(shù)*/ void key_scan(void)l,m,n,o,p,q,r,s,i;if(PINA&(1PA0)=0)PORTB=0XFF;for(l=0;l5;l+)for (i = 0; i LED_01(i);LED_off();/關(guān)閉 LED/模式 1:順序點亮8;i+)/順序單個點亮 LED0;i-)/逆序單個點亮 LEDwhilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA1)=0)PORTB=0XFF;for(m=0;m5;m+)
5、for (i = 0; i 0; LED_01(i);LED_off();/關(guān)閉 LEDi-=2) /逆序間隔點亮 LEDwhilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA2)=0)/模式 3:間隔點亮PORTB=0XFF;for(n=0;n5;n+)for (i = 2; i LED_02(i);LED_off();/關(guān)閉 LED8;i+)/間隔順序同時點亮2;i-)/間隔逆序同時點亮whilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA3)=0)PORTB=0XFF;for(o=0;o5;o+)/模式 4:相臨
6、點亮for (i = 1; i LED_03(i);8;i+)/相臨順序同時點亮1;i-)/相臨逆序同時點亮LED_off();/關(guān)閉 LEDwhilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA4)=0)PORTB=0XFF;for(p=0;p5;p+)for(i=0;i0;i-) LED_04(i);LED_off();/關(guān)閉 LED/模式 5:發(fā)散點亮/發(fā)散點亮/點亮whilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA5)=0)PORTB=0XFF;for(q=0;q5;q+)for(i=0;i0;i-) LE
7、D_05(i);LED_off();/關(guān)閉 LED/模式四點亮/四四順序點亮/四四逆序點亮whilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA6)=0)PORTB=0XFF;for(r=0;r5;r+)for(i=0;i2;i+) LED_06(i);LED_off();/關(guān)閉 LED/模式 7:四四點亮/四四順序點亮whilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵if(PINA&(1PA7)=0)PORTB=0XFF;for(s=0;s5;s+)LED_on(); LED_off();LED_off();/關(guān)閉 LED/模式 8:全
8、部點亮熄滅whilNA!=0XFF);/狀態(tài)處理,防止運行此程序時按下其他按鍵3、led.c/*Platform function Clock F Software Author Vercomments: AVR mega16 學習板():功能函數(shù)集:3.6864MWinAVR-20071221依然09.07.20*/#include #include#include led.hvoid LED_on(void)PORTB =0X00;_delay_ms(100);/打開所有 LEDvoid LED_off(void)PORTB = 0 xFF;_delay_ms(100);/關(guān)閉所有 LED
9、void LED_01(i)/LED 亮滅控制PORTB = _BV(i);_delay_ms(100);/輸出低電平/調(diào)用延時程序void LED_02(i)/間隔點亮PORTB=(_BV(i)|_BV(i-2);_delay_ms(100);void LED_03(i)/相臨點亮PORTB=(_BV(i)|_BV(i-1);/后內(nèi)容需用括號括起來_delay_ms(100);void LED_04(switch(i)i)/發(fā)散點亮case case casecase0:PORTB=0 xE7;_delay_ms(100);break; 1:PORTB=0 xDB;_delay_ms(100
10、);break; 2:PORTB=0 xBD;_delay_ms(100);break;3:PORTB=0 x7E;_delay_ms(100);break;/延時 100msdefault:break;void LED_05(switch(i)i)/00,0F,F0,FF 方式顯示case case casecase0:PORTB=0 x00;_delay_ms(100);break; 1:PORTB=0 x0F;_delay_ms(100);break; 2:PORTB=0 xF0;_delay_ms(100);break;3:PORTB=0 xFF;_delay_ms(100);brea
11、k;/延時 100msdefault:break;void LED_06(switch(i)i)case 0:PORTB=0XAA;_delay_ms(100);break; case 1:PORTB=0X55;_delay_ms(100);break;4、port_init.c#include #include port_init.h/*端口初始化函數(shù)*/ void port_init(void)DDRA =0X00; PORTA=0XFF;DDRB =0 xFF; PORTB=0 xFF;DDRC =0X00; PORTC=0XFF; DDRD =0X00; PORTD=0XFF;/端口上拉輸入/端口輸出/輸出,LED 熄滅5、key_scan.hvoid key_scan(void);6、led.hvoid void void vo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理經(jīng)銷合同代銷合同和經(jīng)銷合同
- 材料設(shè)備采購合同
- 高端酒店預訂服務(wù)協(xié)議
- 人工費承包合同(12篇)
- 承包荒山荒地協(xié)議書
- 砂石采購的合同
- 旅游出行行業(yè)意外傷害保險免責協(xié)議
- 企業(yè)績效評估與改進方案
- 房地產(chǎn)項目投資合作合同
- 房地產(chǎn)居間合同正式
- 2025年中國國投高新產(chǎn)業(yè)投資集團招聘筆試參考題庫含答案解析
- 部編(統(tǒng)編)版語文+四下第四單元教材解讀課件
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計改
- GA/T 1133-2014基于視頻圖像的車輛行駛速度技術(shù)鑒定
- 北師大版五年級數(shù)學下冊導學案全冊
- 成都嘉祥外國語學校獎學金考試數(shù)學試卷
- 臺球俱樂部助教制度及待遇
- 醫(yī)師聘用證明.doc
- 理論力學課件00796
- CJJ_215-2014城鎮(zhèn)燃氣管網(wǎng)泄漏檢測技術(shù)規(guī)程
- 生物降解塑料項目可行性研究報告立項申請
評論
0/150
提交評論