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

正文內(nèi)容

步進電機速度控制系統(tǒng)設(shè)計-閱讀頁

2024-10-27 22:52本頁面
  

【正文】 以同時對多個管腳改寫電平。 調(diào)試顯示器的關(guān)鍵則是準(zhǔn)確地將初始化信息分批地送到顯示器里。 而對電機速度的顯示需要以 Runspeed 為應(yīng)變量選取適當(dāng)?shù)膿Q算函數(shù),才能顯示正確的速度值。一旦通信成功,串口控制就解決了大半的問題,接著就是用緩存里的數(shù)據(jù)編程控制,其算法與鍵盤控制相差不遠(yuǎn)。同樣地, 模擬的上位機的 傳輸位和停止位等 指標(biāo)也應(yīng)認(rèn)真選定。 12 調(diào)試結(jié)果 經(jīng)過調(diào)試,系統(tǒng)能以鍵盤和串口兩種方式對兩部步進電機進行異步控制 ,并在顯示屏上顯示各電機的轉(zhuǎn)向和轉(zhuǎn)速。這樣節(jié)省了單片機的數(shù)據(jù)接口,一定程度提高了 利用率。 此外, 程序 通過取反改變輸出電平的算法簡單方便,節(jié)省了單片機內(nèi)存空間的同時也節(jié)省了有限的數(shù)據(jù)口。 此外,變量的使用也是的多個程序模塊同時依賴一個計數(shù)器,降低了系統(tǒng)可靠性。 void inti_lcd()。 void cmd_wr()。 void ShowDir()。 void cod_scan()。 void send_char(unsigned char out)。 //定義 LCD 的端口物理地址 sbit RW=P2^5。 char SpeedChar1[]=V1(n/min):。 char SPEED1[3]=050。 char forward=39。,backforward=39。 unsigned int RunSpeed1=50。 unsigned int t1=0。 unsigned int cod。 //運行狀態(tài) (起始為正方向 ) bit Contrl=0。 //串口變量 void Init_RS232(void) { TL1=0Xfd。 //波特率為 9600(fd), 4800(fa),2400(f4) SCON = 0x50。= 0xef。 } main() { TMOD=0x21。 //開中斷 TR0=0。 //定時器 0 初值 , 即 1ms 中斷一次 TL0=(655351000)amp。 PT0=1。 //定時器 0 中斷允許 TR0=1。 inti_lcd()。 ShowDir()。 if(Contrl==0) //按下則掃描鍵盤 { key_scan()。 //暫停接收數(shù)據(jù) cod=SBUF。 send_char(cod)。 //將 ASC 碼轉(zhuǎn)化 cod_scan()。 } } } } void send_char(unsigned char out)//傳送一個字符 { SBUF=out。 //等特數(shù)據(jù)傳送 TI=0。 18 while(ms) { for(i=0。i++)。 } break。 } break。 } break。 } break。 //電機 1 正轉(zhuǎn) P2_2=RunDir1。 case 0x06:{RunDir1=0。 } break。 //電機 2 正轉(zhuǎn) P2_3=RunDir2。 case 0x08:{RunDir2=0。 } break。 } ShowSpeed()。 } void key_scan() //鍵盤掃描程序 { unsigned char key。0x0f。 break。 break。 break。 break。 } 20 ShowSpeed()。0x0f)!=0x0f) 。 RunDir2=P1_5。 } P2_2=RunDir1。 } void t_0(void) interrupt 1 //定時器 0 中斷服務(wù)程序 { TR0=0。 //定時器 0 初值,即 1ms 中斷一次 TL0=(655351000)amp。 TR0=1。t2++。 t1=0。 t2=0。 start: 21 RS=0。 E=0。a2。 E=1。 //拉高數(shù)據(jù)口 if(P0_7==0) return 0。 } void inti_lcd() //設(shè)置 LCD 方式 { P0=0x38。 delay()。 cmd_wr()。 P0=0x0f。 delay()。 //光標(biāo)自動右移一位,全部平移無效 cmd_wr()。 P0=0x0c。 delay()。 //寫命令寄存器 RW=0。 //提供上升沿 E=1。 //P1 口 RS=1。 //寫數(shù)據(jù)設(shè)置 E=0。 //觸發(fā) } void ShowDir() { delay()。 //設(shè)置顯示地址(第一行第 15 位) cmd_wr()。 if(RunDir1) show_lcd(forward)。//反轉(zhuǎn), backforward delay()。 //設(shè)置顯示地址(第二行第 15 位) cmd_wr()。 if(RunDir2) 23 show_lcd(forward)。//反轉(zhuǎn), backforward } void ShowSpeed() //顯示狀態(tài)與速度 { int i=0。 SPEED1[1]=(6000/RunSpeed1%100/10)+48。 SPEED2[0]=(6000/RunSpeed2/100)+48。 SPEED2[2]=(6000/RunSpeed2%10)+48。 P0=0x80。 i=0。\039。 show_lcd(SpeedChar1[i])。 } delay()。 //設(shè)置顯示地址(第 11 位起) cmd_wr()。 while(i3) //在第一行顯示速度 1 { delay()。 i++。 P0=0x80| 0x40。 i=0。\039。 show_lcd(SpeedChar2[i])。 } delay()。 //第二行第 11 位 cmd_wr()。 while(i3) //在第二行顯示速度 2 { delay()。 i++
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1