51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)

   本系列共6篇文章,本文作为本系列的六篇文章,介绍实验六 :8255键盘与显示设计,本系列文章基于Dais-52PRO实验箱。

本系列文章链接:

-----------------------------------------------------------------------------

   51单片机汇编语言实验(一)-----数字量输入输出(附参考代码及注释)
   51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)
   51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)
   51单片机汇编语言实验(四)----串行通信实验(附参考代码及注释)
   51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)
   51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)

-----------------------------------------------------------------------------

一、实验目的:

   掌握8255外接键盘与数码管显示的设计

二、实验设备:

   PC计算机一台,Dais-52PRO+实验系统一套。

三、实验内容:

   8255键盘与显示设计

四、 8255键盘与显示设计

   1、实验原理:

   本实验使用8255的PA7到PA0控制数码管字形口、PB5到PB0控制数码管字位口,同时PB4到PB0作为键盘扫描口、PC3~PC0作为键盘读入口。利用CPU控制8255,对4×5键盘进行扫描和键值读取,将键值显示到6位数码管上。本文介绍的是简化版的实验,不控制最后一列键盘,数码管位选端不接线,直接点亮。

   2、实验步骤:

  ① 按下图拆除14芯扁平电缆;
51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)_第1张图片
  ②将8255区的PA0到PA7与数码管区的a~h按下图连接;
  ③将8255区的PB1到PB4与按键区的列0~4按下图连接;
  ④将8255区的PC0到PC3与按键区的行0~3按下图连接;
  ⑤将8255区的/CS与端口地址区的300按下图连接;
  ⑥编写实验程序,经编译、链接无语法错误后装载到实验系统;
  ⑦全速运行程序,按实验系统键盘上的0~F数字键,数码管显示对应数字
  ⑧实验完毕后,应使用暂停命令中止程序的运行;
  ⑨本实验完毕,应及时将步骤1中拆除的扁平电缆重新连接,以便其它实验的顺利进行。
51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)_第2张图片

   3、参考代码:

//实验六 

        ORG 0000H
        AJMP KD1
        ORG 0100H
KD1:	MOV	  A, #81H	;8255初始化,PA,PB基本输出
						;方式, PC低四位输入方式
		MOV	  DPTR, #0303H  ;地址需要修改成控制口地址
		MOVX @DPTR, A
	  
		
KEY1:   ACALL KS1			;调用判断是否有键闭合子程序
		JNZ	   LK1			;有键闭合转LK1
		ACALL DSP8255		;调用8255动态显示子程序,延时6 ms
		AJMP	   KEY1
LK1:	ACALL DSP8255
		ACALL DSP8255		;调用两次显示,延时12 ms
		ACALL KS1
		JNZ	   LK2
		ACALL DSP8255		;调用8255动态显示子程序,延时6 ms
		AJMP	   KEY1
LK2:	MOV	   R2, #0EFH     ;11101111
		MOV	   R4, #00H		
		
LK3:	MOV	 DPTR, #0301H    ;需要改成B口地址
		MOV	 A, R2
		MOVX @DPTR, A
		INC	 DPTR
		MOVX  A, @DPTR
		JB	 ACC.0, LONE
		MOV	 A, #00H
		AJMP	 LKP
LONE:	JB	 ACC.1, LTWO
		MOV	 A, #04H
		AJMP	 LKP
LTWO:JB	 ACC.2, LTHR
		MOV	 A, #08H
		AJMP	 LKP
LTHR:	JB	 ACC.3, NEXT
		MOV	 A, #0CH
LKP:	ADD	 A, R4
		PUSH	 ACC
		MOV   R5,A
LK4:	ACALL DSP8255		
        ACALL  KS1
		JZ	  LK4
		POP	  ACC
		AJMP  LK1  
NEXT:	INC	  R4
		MOV	  A, R2
		JNB	  ACC.1, KND
		RR	  A
		MOV	  R2, A
		AJMP	  LK3
KND:	AJMP	  KEY1
KS1:	MOV	  DPTR, #0301H ;地址需要改成B口地址
		MOV	  A, #00H
		MOVX  @DPTR, A
		INC	  DPTR
		MOVX  A, @DPTR   ;默认在按键按下前c口为高电平
		CPL	  A
		ANL	  A, #0FH
		RET
		
			

DSP8255:    MOV A,R5
            MOV DPTR, #PTRN	;指向段数据表首地址
	        MOVC A, @A+DPTR	;查表,得段数据
	        MOV	DPTR, #0300H	;地址需要修改为A口地址
			
            MOVX @DPTR, A		;输出段数据
	        CALL	D1MS			;延时1 ms
PASS:	    RET				;返回
D1MS:       MOV	R7, #02H		;延时1 ms子程序
DMS:	    MOV	R6, #0FFH
	        DJNZ	R6, $
	        DJNZ	R7, DMS	
	        RET
PTRN:DB 0c0H, 8eH, 86H, 0a1H	;段数据表   0  F  E  D    
	 DB 0f9H, 0a4H, 0b0H, 0c6H ;           1 2 3  C   
	 DB	99H, 92H, 82H, 83H  ;          4 5 6 B 
	 DB	0f8H, 80H, 90H, 88H ;            7 8 9 A  
	        END			

五、 实验效果视频演示

博文51单片机汇编语言实验8255键盘显示设计效果视频演示.

    B站视频链接:   本文实验效果视频演示链接

    本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下:

     51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)附件链接

你可能感兴趣的:(大学实验,单片机及其应用)