標(biāo)題:
單片機(jī)可并行接口8255實(shí)驗(yàn)(含匯編語(yǔ)言和C語(yǔ)言代碼+仿真)
[打印本頁(yè)]
作者:
WEI9980
時(shí)間:
2018-11-25 10:12
標(biāo)題:
單片機(jī)可并行接口8255實(shí)驗(yàn)(含匯編語(yǔ)言和C語(yǔ)言代碼+仿真)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(20.78 KB, 下載次數(shù): 32)
下載附件
2018-11-25 16:16 上傳
0.png
(16.54 KB, 下載次數(shù): 32)
下載附件
2018-11-25 16:16 上傳
單片機(jī)源程序如下(匯編語(yǔ)言):
CSEG AT 0000H
LJMP START
CSEG AT 4100H
PA EQU 0CFA0H
PB EQU 0CFA1H
PCTL EQU 0CFA3H
START: MOV DPTR,#PCTL ;置8255A控制字,ABC口均工作,方式0,AC口輸出,B口輸入
MOV A,#082
MOVX @DPTR,A
LOOP: MOV DPTR,#PB ;從B口讀入開關(guān)狀態(tài)值
MOVX A,@DPTR
MOV DPTR,#PA ;從A口將狀態(tài)值輸出顯示
MOVX @DPTR,A
MOV R7,#10H ;延時(shí)
DELO: MOV R6,DEL1
DEL1: DJNZ R6,DEL1
DJNZ R7,DEL0
JMP LOOP
END
復(fù)制代碼
c語(yǔ)言:
#include<absacc.h>
#define PORTC XBYTE[0Xfefe]
#define CONTROL XBYTE[0Xfeff]
void DELAYLONG(void);
void DELAYSHORT(void);
void main(void)
{
CONTROL=0x80;
PORTC=0XFF;
while(1)
{
PORTC=0Xde;
DELAYLONG();
PORTC=0Xee;
DELAYSHORT();
PORTC=0Xef;
DELAYSHORT();
PORTC=0Xee;
DELAYSHORT();
PORTC=0Xef;
DELAYSHORT();
PORTC=0Xee;
DELAYSHORT();
PORTC=0Xef;
DELAYSHORT();
PORTC=0Xf3;
DELAYLONG();
PORTC=0Xf5;
DELAYSHORT();
PORTC=0Xf7;
DELAYSHORT();
PORTC=0Xf5;
DELAYSHORT();
PORTC=0Xf7;
DELAYSHORT();
PORTC=0Xf5;
DELAYSHORT();
PORTC=0Xf7;
DELAYSHORT();
}
}
void DELAYLONG(void)
{
unsigned i;
for(i=0;i<30000;i++);
}
復(fù)制代碼
所有資料51hei提供下載:
23.zip
(90.21 KB, 下載次數(shù): 47)
2018-11-25 10:10 上傳
點(diǎn)擊文件名下載附件
111
下載積分: 黑幣 -5
作者:
筱豆先生
時(shí)間:
2018-12-24 14:46
仿真不走!
作者:
bb2018620
時(shí)間:
2019-1-27 17:52
程序有問(wèn)題
作者:
stephenwen
時(shí)間:
2019-6-6 21:20
感謝樓主,但是需要測(cè)試看看
作者:
qee654
時(shí)間:
2020-12-4 20:50
程序和電路圖都有點(diǎn)問(wèn)題,需要修改一下才能正常運(yùn)行
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1