




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上51單片機(jī)步進(jìn)電機(jī)正反轉(zhuǎn)調(diào)速1602顯示 - C51源代碼#include <reg51.h> /51芯片管腳定義頭文件#include <intrins.h> /內(nèi)部包含延時(shí)函數(shù) _nop_();#define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9;uchar code REV8=
2、0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;sbit K1 = P32; /運(yùn)行與停止sbit K2 = P33; /設(shè)定圈數(shù)sbit K3 = P34; /方向轉(zhuǎn)換sbit K4 = P35; /速率調(diào)整sbit BEEP = P36; /蜂鳴器sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;bit on_off=0; /運(yùn)行與停止標(biāo)志bit direction=1; /方向標(biāo)志bit rate_dr=1; /速率標(biāo)志bit snum_dr=1; /圈數(shù)標(biāo)志uchar code cdis1 =
3、" STEPPING MOTOR "uchar code cdis2 = "CONTROL PROCESS"uchar code cdis3 = " STOP "uchar code cdis4 = "NUM: RATE: "uchar code cdis5 = " RUNNING "uchar m,v=0,q=0;uint number=0,number1=0; uchar snum=10,snum1=10; /預(yù)設(shè)定圈數(shù)uchar rate=2; /預(yù)設(shè)定速率uchar data_temp,
4、data_temP1,data_temp2; /*/* /* 延時(shí)t毫秒 /* 11.0592MHz時(shí)鐘,延時(shí)約1ms /* /*/void delay(uint t) uchar k; while(t-) for(k=0; k<125; k+) /*/void delayB(uchar x) /x*0.14MS uchar i; while(x-) for (i=0; i<13; i+) /*/void beep() uchar j; for (j=0;j<100;j+) delayB(4); BEEP=!BEEP; /BEEP取反 BEEP=1; /關(guān)閉蜂鳴器 delay
5、(170); /*/* /*檢查LCD忙狀態(tài) /*lcd_busy為1時(shí),忙,等待。為0時(shí),閑,可寫指令與數(shù)據(jù)。 /* /*/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/* /*寫指令數(shù)據(jù)到LCD /*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 /* /*/void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS =
6、0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* /*寫顯示數(shù)據(jù)到LCD /*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 /* /*/void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* /* L
7、CD初始化設(shè)定 /* /*/void lcd_init() delay(30); lcd_wcmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /顯示開,關(guān)光標(biāo) delay(5); lcd_wcmd(0x06); /移動(dòng)光標(biāo) delay(5); lcd_wcmd(0x01); /清除LCD的顯示內(nèi)容 delay(5);/*/* /* 設(shè)定顯示位置 /* /*/void lcd_pos(uchar pos) lcd_wcmd(pos
8、| 0x80); /數(shù)據(jù)指針=80+地址變量/*/* /* LCD1602初始顯示子程序 /* /*/void LCD_init_DIS() delay(10); /延時(shí) lcd_init(); /初始化LCD lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis1m != '0') /顯示字符 lcd_wdat(cdis1m); m+; lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字符 m = 0; while(cdis2m != '0') lcd_wdat(cdis2m); /顯示字符 m+; dela
9、y(3000); /延時(shí) lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m != '0') /顯示字符 lcd_wdat(cdis3m); m+; lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字符 m = 0; while(cdis4m != '0') lcd_wdat(cdis4m); /顯示字符 m+; for(m=0;m<2;m+) lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat(0x3e); /*/*/*數(shù)據(jù)轉(zhuǎn)換子程序/*/*/void data_conv() da
10、ta_temP1=data_temp/10; /高位 if(data_temP1=0) data_temP1=0x20; /高位為0不顯示 else data_temP1=data_temP1+0x30; data_temp2=data_temp%10; /低位 data_temp2=data_temp2+0x30; /*/*/*數(shù)據(jù)顯示子程序/*/*/void data_dis() data_temp = snum; /顯示圈數(shù) data_conv(); lcd_pos(0x44); lcd_wdat(data_temP1); lcd_pos(0x45); lcd_wdat(data_tem
11、p2); data_temp = rate; /顯示速率 data_conv(); lcd_pos(0x4d); lcd_wdat(data_temP1); lcd_pos(0x4e); lcd_wdat(data_temp2);/*/*/* 顯示運(yùn)行方向符號(hào)/*/*/void motor_DR() if(direction=1) /正轉(zhuǎn)方向標(biāo)志 for(m=0;m<2;m+) lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat(0x3e); else for(m=0;m<2;m+) /反轉(zhuǎn)方向標(biāo)志 lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat
12、(0x3c); /*/*/* 顯示運(yùn)行狀態(tài)/*/*/void motor_RUN() if(on_off=1) TR0=1; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis5m != '0') lcd_wdat(cdis5m); /RUNNING m+; motor_DR(); / else TR0=0; P1 =0x0f; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m != '0') lcd_wdat(cdis3m); /STOP m+; motor_DR()
13、; / snum=snum1; / number1=0; /清圈數(shù)計(jì)數(shù)器 /* * 主程序 * */main() LCD_init_DIS(); TMOD = 0x01; /T0定時(shí)方式1 TL0 = 0x33; TH0 = 0xf5; EA = 1; ET0 = 1; P1 = 0x0f; while(1) if(K1=0) beep(); while(K1=0); /等待鍵釋放 on_off=on_off; motor_RUN(); /K1 end/*/ if(K2=0) beep(); if(snum_dr=1) snum+; snum1=snum; if(snum=0x14) snum
14、_dr=snum_dr; else snum-; snum1=snum; if(snum=0x01) snum_dr=snum_dr; /K2 end/*/ if(K3=0) beep(); direction=direction; motor_DR(); /K3 end/*/ if(K4=0) beep(); if(rate_dr=1) rate+; if(rate=0x10) rate_dr=rate_dr; else rate-; if(rate=0x01) rate_dr=rate_dr; /K4 end /*/ if(number1=snum1) /與設(shè)定圈數(shù)是否相等 number1=0; on_off=0; TR0=0; snum=snum1; P1=0x0f; motor_RUN(); data_dis(); / while(1) end /main end/*/*/* 定時(shí)器 0 中斷 /*/*/void motor_onoff() interrupt 1 TL0 = 0x33; TH0 = 0xf5; q+; if(q <
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程結(jié)算考試題及答案
- 家具設(shè)計(jì)標(biāo)準(zhǔn)與行業(yè)規(guī)范的理解試題及答案
- 會(huì)昌教招面試真題及答案
- 數(shù)量與質(zhì)的對比理解題試題及答案
- 2025臨床醫(yī)學(xué)筆試題目及答案
- 植物上場測試題及答案
- 2025公務(wù)員考試試題及答案
- 2025飛行員面試試題及答案
- 區(qū)塊鏈跨境支付系統(tǒng)穩(wěn)定性與可靠性研究報(bào)告
- 教師教學(xué)改進(jìn)方向的試題及答案
- 2025專利代理師筆試考試題庫帶答案
- 第3課《校園文化活動(dòng)我參與》教案 海燕版綜合實(shí)踐活動(dòng) 三年級(jí)下冊
- 2025年保密教育線上培訓(xùn)考試試題及答案
- 大學(xué)生職業(yè)規(guī)劃大賽《運(yùn)動(dòng)康復(fù)專業(yè)》生涯發(fā)展展示
- 高樓遮光補(bǔ)償協(xié)議書范本
- 課題申報(bào)書:生成式人工智能賦能高職教學(xué)變革研究
- 2025-2030專用車產(chǎn)業(yè)規(guī)劃及發(fā)展研究報(bào)告
- 《自由現(xiàn)金流折現(xiàn)法對東鵬特飲公司的財(cái)務(wù)估值實(shí)例分析》2000字
- 2024年四川綿陽科技城新區(qū)招聘社區(qū)工作者考試真題
- 2025-2030中國甘蔗收割機(jī)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 二零二五簡短美發(fā)店勞動(dòng)合同
評論
0/150
提交評論