实验五 综合设计实验(修改)

  • 格式:doc
  • 大小:127.00 KB
  • 文档页数:9

实验五综合设计实验一、实验要求(以下实验任选两个完成:说明接线,给出程序,并给出程序使用说明以及观察到的实验现象)1、用一片8255A控制1个8段共阴极LED数码管,同时接入八个开关。

现要求按下某开关,其代表的数字(K0为0,K1为1,…K7为7)在数码管上显示,直到按下另一个开关。

.MODEL TINYCon_8255 EQU OF003H;8255控制口PB_8255 EQU OF001H;8255 PB口PA_8255 EQU OF000H;8255 PA口.STACK 100.CODETab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHSRART:MOV DX,Con_8255;控制端口MOV AL,90H;初始化8255工作方式;PA口输入,PB口输出OUT DX,ALMOV DI,0L1:JMP DEPLAYL3:MOV DX,PA_8255IN AL,DXCMP AL,0FFHJZ L1MOV DI,0COUNT:ROR AL,1INC DIJC COUNTDEC DIL2:IN AL,DXCMP AL,0FFHJNZ L2JNZ L2JMP L1DEPLAY: MOV DX,PB_8255MOV AL,Tab[DI]OUT DX,ALJMP L3END START2、用一片8255A控制1个8段共阴极LED数码管,同时接入一个4X4的矩阵键盘。

现要求按下某个按键,其代表的数字或字母在数码管上显示,直到按下另一个按键开关。

.MODEL TINYCon_8255 EQU OF003H;8255控制口PC_8255 EQU OF002H;8255 PC口PB_8255 EQU OF001H;8255 PB口PA_8255 EQU OF000H;8255 PA口.STACK 100.CODETab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H SRART:MOV DX,Con_8255;控制端口MOV AL,82H;初始化8255工作方式;PA口输入,PB口输入;PC口输出 OUT DX,ALMOV AL,0H;使各行线为0MOV DX,PA_8255OUT DX,ALNN:MOV DX,PB_8255;判断有无按键按下;通过不断读PB口列IN AL,DX;读取列数据AND AL,03H;屏蔽无关数据,只有两列线,PB0,PB1CMP AL,03H;各列线有无0的情况JZ NN;无为0列,等待按键BEGIN ;确定具体是那个键被按下MOV BX,0208H;行数送BL,列数送BHMOV CL,0FFH;起始键号(CL)=-1MOV AL,11111110B;起始扫描码,0行=0;其他行为1LOP1:MOV DX,PA_8255;扫描一行OUT DX,ALRCL AL,1;扫描下一行数据MOV AH,AL;扫描顺序码保存到AHINC DX;PB端口地址IN AL,DX;读PB端口AND AL,03H;屏蔽无关位CMP AL,03H;扫描本行,有无列线为0JNZ LOP2;有,转LOP2查找本行键号ADD CL,BH ;键号+2MOV AL,AH;恢复下一行扫描码DEC BL;行数-1JNZ LOP1;返回扫描下一行JMP BEGIN;LOP2:INC CL;键号+1RCR AL,1;PB口循环右移一位JC LOP2;最低位为1,返回查找;JC表示进位,则跳转MOV BX,0;MOV BL,CL;MOV AL,Tab[BX];基地址用BX或DI键值送ALMOV DX,PC_8255;OUT DX,ALJMP BEGINEND START3、用一片8255A和8155来驱动16X16LED显示器显示汉字。

(8155的PAPB 口作为IO端口和8255一样操作;汉字16*16字模可上网查询)B4区:JP56,JP52,JP53 A2区:JP33,JP23,JP34B4区:CS,A0,A1 A3区:CS1,A0,A1.MODEL TINYCon_8255 EQU 0F003H ;8255控制口PC_8255 EQU 0F002H ;8255 PC口PB_8255 EQU 0F001H ;8255 PB口PA_8255 EQU 0F000H ;8255 PA口.STACK 100.CODETAB DW 18H,18H,18H,0FFH,0FFH,18H,18H,18HSTART: MOV DX,Con_8255MOV AL,80HOUT DX,AL ;8255初始化,PA/PB/PC口作输出用MOV BL,0FFH ;用于计数,移动的时间间隔MOV CL,0L1: MOV CH,0FEHMOV DI,0L2: PUSH BXMOV BX,TAB[DI]AND CL,0FHROL BX,CL ;汉字左移;ROR BX,CL ;汉字右移MOV AL,BLMOV DX,PB_8255OUT DX,ALMOV AL,BHMOV DX,PA_8255OUT DX,ALPUSH CXROL CH,CL ;向上移动;ROR CH,CL ;向下移动MOV AL,CH ;控制第几行显示MOV DX,PC_8255OUT DX,ALPOP CXADD DI,2ROL CH,1POP BXCMP DI,10HJNZ L2DEC BLJNZ L1ADD CL,1JMP L1END START4、用一个由八段共阴极LED显示器组成的显示装置和一个外接CLK=1953Hz(07A1)的8253定时/计数器,组成一个用于显示0~9的秒计数器,并接蜂鸣器。

当计时到时触发蜂鸣器。

.model tiny.model tinyCON EQU 0F003HPA EQU 0F000HPB EQU 0F001HPA EQU 0F002HCNT0_8253 EQU 0B000HCom_8253 EQU 0B003H.dataTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH .STACK 100.CODESTART:MOV DX,Com_8253MOV AL,34H;OUT DX,ALMOV DX,CNT0_8253MOV AL,0A1HOUT DX,ALMOV AL,07H;初值1953OUT DX,AL;初始化8255STR1:MOV DX,CONMOV AL,81H;OUT DX,ALMOV AL,0FFHMOV DI,0H LOOP1:MOV DX,PCIN AL,DXTEST AL,01HJNZ LOOP1N:CALL DISPLAINC DICALL DL500MSCMP DI,0AHJNZ LOOP1MOV DX,CONMOV AL,80HOUT DX,ALCALL DL500msMOV DI,0HJMP STR1DISPLA PROC NEARMOV DX,PBMOV AL,TAB[DI] RETDISPLA ENDPDL500ms PROC NEARPUSH CXMOV CX,60000DL500ms1:LOOP DL500ms1POP CXRETDL500ms ENDPW:END START二、实验设备STAR系列实验仪一套、PC机一台三、实验原理图(示意图)四、实验连线:五、实验程序附件:12000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H ,000H,000H ;空白08FH,0FEH,0A9H,020H,091H,020H,081H,020H,082H,022H,082H,022H,084H,022H ,088H,01EH;"院000H,080H,07FH,0FEH,000H,080H,000H,080H,000H,080H,000H,080H,002H,080H ,001H,000H;"学"001H,000H,001H,000H,001H,000H,001H,000H,001H,000H,0FFH,0FEH,000H,000H,000H,000H;"工"3.8155资料(可用PAPB端口作为输入输出)作扩展I/O用当CS=0,IO/M=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。

与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分。

8155端口地址:000为控制字端口001为PA口010为PB口011为PC口100定时器低字节101定时器高字节。