② 8255A 具有三个八位的并行 I/O 口,分别为 PA 口、PB 口和 PC 口。其中
PC 口可以分为高四位(PC7
~
PC4)和低四位(PC3
~
PC0)。它们都可以通过软件
编程来改变 I/O 的工作方式。另外,8255A 可与 MCS51 单片机直接相连。
③ 8255A 有三种基本工作方式。其中方式 0 是
一
种基本的输入/输出方式。
在这种方式下,每
一
个端口都可以设置为输入/输出,这种方式适合无条件传送。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- ORG 0000H
- SJMP MAIN
- ORG 001BH//定时/中断计数器 1,中断地址
- JMP TIM1
- ORG 0030H
- MAIN:
- MOV P0,#0FFH
- MOV P1,#0FFH
- MOV P2,#0FFH
- MOV P3,#0FFH
- MOV 60H,#00H
- MOV SP,#30H//设置堆栈指针
- MOV TMOD,#10H//设置定时器工作方式,TR0启动,定时方式,工作方式1
- MOV IE,#88H//开总中断EA,开启ET0
- //定时器T0装初值
- MOV TH1,#38H
- MOV TL1,#00H
- //自定义计数R7,R6清0
- MOV R7,#00H
- MOV R6,#00H
- CLR 20H.0 //标志位清零
- MOV DPTR,#0FBFFH;
- MOV A,#80H
- MOVX @DPTR,A
- NOP
- START:
- MOV DPTR,#0F8FFH;
- MOV A,#0FAH
- MOVX @DPTR,A
- SETB TR1
- LOOP:
- JBC 20H.0,JIANCE //标志位为1,清零,跳转到JIANCE
- SJMP LOOP
- JIANCE:
- CJNE R6,#8,APP
- MOV R6,#00H
- APP:
- MOV DPTR,#TAB
- MOV A,R6
- //DEC A
- MOVC A,@A+DPTR
- MOV 60H,A
- MOV DPTR,#0F8FFH;
- MOV A,60H
- MOVX @DPTR,A
- SJMP LOOP
- /**************
- 中断子程序
- ***************/
- TIM1:
- PUSH ACC
- MOV TH1,#38H
- MOV TL1,#00H
- INC R7//查看是否有20次
- CJNE R7,#20,CHUQU//查看是否有20次了
- MOV R7,#00H
- MOV A,R6
- ADD A,#01H
- MOV R6,A
- SETB 20H.0//标志位置一
- CHUQU:
- POP ACC
- RETI
- TAB:
- DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH
- END
复制代码
所有资料51hei提供下载:
实验4-8255A.zip
(158.08 KB, 下载次数: 26)
|