版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
主要內(nèi)容: 簡單I/O接口的擴(kuò)展; 通用接口的使用;
LED顯示接口的應(yīng)用;
鍵盤輸入接口的應(yīng)用。第9章接口擴(kuò)展與應(yīng)用1AA’BCDB’C’D’DCBA00010011001001100100110010001001順逆應(yīng)用舉例【例7.1】試編制一個(gè)4相8拍步進(jìn)電機(jī)驅(qū)動(dòng)程序。
步進(jìn)電機(jī)
4相8拍節(jié)拍表2步進(jìn)電機(jī)接口電路P1.3P1.2P1.1P1.0P1.4P1.5P3.2(INT0)+5V方向DIRA方式MOD點(diǎn)動(dòng)BCD步進(jìn)電機(jī)3#include<Reg51.h>#define
uchar
unsignedchar/*單步定時(shí)常數(shù)0,定時(shí)時(shí)間50ms(fosc=6MHz)*/constintTC0=-25000;/*連續(xù)定時(shí)常數(shù)1,定時(shí)時(shí)間10ms(fosc=6MHz)*/constintTC1=-5000;sbitDIR=P1^4;/*定義P1.4腳名*/sbitMOD=P1^5;/*定義P1.5腳名*/要求:1.P1.4狀態(tài)確定旋轉(zhuǎn)方向:0=逆時(shí)針、1=順時(shí)針2.P1.5狀態(tài)確定運(yùn)轉(zhuǎn)形式:0=手動(dòng)、1=連續(xù)3.P3.2輸入單步運(yùn)行信號(hào):0=停止、1=運(yùn)轉(zhuǎn)利用定時(shí)器0作為連續(xù)運(yùn)行的節(jié)拍發(fā)生器,利用P1.3~P1.0作為步進(jìn)電機(jī)節(jié)拍輸出控制口。4/*步進(jìn)電機(jī)節(jié)拍表*/const
ucharrht[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar
rhi=0;/*節(jié)拍索引*/time0()interrupt1/*T0中斷服務(wù)*/{if(MOD){TH0=TC1>>8;/*重裝定時(shí)器0連續(xù)時(shí)常*/TL0=TC1&0xff;}
else{TH0=TC0>>8;/*重裝定時(shí)器0單步時(shí)常*/TL0=TC0&0xff;}P1=~rht[rhi];/*輸出節(jié)拍*/
if(DIR)/*根據(jù)方向選擇調(diào)整下一節(jié)拍索引*/
if(rhi=
=0)rhi=7;else
rhi-
-;
else
if(rhi=
=7)rhi=0;else
rhi+
+;}【例7.1】(續(xù))5main(){TH0=TC1>>8;/*裝入定時(shí)器0連續(xù)運(yùn)行時(shí)常*/TL0=TC1&0xff;P1=0xff;EA=1;ET0=1;TR0=1;
while(1){if(MOD) /*T0工作在定時(shí)方式、模式1*/TMOD=0x01; /*置T0內(nèi)啟動(dòng)*/
elseTMOD=0x09; /*置T0外啟動(dòng)*/}}【例7.1】(續(xù))6通用接口芯片Intel8155簡介主要構(gòu)成:
2個(gè)8位并行口,1個(gè)6位并行口;
1個(gè)14位計(jì)數(shù)器,1個(gè)256字節(jié)RAMTINRAM256BytePAPCPBPA7~PA0ALERSTAD7~0IO/MI/O控制TOUT14位初值寄存器PC5~PC3PB7~PB0PC2~PC0地址鎖存CERDWR14位減1計(jì)數(shù)器計(jì)數(shù)控制并口控制78155RAM/端口地址分配IO/MA7A6A5A4A3A2A1A0訪問電路方向0××××××××RAM寫/讀1×××××000命令/狀態(tài)口寫/讀1×××××001
8位并行口PA寫/讀1×××××010
8位并行口PB寫/讀1×××××011
6位并行口PC寫/讀1×××××100計(jì)數(shù)器低8位值寫1×××××101計(jì)數(shù)器高6位值寫88155命令與狀態(tài)字76543210TC1TC0IEBIEAPC1PC0BDADPA、PB口方向0-輸入1-輸出并口工作方式PA、PB口中斷允許0-禁止請求1-允許請求計(jì)數(shù)器控制PC1PC0說明00
PA、PB為基本輸入/輸出口,PC為基本輸入口01
PA、PB為基本輸入/輸出口,PC為基本輸出口10
PA為選通輸入/輸出口,PC口的0~2為其狀態(tài)/控制線;
PB為基本輸入/輸出口,PC口的3~5為基本輸出口11
PA為選通輸入/輸出口,PC口的0~2為其狀態(tài)/控制線;
PB為選通輸入/輸出口,PC口的3~5為其狀態(tài)/控制線。命令字:98155命令與狀態(tài)字(續(xù))76543210-RZIEBFIRIEBFIRTC1TC0說明00空操作01停止計(jì)數(shù)10計(jì)數(shù)器歸0后,停止計(jì)數(shù)。11計(jì)數(shù)初值裝入后,若計(jì)數(shù)器沒工作則將其啟動(dòng)中斷請求PA口計(jì)數(shù)器歸0緩沖器滿中斷允許PB口計(jì)數(shù)器控制狀態(tài)字108155計(jì)數(shù)器初值與工作方式76543210C7C6C5C4C3C2C1C0低8位計(jì)數(shù)初值IC高6位計(jì)數(shù)初值IC計(jì)數(shù)器工作方式M1M0說明00單次計(jì)數(shù),方波輸出。(計(jì)數(shù)值>IC/2,TOUT=1;否則TOUT=0,計(jì)數(shù)結(jié)束TOUT=1。)01連續(xù)計(jì)數(shù),方波輸出。(計(jì)數(shù)值>IC/2,TOUT=1;否則TOUT=0。)10單次計(jì)數(shù),脈沖輸出。(計(jì)數(shù)值≠1時(shí),TOUT=1;計(jì)數(shù)值=1時(shí),TOUT=0。)11連續(xù)計(jì)數(shù),脈沖輸出。(計(jì)數(shù)值≠1時(shí),TOUT=1;計(jì)數(shù)值=1時(shí),TOUT=0。)76543210M1M0C14C12C11C10C9C811
4位LED數(shù)碼管顯示掃描驅(qū)動(dòng)程序(1/100秒計(jì)時(shí)器),其中:1.8155的PA為字型口(PA0~PA6對應(yīng)字段a~g,低電平亮)2.8155的PB為位置口(PB4~PB7對應(yīng)#0~#3位,高電平有效)3.利用T0作為5ms掃描定時(shí)器,兼做1/100秒計(jì)時(shí)器【例7.2】PA0PB7PB6PB5PB4ALE來自MCS-51ALE數(shù)據(jù)總線DBRD地址總線ABWRRD8155AD7~0CEPA1PA6abg地址譯碼WRCC3CC2CC1CC012#include<Reg51.h>#define
uchar
unsignedchar#define
uint
unsignedint#defineCMD(uchar
xdata*)0xffe8/*8155的命令口地址*/#definePA(uchar
xdata*)0xffe9/*8155的PA口地址*/#definePB(uchar
xdata*)0xffea/*8155的PB口地址*/#definePC(uchar
xdata*)0xffeb/*8155的PC口地址*/#defineTC0(-2500)/*T05ms時(shí)間常數(shù)*/#defineST10(2)/*10ms軟定時(shí)時(shí)間常數(shù)*/#defineSTFH(5)/*刷新25ms定時(shí)時(shí)常*/【例7.2】程序13uchardisp[4];/*顯示緩沖區(qū)*/uchart10ms;/*10ms軟定時(shí)器*/uchar
tfresh;/*刷新軟定時(shí)器*/uint
csec;/*1/100s計(jì)時(shí)器*/void
fresh(uint,uchar*);/*顯示掃描和定時(shí)中斷服務(wù),每5ms一次*/time0()interrupt1{/*顯示掃描位置表*/
static
ucharpot[4]={0x1f,0x2f,0x4f,0x8f};
static
uchar
di=0;/*顯掃索引*/TH0=TC0>>8;/*重裝定時(shí)器0時(shí)常*/TL0=TC0&0xff;*PA=disp[di];/*當(dāng)前字型送PA口*/*PB=pot[di];/*當(dāng)前位置送PB口*/【例7.2】(續(xù))14
/*顯示掃描和定時(shí)中斷服務(wù)(續(xù))*/if(++di==4)di=0;
if(!(--t10ms))/*10ms定時(shí)*/{t10ms=ST10;
csec++;/*1/100s計(jì)數(shù)*/}
if(!(--tfresh))/*刷新定時(shí)*/{
tfresh=STFH;fresh(csec,disp);/*刷新顯示當(dāng)前的1/100秒*/}}【例7.2】(續(xù))15main(){TMOD=0x01;/*定時(shí)器0工作在定時(shí)方式、模式1、內(nèi)啟動(dòng)*/TH0=TC0>>8;/*裝入定時(shí)器0時(shí)常*/TL0=TC0&0xff;*CMD=0x43;/*8155初始化,PA、PB基本輸出,PC基本輸入*/*PA=0xff;/*關(guān)顯示*/*PB=0x0f;t10ms=ST10;
tfresh=STFH;
csec=0;fresh(csec,disp);/*刷新當(dāng)前1/100秒顯示*/IE=0x82;/*開中斷,允許定時(shí)器0請求中斷*/TR0=1;/*啟動(dòng)定時(shí)器0*/
while(1);/*等待定時(shí)器中斷請求*/}【例7.2】(續(xù))16/*顯示刷新函數(shù)*/voidfresh(uint
x,uchar*y){/*0~9字型表*/
static
ucharfont[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0x0F8,0x80,0x90};
ucharq,r;r=x%100;/*將x轉(zhuǎn)換成BCD十進(jìn)制數(shù)字字型送到y(tǒng)[]中*/q=x/100;y[0]=font[r%10];y[1]=font[r/10];y[2]=font[q%10];y[3]=font[(q/10)%10];}【例7.2】(續(xù))17
設(shè)計(jì)一個(gè)4位LED數(shù)碼管顯示和3×3鍵盤掃描驅(qū)動(dòng)程序。顯示:字符“In”和鍵入值“k”
其中:1.8155PA為字型口(PA0~PA6對應(yīng)字段a~g,低電平亮)2.8155PB為位置口
PB0~PB2對應(yīng)#0~#2KSCN位,低電平有效;
PB4~PB7對應(yīng)#0~#3LED位,高電平有效。3.8155PC為鍵入口
PC0~PC2對應(yīng)#0~#2KIN位,低電平有按鍵。利用T0作為5ms鍵盤/顯示掃描定時(shí)器?!纠?.3】18數(shù)碼顯示與鍵盤接口電路PA0PB7PB6PB5PB4ALE來自MCS-51ALE數(shù)據(jù)總線DBRD地址總線ABWRRD8155AD7~0CEPA1PA6abg地址譯碼WRCC3CC2CC1CC0PB2PB1PB0PC2PC1PC0+5V03614725M0行1行2行2列1列0列19#include<Reg51.h>#define
uchar
unsignedchar#define
uint
unsignedint#defineCMD(uchar
xdata*)0xffe8/*8155的命令口地址*/#definePA(uchar
xdata*)0xffe9/*8155的PA口地址*/#definePB(uchar
xdata*)0xffea/*8155的PB口地址*/#definePC(uchar
xdata*)0xffeb/*8155的PC口地址*/#defineTC0(-2500)/*T05ms時(shí)間常數(shù)*/uchardisp[4];/*顯示緩沖區(qū)*/ucharkey; /*鍵掃描值輸出*/【例7.3】程序20/*鍵盤、顯示掃描和定時(shí)中斷服務(wù),一次/5ms*/time0()interrupt1{/*掃描位置表*/
static
ucharpot[4]={0x1e,0x2d,0x4b,0x8f};/*鍵行值轉(zhuǎn)換表*/
static
ucharkct[8]={0x3,0x0,0x1,0x3,0x2,0x3,0x3,0x3};
static
uchar
si=0,kst=0;/*掃描索引,鍵盤狀態(tài)*/static
ucharkit,sit;/*鍵入值、掃描索引暫存*/
uchar
kc;/*鍵入值暫存*/TH0=TC0>>8;/*重裝定時(shí)器0時(shí)常*/TL0=TC0;*PA=disp[si];/*當(dāng)前字型送PA口*/*PB=pot[si];/*當(dāng)前位置送PB口*/
kc=~(*PC)&0x07;/*從PC口輸入鍵值*/【例7.3】(續(xù))21if(!kst&&kc){kit=kc;sit=si;kst=1;}
else
if(si==sit){switch(kst){case1:
if(kc==kit)key=kct[kc]*3+si+1;
kst=2;
break;
case2:
if(!kc)kst=3;
break;
case3:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅館的會(huì)計(jì)處理分錄-記賬實(shí)操
- 新疆某小區(qū)高層剪力墻結(jié)構(gòu)商住樓施工組織設(shè)計(jì)(內(nèi)容詳細(xì)、示意圖豐富)
- 2025新譯林版英語七年級(jí)下Unit 1 Home單詞表
- 《規(guī)范漢字書寫傳承中華文化之美》主題班會(huì)教案3篇
- 第17課《屈原(節(jié)選)》教學(xué)設(shè)計(jì)+2023-2024學(xué)年統(tǒng)編版語文九年級(jí)下冊
- 強(qiáng)化素質(zhì)-高效務(wù)實(shí)-共同建設(shè)生態(tài)文明
- 小升初六年級(jí)語文下冊課外閱讀專項(xiàng)訓(xùn)練
- 駕駛員個(gè)人工作總結(jié)
- 科室一次性醫(yī)用耗材管理與使用規(guī)范和流程
- 青年奮斗者演講稿范文(3篇)
- 2024內(nèi)蒙古阿拉善盟“智匯駝鄉(xiāng)鴻雁歸巢”引進(jìn)高學(xué)歷人才49人筆試模擬試題及答案解析
- 臨床營養(yǎng)科各崗位職責(zé)及各項(xiàng)規(guī)章制度
- 《創(chuàng)想候車亭》課件2024-2025學(xué)年嶺美版(2024)初中美術(shù)七年級(jí)上冊
- 山西省晉中市多校2024-2025學(xué)年九年級(jí)上學(xué)期期中語文試題
- 心肺復(fù)蘇術(shù)課件2024新版
- 居間權(quán)益保障協(xié)議
- 安全環(huán)保職業(yè)健康法律法規(guī)清單2024年
- 第4單元表內(nèi)除法(一)應(yīng)用題(專項(xiàng)訓(xùn)練)-2024-2025學(xué)年二年級(jí)上冊數(shù)學(xué)蘇教版
- 行政復(fù)議法-形考作業(yè)2-國開(ZJ)-參考資料
- 起重機(jī)械安全技術(shù)規(guī)程(TSG-51-2023)宣貫解讀課件
- 職業(yè)倦怠量表MBIGS (MBIGeneral Survey)
評(píng)論
0/150
提交評(píng)論