//51寄存器定義#include"intrins.h"#definecontrolP1//P1_0:A相,P1_1:B相,P1_2:C相,P1_3:D相#definediscodeP0/">
C語(yǔ)言程序源代碼.doc

C語(yǔ)言程序源代碼.doc

ID:58819819

大小:36.50 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2020-10-25

C語(yǔ)言程序源代碼.doc_第1頁(yè)
C語(yǔ)言程序源代碼.doc_第2頁(yè)
C語(yǔ)言程序源代碼.doc_第3頁(yè)
C語(yǔ)言程序源代碼.doc_第4頁(yè)
C語(yǔ)言程序源代碼.doc_第5頁(yè)
資源描述:

《C語(yǔ)言程序源代碼.doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、C語(yǔ)言程序源代碼#include//51寄存器定義#include"intrins.h"#definecontrolP1//P1_0:A相,P1_1:B相,P1_2:C相,P1_3:D相#definediscodeP0//顯示代碼控制端口#defineucharunsignedchar//定義無(wú)符號(hào)型變量#defineuintunsignedintsbiten_dm=P3^0;//顯示代碼鎖存控制sbiten_wk=P3^1;//位控鎖存控制ucharcodecorotati

2、on[4]={0x03,0x06,0x0c,0x09};//電機(jī)正轉(zhuǎn)ucharcoderollback[4]={0x0c,0x06,0x03,0x09};//電機(jī)反轉(zhuǎn)ucharcodetab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示字段uintcodeLevspeed[5]={500,400,300,200,100};//電機(jī)速度等級(jí)ucharHscan,speedcount;//Hscan行掃描,speedcoun

3、t速度等級(jí)計(jì)數(shù)uintuu;//頻率計(jì)數(shù)uintstep,setstep;//step:電機(jī)步伐計(jì)數(shù),setstep:手動(dòng)設(shè)置電機(jī)步伐uintspeed=500;//電機(jī)初始速度ucharcount;ucharflag[5];ucharbutcount;//按鍵次數(shù)//****************************************//flag[0]正轉(zhuǎn)標(biāo)志//flag[1]反轉(zhuǎn)標(biāo)志//flag[2]加速標(biāo)志//flag[3]減速標(biāo)志//flag[4]設(shè)置標(biāo)志//********

4、********************************Delay1mS(unsignedinttt)//延時(shí)1ms“Delay1mS”延時(shí)子程序,用循環(huán)語(yǔ)句延時(shí)。{unsignedchari;while(tt--)for(i=113;i>0;i--);}keyscan()//鍵盤(pán)掃描“keyscan”鍵盤(pán)掃描子程序,用于尋找是否有按鍵按下。{P2=0xf0;//把oxfe賦值給P2口//將按鍵控制口置于未按鍵的狀態(tài).單片機(jī)輸出//口假設(shè)不是按鍵按下?tīng)顟B(tài).if(P2!=0xf0)//如果

5、P2口的值不等于0xfe//檢查是否有按鍵按下.如果有,處理{}內(nèi)的事{//有按鍵按下.Delay1mS(150);//調(diào)用延時(shí)函數(shù)//有按鍵按下,避開(kāi)無(wú)效讀碼值的時(shí)間.,或者是脈沖長(zhǎng)度Hscan=0xfe;//將Hscan賦值,初始遙控值是要置高電平的.P2=Hscan;//while((Hscan&0x10)!=0)//檢查X10口是否有鍵按下。未按下是1,//在這顯示出你的按鍵口是P2_4.即檢查P2_4是高電平,無(wú)//鍵按下,低電平有鍵按下。{P2=Hscan;if((P2&0xf0)!

6、=0xf0)//檢查按鍵脈沖是否是變化,returnP2;elseHscan=(Hscan<<1)

7、0x01;//這里在存碼值,應(yīng)該是遙控輸入。將碼值存入Hscan//這里是讀取碼值的關(guān)鍵,如果來(lái)的脈沖不管是高電平//還是低電平,靠左移一位保存脈沖的狀態(tài)值.}}elsereturn0;}key_val()//按鍵處理函數(shù)//這里是讀取將存好的碼值進(jìn)行處理.看是什么代碼值{ucharkey;key=keyscan();//這里是讀取碼值并存放在key里switch(key)//這里是對(duì)比讀取的碼值

8、{case0xee://按鍵‘7’//讀取的碼值=0xEE,則是按鍵“7”的代碼//while(P2==0xee);setstep=setstep*10+7;//步伐數(shù)//這里是輸入”setstep+7”步伐數(shù)對(duì)比讀取的碼值,//setstep原來(lái)可能是有數(shù)字的。step=setstep;butcount++;//計(jì)數(shù),看輸入拉幾個(gè)數(shù)字if(butcount>=5)//輸入的數(shù)字超過(guò)5個(gè)就置0,無(wú)效{butcount=0;setstep=0;}break;case0xde://按鍵‘8’//讀取

9、的碼值=0xdE,則是按鍵“8”的代碼//其他同”7”//while(P2==0xde);setstep=setstep*10+8;butcount++;step=setstep;if(butcount>=5){butcount=0;setstep=0;}break;case0xbe://按鍵‘9’//同上”7”//while(P2==0xbe);setstep=setstep*10+9;butcount++;step=setstep;if(butcount>=5){butcount=0;set

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。