版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)編程培訓(xùn)(可用C語(yǔ)言/匯編語(yǔ)言)要求:每周做一個(gè)實(shí)驗(yàn)(共六周),做完后要寫(xiě)好實(shí)驗(yàn)總結(jié)(側(cè)重于對(duì)實(shí)驗(yàn)內(nèi)容的認(rèn)識(shí)與心得)并提交。實(shí)驗(yàn)有用編程軟件(如KEIL)做,然后用仿真軟件(如proteus)或單片機(jī)(如情況允許)調(diào)試仿真;實(shí)驗(yàn)要自己獨(dú)立完成,可參考一些例程。I/0口控控制:PP1口接接八個(gè)獨(dú)獨(dú)立按鍵鍵,P33口接八八個(gè)LEED燈。當(dāng)當(dāng)P1口口有按鍵鍵按下時(shí)時(shí),P33口對(duì)應(yīng)應(yīng)的燈亮亮。流水燈:循循環(huán)控制制八個(gè)LLED燈燈。數(shù)碼管動(dòng)態(tài)態(tài)掃描::八個(gè)數(shù)數(shù)碼管,每每位顯示示不同的的數(shù)字。獨(dú)立按鍵與與數(shù)碼管管顯示::對(duì)若干干個(gè)獨(dú)立立按鍵賦賦予不同同的數(shù)值值,當(dāng)鍵鍵盤(pán)按下下時(shí),數(shù)數(shù)碼管顯顯示數(shù)字字。矩陣鍵盤(pán)::掌握行行列掃描描方法,和和去抖方方法;定時(shí)器/中中斷:主程序:自自己設(shè)計(jì)計(jì)(如點(diǎn)點(diǎn)亮LEED1燈);;定時(shí)器0中中斷程序序:自己己設(shè)計(jì)(如如主程序序的LEED1燈熄滅滅,點(diǎn)亮亮另外一一盞LEED2燈燈。);要求中斷過(guò)過(guò)后(LLED22燈滅),主主程序正正常執(zhí)行行(LEED1燈燈亮);;02.點(diǎn)亮亮P1口口的一個(gè)個(gè)燈03.IIO口信信號(hào)輸入入whilee(11){P1==P3;;}04.IOO讀寫(xiě)操操作程序序按下P3口口的按鍵鍵,P11顯示相相應(yīng)的位位置#iinclludee<reeg522.h>>sbitKEYY=P3^^0;///定義義按鍵的的接口sbitLEDD=P1^^0;///定義義燈的接接口voidmaiin((voiid){P1=0xFFF;///所有的的燈滅whilee(11){LEDD=KEYY;///燈的的狀態(tài)由由按鍵的的狀態(tài)決決定}}05.流水水燈#inclludee<reeg522.h>>voiddellay((unssignnedinttcnnt){whille(---cnnt);;}main((){P1=00xfee;//給給初始化化值換換算成二二進(jìn)制是是11111111100whille(11){ ddelaay(330000);///延時(shí)時(shí)程序 PP1<<<=1;;//左左移一位位該語(yǔ)語(yǔ)句等效效于PP1=PP1<<<1 PP1|==0x001;//最最后一位位補(bǔ)1,該該語(yǔ)句等等效于P1==P1||0x001符符號(hào)"||"表示示"或"" iif(PP1===0x77f)//檢檢測(cè)是否否移到最最左端??"==="表示示檢測(cè)符符號(hào)2端端的值是是否相等等{{ dellay((300000)); P1==0xffe;//重重新賦值值}}}}06.//按下PP3口的的按鍵,PP1顯示示相應(yīng)的的位置,IIO讀寫(xiě)寫(xiě)操作程程序sfrPP1==0xx90;;/**SFFRddefiinittionnfoorPPortt1*/sfrPP3==0xxB0;;/**SFFRddefiinittionnfoorPPortt3*/voidmaiin((voiid){unsiggneddchharpvaal;P1=0xFFF;whilee(11){pvaal==P33;/**ReeadP1inttoppvall*//P1=ppvall;/**WrriteepvvaltoP3*/}}08.數(shù)碼碼管動(dòng)態(tài)態(tài)掃描#inclludee<reeg522.h>>Unsiggneddchharconnstdoffly[[]={{0x33f,00x066,0xx5b,,0x44f,00x666,0xx6d,,0x77d,00x077,0xx7f,00x6ff};///顯顯示段碼碼值01123445677unsiggneddchharcoddesseg[[]={{0,11,2,,3,44,5,,6,77};///分別別對(duì)應(yīng)相相應(yīng)的數(shù)數(shù)碼管點(diǎn)點(diǎn)亮,即即位碼voiddellay((unssignnedinttcnnt){whille(---cnnt);;}main((){unsiigneedccharri;;whille(11){PP0=ddoflly[ii];///取顯顯示數(shù)據(jù)據(jù),段碼碼 PP2=sseg[[i];;///取位位碼 ddelaay(2200));///掃描描間隙延延時(shí),時(shí)時(shí)間太長(zhǎng)長(zhǎng)會(huì)閃爍爍,太短短會(huì)造成成重影 ii++;; iif(88==ii)///檢測(cè)測(cè)8位掃掃描完全全? i==0;}}11.獨(dú)立立按鍵內(nèi)容::切換到到獨(dú)立按按鍵模式式,通過(guò)過(guò)按鍵在在數(shù)碼管管顯示對(duì)對(duì)應(yīng)的數(shù)數(shù)字#inclludee<reeg522.h>>sbitkeyy1=PP3^00;///定義按按鍵位置置sbitkeyy2=PP3^11;sbitkeyy3=PP3^22;sbitkeyy4=PP3^33;voiddellay((unssignnedinttcnnt){whille(---cnnt);;}main((){P2=00x000;whille(11){iff(!kkey11)//按按下相應(yīng)應(yīng)的按鍵鍵,數(shù)碼碼管顯示示相應(yīng)的的碼值 P00=0xx06;;//數(shù)數(shù)碼管顯顯示"11" iff(!kkey22) P00=0xx5B;;//22 iff(!kkey33) P00=0xx4F;///3 iff(!kkey44) P00=0xx66;;//44}}//如果有有干擾請(qǐng)請(qǐng)加去抖抖程序//紅外接接收頭部部分用黑黑色物質(zhì)質(zhì)遮光,防防止干擾擾按鍵,因因?yàn)榧t外外接收和和按鍵使使用同一一個(gè)端口口15.去抖抖獨(dú)立按鍵#inclludee<reeg522.h>>sbiitkkey11=P33^0;;//定定義按鍵鍵位置sbitkeyy2=PP3^11;sbitkeyy3=PP3^22;sbitkeyy4=PP3^33;voiddellay((unssignnedinttcnnt){whille(---cnnt);;}main((){P2=00x000;whille(11){iff(!kkey11){///按下相相應(yīng)的按按鍵,數(shù)數(shù)碼管顯顯示相應(yīng)應(yīng)的碼值值deelayy(10000));iff(!kkey11){{ P0==0x006;///數(shù)碼碼管顯示示"1""} }iff(!kkey22){///按下相相應(yīng)的按按鍵,數(shù)數(shù)碼管顯顯示相應(yīng)應(yīng)的碼值值deelayy(10000));///去抖動(dòng)動(dòng)iff(!kkey22)///檢測(cè)按按鍵確實(shí)實(shí)按下,進(jìn)進(jìn)行按鍵鍵處理{ P0==0x55B;///數(shù)碼碼管顯示示"2"" //這這里可以以添加按按鍵按下下所需要要的操作作,如數(shù)數(shù)據(jù)加減減乘除,蜂蜂鳴器等等設(shè)備開(kāi)開(kāi)關(guān)}} }}iff(!kkey33){///按下相相應(yīng)的按按鍵,數(shù)數(shù)碼管顯顯示相應(yīng)應(yīng)的碼值值deelayy(10000));iff(!kkey33){ P0==0x44F;///數(shù)碼碼管顯示示"3"" } }}iff(!kkey44){///按下相相應(yīng)的按按鍵,數(shù)數(shù)碼管顯顯示相應(yīng)應(yīng)的碼值值deelayy(10000));iff(!kkey44){ P0==0x666;///數(shù)碼碼管顯示示"4""}}}}矩陣鍵盤(pán)//行列掃掃描程序序,可以以自己定定義端口口和掃描描方式,這這里做簡(jiǎn)簡(jiǎn)單介紹紹#inclludee<rreg552.hh>///包含頭頭文件#defiineuchharunssignnedchaar#defiineuinntunssignnedinttunsiggneddchharconnstdoffly[[]={{0x33f,00x066,0xx5b,,0x44f,00x666,0xx6d,,0x77d,00x077,0xx7f,00x6ff, 0xx77,,0x77c,00x399,0xx5e,,0x779,00x711};///0--Fucharrkeeysccan((voiid);;voiddellay((uinntii);voidmaiin()){uchaarkkey;;P2=00x000;///1數(shù)碼碼管亮按相應(yīng)應(yīng)的按鍵鍵,會(huì)顯顯示按鍵鍵上的字字符whille(11){key==keyyscaan());///調(diào)用鍵鍵盤(pán)掃描描,swittch((keyy){casse00x7ee:P00=dooflyy[0]];brreakk;///0按按下相應(yīng)應(yīng)的鍵顯顯示相對(duì)對(duì)應(yīng)的碼碼值casse00x7dd:P00=dooflyy[1]];brreakk;///1casse00x7bb:P00=dooflyy[2]];brreakk;///2casse00x777:P00=dooflyy[3]];brreakk;///3casse00xbee:P00=dooflyy[4]];brreakk;///4casse00xbdd:P00=dooflyy[5]];brreakk;///5casse00xbbb:P00=dooflyy[6]];brreakk;///6casse00xb77:P00=dooflyy[7]];brreakk;///7casse00xdee:P00=dooflyy[8]];brreakk;///8casse00xddd:P00=dooflyy[9]];brreakk;///9casse00xdbb:P00=dooflyy[100];bbreaak;///acasse00xd77:P00=dooflyy[111];bbreaak;///bcasse00xeee:P00=dooflyy[122];bbreaak;///ccasse00xedd:P00=dooflyy[133];bbreaak;///dcasse00xebb:P00=dooflyy[144];bbreaak;///ecasse00xe77:P00=dooflyy[155];bbreaak;///f}}}ucharrkeeysccan((voiid)///鍵盤(pán)盤(pán)掃描函函數(shù),使使用行列列反轉(zhuǎn)掃掃描法{uchaarccordd_h,,corrd_ll;///行列值值P3=00x0ff;///行線輸輸出全為為0cordd_h==P3&&0x00f;///讀入列列線值if(ccordd_h!!=0xx0f)//先先檢測(cè)有有無(wú)按鍵鍵按下{dellay((1000);///去抖if((corrd_hh!=00x0ff){ccordd_h==P3&&0x00f;///讀入列列線值PP3=ccordd_h||0xff0;///輸出當(dāng)當(dāng)前列線線值ccordd_l==P3&&0xff0;///讀入行行線值rretuurn((corrd_hh+coord__l);;//鍵鍵盤(pán)最后后組合碼碼值}}reeturrn(00xfff);///返回該該值}voiddellay((uinntii)///延時(shí)函函數(shù){whilee(i---);;}16.定時(shí)時(shí)器0*ThisssaamplleiisuuseddfoorTTimeer016bbittimmermodde.#inclludee<reeg522.h>>sbitLEDD=P11^2;;voidIniit_TTimeer0((voiid){TMODD|==0xx01;; TH0==0x000; /**Innitvallue*/TL0==0x000;EA=11;//*iinteeruppteenabble*/ET0=11;//*eenabbletimmer00innterrruppt**/TR0==1;}main((){Initt_Tiimerr0());whille(11);}voidTimmer00_issr(vvoidd)iinteerruupt1uusinng11{TH0==0x000; /*Iniitvvaluue**/TL0==0x000;LED==~LEED;///指示示燈反相相}17.定時(shí)時(shí)器1*ThiisssamppleisuseedfforTimmer11166bitttiimerrmoode..#inclludee<reeg522.h>>sbitLEDD=P11^2;;voidIniit_TTimeer1((voiid){TMODD|==0xx10;; TH1==0x000; /*Iniitvvaluue**/TL1==0x000;EA=11;/*intteruuptenaablee*//ET1=11;//*eenabbletimmer11innterrruppt**/TR1==1;}main((){Initt_Tiimerr1());whille(11);}voidTimmer11_issr(vvoidd)iinteerruupt3uusinng11{TH1==0x000; /*Iniitvvaluue**/TL1==0x000;LED==~LEED;}20.外部中斷00電平觸觸發(fā)內(nèi)容::通過(guò)中中斷接口口P3..2連接接的獨(dú)立立按鍵測(cè)測(cè)試,按按一次PP1口的的LEDD燈反向向,這里使使用電平平觸發(fā),所所以一直直按鍵不不松開(kāi)和和一次按按鍵效果果不相同同,按下下會(huì)看到到燈全部部亮,說(shuō)明中中斷一直直在作用用#inclludee<reeg522.h>>main((){P1==0x555;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)新生培訓(xùn)
- 單元2《Spring框架IoC編程》測(cè)試試卷及答案
- 養(yǎng)老院老人生活照料標(biāo)準(zhǔn)制度
- 養(yǎng)老院老人健康監(jiān)測(cè)人員行為規(guī)范制度
- 養(yǎng)老院安全防護(hù)制度
- 養(yǎng)老院健康檢查與疾病預(yù)防制度
- 2024年湖北省武漢市中考化學(xué)真題及答案解析
- 2026年起重機(jī)械電氣安裝維修工考試題庫(kù)含答案
- 2026年國(guó)際武力使用準(zhǔn)則借鑒試題含答案
- 2026年呼吸科醫(yī)患溝通技巧問(wèn)答含答案
- 紅樓夢(mèng)第9回講解
- 研修平臺(tái)活動(dòng)方案
- 抽汽背壓汽輪機(jī)課件
- 年產(chǎn)100萬(wàn)噸水泥生產(chǎn)線建設(shè)工程可行性研究報(bào)告
- 【政治】2025年高考真題政治-海南卷(解析版-1)
- 建筑業(yè)有效標(biāo)準(zhǔn)規(guī)范清單(2025年9月)
- 個(gè)人形象塑造與提升策略分享
- 新疆紫金鋅業(yè)有限公司烏拉根鋅礦25000t-d采礦工程環(huán)評(píng)報(bào)告
- 下班斷電管理制度
- 中信證券筆試題庫(kù)及答案
- 人教版七年級(jí)地理上冊(cè)教案(全冊(cè))
評(píng)論
0/150
提交評(píng)論