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

正文內(nèi)容

基于單片機(jī)的紅外遙控系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)(文件)

2025-07-10 16:05 上一頁面

下一頁面
 

【正文】 啟動,停止,加速,減速。本設(shè)計(jì)完成結(jié)束,我提高了對STC89C52單片機(jī)的原理的認(rèn)識,鍛煉了C語言編程的能力,深刻理解了紅外編解碼的原理,以及步進(jìn)電機(jī)的原理。但是最大的不足是步進(jìn)電機(jī)的轉(zhuǎn)速不能任意設(shè)定,調(diào)速的范圍有限。62致 謝我的畢業(yè)設(shè)計(jì)從選題到設(shè)計(jì)完成的幾個月期間,得到了指導(dǎo)老師包建華的認(rèn)真指導(dǎo)。附錄 一:C51源代碼include /**************************宏定義**************************/define Maxrate 20//速度等級最大20級,define Minrate 1// 速度等級最小1級define uchar unsigned chardefine uint unsigned intsbit light1=P1^0。//左起1數(shù)碼管位選端sbit smg2=P1^5。//小數(shù)點(diǎn)位置,左3數(shù)碼管的dp位uchar receive_data[1] = {0}。//速度,每分鐘多少轉(zhuǎn),電機(jī)轉(zhuǎn)速revuint pedometer=0。//步進(jìn)電機(jī)轉(zhuǎn)動的方向0為正轉(zhuǎn),1為反轉(zhuǎn);啟動的時默認(rèn)是正轉(zhuǎn)uchar rate_grade=5。k 16。 /* 0 */case 1: p0=0xf9。 /* 2 */ case 3: p0=0xb0。 /* 4 */ case 5: p0=0x92。 /* 6 */ case 7: p0=0xF8。 /* 8 */ case 9: p0=0x90。 /* E */ default: break。 k=rev。 c=k %10。 delay(rate_grade)。 delay(rate_grade)。// smg3=0。 smg4=0。 a=rate_grade / 10。 smg1=0。 smg2=0。 smg3=0。 smg4=0。//顯示速度等級 } else { Disply_rev()。//T1波特率9600bps, TL1 = 0xfd。//開串行中斷 PS=1。// TL0 = 0x00。 ET0=1。 P2=0x03。 P2=0x06。 P2=0x0c。 P2=0x09。 Disply()。 Disply()。 Disply()。 Disply()。}/***************************函 數(shù):Handle參 數(shù): 返回值:無功 能:按鍵發(fā)送數(shù)據(jù)解碼后處理。//換一種顯示,0顯示等級,1顯示轉(zhuǎn)速 }break。 light3=1。 ET0=0。 case 0x18: //開關(guān)電機(jī)操作 { if(start_motor==0) //如果電機(jī)原來為不轉(zhuǎn)的 { start_motor=1。 yangshi(1000)。 pedometer=0。//滅 } }break; case 0x7a: //加速 { rate_grade。 //Disply_denji()。 //延時時間增加,速度變慢 if(rate_gradeMaxrate) rate_grade=Maxrate。//顯示等級 yangshi(1000)。//正轉(zhuǎn)方向 P2=0x00。 case 0x5a: //反轉(zhuǎn) { direction=1。 //電機(jī)需要延時一定的時間才行 light3=1; }break。= 176。//,因?yàn)槊?12個8拍等于360度,一步也就是1/512 pedometer=0。//定時器,串口的初始化,定時器1方式2,定時器0方式方式1,并啟動串口通信 for(i=0。//低電平亮 light2=~light2。//正轉(zhuǎn)燈亮 light2=1。//反轉(zhuǎn)燈亮 } pedometer++。//滅 Disply()。//暫時關(guān)閉中斷及計(jì)時 TH0 = 0x4c。46080 * (12/11059200) = = 50ms。 second++。//開啟定時器} /*********************************************函 數(shù):SerialInterrput功 能:串行口中斷參 數(shù):無返回值:無作 者:李燦鋒**********************************************/void Serial_Interrput(void) interrupt 4 { uchar j。j++) { while(RI==0)//RI接收中斷標(biāo)志,用RI置位表示一幀數(shù)據(jù)接收完畢,必須軟件清零 { n++。//把緩沖區(qū)的數(shù)據(jù)讀到receive_data[0]中去,SBUF串行口收發(fā)緩沖寄存器 }loop1: Handle()。//1838的信號輸出端接到P3^2。//計(jì)算時間的數(shù)值sbit light=P1^2。//接收16位數(shù)據(jù)碼及其校驗(yàn)反碼uchar Send_data。//允許串行口中斷}如下是解碼程序。 } } RI=0。 ES=0。 } ET0=1。//毫秒計(jì)數(shù)單位+1,加到20的時候表示50 * 20 = 1000ms = 1s if(milli_second%10==0) { light3=~light3。 //計(jì)數(shù)值重裝 /* (送初值)0x4c00 = 19456。參 數(shù):無返回值:無****************************************************/void Time0interrupt(void) interrupt 1 { ET0=0。//停止 light1=1。//反轉(zhuǎn),逆時針 light1=1。) //一直在這里循環(huán) { if(start_motor)// { if(direction==0)//direction = 0是正轉(zhuǎn),1反轉(zhuǎn) { clockwise()。i++) { delay(300)。 P2=0x00。/ 176。/64 = 176。 light3=0。 yangshi(1000)。 }break。 light3=0。 //電機(jī)需要延時一定的時間才行 light3=1; }break。 P2=0x00。//關(guān)閉定時器0的中斷 TR0=0。 start_motor=0。//時間初始化 ,啟動定時 } else //如果電機(jī)原來為轉(zhuǎn)的 { P2=0x00。//停止定時器0的定時50MS light3=1。//電機(jī)停止標(biāo)記 rev=0。 light3=0。 b=receive_data[0]。 Disply()。 Disply()。 Disply()。 Disply()。 P2=0x00。 P2=0x08。 P2=0x04。 P2=0x02。//開啟定時器0}/***************************函 數(shù):clockwise功 能:正轉(zhuǎn)參 數(shù):無返回值:無*****************************/void clockwise() //正轉(zhuǎn)子程序,順時針{ P2=0x01。// TL0 = 0x00。//定時中斷為低優(yōu)先級 TR1= 1。//smod 波特率加倍位是0 EA=1。 // 串行口工作在方式1,10位異步的接收和發(fā)送,波特率可變,//有定時器1控制 TMOD = 0x21。 smg4=1。 smg3=1。 smg2=1。 smg1=1。 if(direction==1) P0=0xbf。 smg4=1。 smg3=1。 P0=gain_code(b)。 P0=gain_code(a)。 else P0=0xff。 k=k % 100。}/******************************************函 數(shù):Disply_rev參 數(shù): 無返回值:無*******************************************/void Disply_rev()//顯示函數(shù){ uchar a,b,c。 /* 9 */ case 14: p0=0x86。 /* 7 */ case 8: p0=0x80。 /* 5 */ case 6: p0=0x82。 /* 3 */ case 4: p0=0x99。 /* 1 */ case 2: p0=0xa4。 switch (C) { case 0: p0=0xc0。//延時延時的申明/****************************************** 函數(shù)名:delay 功 能:延時 參 數(shù):t 返回值:無 ******************************************/void delay(uint a){ uint k。//步進(jìn)電機(jī)的標(biāo)記,是開啟,還是關(guān)閉=0,開啟=1bit show_model=0。//毫秒計(jì)數(shù)單位,20為一秒uchar second=0。//左起3數(shù)碼管位選端sbit smg4=P1^7。//反轉(zhuǎn)LED燈sbit light3=P1^2。在此,本人由衷的表示的感謝!在江蘇師范大學(xué)的4年,我學(xué)了很多專業(yè)知識和為人處世的道理,很感謝院里面老師的悉心指導(dǎo)和栽培。其次,我如果能用帶有LCD的顯示屏幕的遙控器(諸如家里空調(diào)的遙控器),能夠任意設(shè)定轉(zhuǎn)速,這樣的紅外遙控系統(tǒng)有更好的人機(jī)界面和用戶體驗(yàn)。在本設(shè)計(jì)中我學(xué)到了很實(shí)用的技術(shù),為以后的工作積累寶貴經(jīng)驗(yàn)。這個設(shè)計(jì)很有實(shí)際意義的,首先紅外遙控如今已被廣泛,它不需要實(shí)體連線,體積小,成本低,功能強(qiáng),已被廣泛的應(yīng)用在如今的電氣設(shè)備的數(shù)據(jù)交互和設(shè)備控制中。第五步手動按下電源開關(guān)便即可把可執(zhí)行文件HEX寫入到單片機(jī)內(nèi),程序?qū)懭胪戤?,目?biāo)板開始運(yùn)行程序結(jié)果。 圖41 STC_ISP下載器接口電路STC_ISP下載步驟是第一步打開STCISP,在MUC Type欄目下選中STC89C52。由于可以將程序直接下載進(jìn)單片機(jī)看運(yùn)行結(jié)果故也可以不用仿真器。使用 C 語言編程,那么 Keil幾乎就是不二之選。單片機(jī)的外圍電路中要選好限流電阻及上拉電阻,單片機(jī)的灌電流10ma,拉電流不到100Ua,直接驅(qū)動數(shù)碼管,步進(jìn)電機(jī)是帶不起來的,必須要有三極管驅(qū)動或芯片驅(qū)動。本設(shè)計(jì)的中用到的元件及其功能如表41所示。 } } if(right==0) { Send_data=Transcode()。//校驗(yàn)位 for(i=0。amp。 } if(TimeShort_min amp。i++) //16位用戶代碼,沒用的,用來區(qū)別不同的遙控設(shè)備,每一位是先低電平到高電平組成的 { while(Infrared_in==0) //低電平,過去 { } while(Infrared_in==1) //高電平,過去 { } } for(i=0。//數(shù)值自增, } if(TimeLead_min amp。//開啟定時器}主流程圖如圖31所示。// TL0 = 0x00。//定時中斷為低優(yōu)先級 TR1= 1。//smod 波特率加倍位是0 EA=1。 // 串行口工作在方式1,10位異步的接收和發(fā)送,波特率可變,有定時器1控制 TMOD = 0x21。//每分鐘的轉(zhuǎn)數(shù),因?yàn)榘艘粋€小數(shù)位,放大10倍 a=k / 100。//,因?yàn)槊?12個8拍等于360度,一步也就是1/512 pedometer=0。= 512) ;
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1