② 8255A 具有三個八位的并行 I/O 口,分別為 PA 口、PB 口和 PC 口。其中
PC 口可以分為高四位(PC7
~
PC4)和低四位(PC3
~
PC0)。它們都可以通過軟件
編程來改變 I/O 的工作方式。另外,8255A 可與 MCS51 單片機直接相連。
③ 8255A 有三種基本工作方式。其中方式 0 是
一
種基本的輸入/輸出方式。
在這種方式下,每
一
個端口都可以設置為輸入/輸出,這種方式適合無條件傳送。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (14.47 KB, 下載次數: 87)
下載附件
2020-6-17 22:57 上傳
單片機源程序如下:
- 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)
2020-6-17 21:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|