資源描述:
《開關(guān)量輸入輸出通道與順序控制課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、回顧:尋址方式計算機按地址訪問各個外部設(shè)備的端口(I/Oport)采集卡:集多通道于一體,具有多個端口,每個端口都有各自的端口地址。板卡端口地址=基地址+偏移量本板卡基地址=0x220(由板卡跳線所決定)偏移量地址:由所用的寄存器決定Baseoffset回顧:I/O端口地址定義地址讀寫B(tài)ase+0計數(shù)器0計數(shù)器0+1計數(shù)器1計數(shù)器1+2計數(shù)器2計數(shù)器2+3-計數(shù)器控制+4AD低字節(jié)DA通道1低字節(jié)+5AD高字節(jié)DA通道1高字節(jié)+6DI低字節(jié)DA通道2低字節(jié)+7DI高字節(jié)DA通道2高字節(jié)+8-清除中斷請求+9-增益控制+10-多路選擇控制+11-模式控制
2、+12-AD轉(zhuǎn)換軟件觸發(fā)+13-DO低字節(jié)+14-DO高字節(jié)+15--思考1、在DI.c程序中,inportb函數(shù)使用的端口地址為:基地址+6,想想在訓(xùn)練時是如何接線的?若端口地址為:基地址+7,又該如何接線?2、在DO.c程序中,outportb函數(shù)使用的端口地址為:基地址+13,想想在訓(xùn)練時是如何接線的?若端口地址為:基地址+14,又該如何接線?開關(guān)量輸入輸出通道與順序控制第三講(開關(guān)量通道綜合應(yīng)用)本次課的主要內(nèi)容掌握I/O端口讀寫:輸入函數(shù):inportb(端口地址)/*讀端口(寄存器)*/輸出函數(shù):outportb(端口地址,變量名)/*寫端
3、口(寄存器)*/開關(guān)量通道綜合應(yīng)用:光電對管遮光控制LED;脈沖列計數(shù)進一步體會對開關(guān)量的讀寫。inportb(端口地址)/*讀端口*/Base+676543210DI低字節(jié)DI7DI6DI5DI4DI3DI2DI1DI0Base+776543210DI高字節(jié)DI15DI14DI13DI12DI11DI10DI9DI8DI:16個開關(guān)輸入量分別占用輸入通道地址Base+6和Base+7。數(shù)據(jù)格式如下:例:DI_in=inportb(Base+6);Base+676543210DI低字節(jié)01110101DI_in=117(01110101)2;outpo
4、rtb(端口地址,變量名)/*寫端口*/DO:16個開關(guān)輸出量分別占用輸出通道地址Base+13和Base+14。數(shù)據(jù)格式如下:DO_out=85(01010101)2;Base+1376543210DO低字節(jié)DO7DO6DO5DO4DO3DO2DO1DO0Base+1476543210DO高字節(jié)DO15DO14DO13DO12DO11DO10DO9DO8outportb(Base+13,DO_out);Base+1376543210DO低字節(jié)01010101例:ACL-8112PG采集卡DI、DO操作小結(jié)#defineBASE0x220/*基地址*/
5、DI:di_lbyte=inportb(BASE+6);di_hbyte=inportb(BASE+7);DO:outportb(BASE+13,do_lbyte);outportb(BASE+14,do_hbyte);采集卡DI/DO通道的工作過程inportb(port)outportb(port,0x15)0x1500010101111101100xF6port:0X220+13port:0X220+6DO-1DI-6開關(guān)量通道綜合應(yīng)用1.光電對管遮光控制LED光電對管自左至右編號,DO顯示用的LED也自左至右編號。編寫程序,實現(xiàn)如下功能:遮擋某
6、一光電對管時(綠燈顯示其狀態(tài)),相應(yīng)的紅色LED熄滅。光電對管遮光控制LED提示:端口讀寫函數(shù)Inportb和outportb的使用。流程圖獲取光電對管狀態(tài)計算并輸出控制LED的開關(guān)量(讀DI低字節(jié))(寫DO低字節(jié))開關(guān)量通道綜合應(yīng)用(續(xù))2.脈沖列計數(shù)反復(fù)遮擋1號光電對管的光路,由此產(chǎn)生一個脈沖列。2號光電對管光路遮斷時刻開始對這個脈沖序列計數(shù),2號光電對管光路恢復(fù)暢通時刻停止計數(shù)。編寫程序?qū)崿F(xiàn)此功能。脈沖的計數(shù)方法看上升沿:0?1看下降沿:1?0整個脈沖:0?1,1?0(上升沿+下降沿)/2:0?1,1?0脈沖列計數(shù)提示:流程圖初始化,設(shè)置計數(shù)器n
7、=02號光路是否被遮擋?1號光路是否通斷1次計數(shù)器n=n+1輸出計數(shù)器值是否是訓(xùn)練內(nèi)容接線示意圖Warning:關(guān)機狀態(tài)下接線!仔細檢查無誤后再開機!六線六線光電對管遮光控制LED例程1當(dāng)兩排LED編號方向一致時:#defineBASEADDR0x220main(){intdi_in,do_out;while(!kbhit()){di_in=inportb(BASEADDR+6);do_out=di_in;outportb(BASEADDR+13,do_out);}}光電對管遮光控制LED例程2當(dāng)兩排LED編號方向相反時:intBASE_ADDRESS
8、=0x220;intcreat_DI(int*DI_NUM,intnum){inti=0;fo