【汇编语言与微机原理】实验五:键盘按键与数码管显示

这篇具有很好参考价值的文章主要介绍了【汇编语言与微机原理】实验五:键盘按键与数码管显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验目的

熟悉星研集成开发环境,掌握微机接口程序编写调试的基本方法。
掌握矩阵式键盘工作原理及识别按键的方法。
掌握8段数码管显示数字或字符的工作原理和它的使用方法。
掌握用8255扫描键盘及用8255刷新数码管的显示方法。

实验要求

在2*8(看着像4*4,实际上是2*8)的小键盘上按下按键,该键的值同时显示在8个数码管上。按键松开时显示上一次的按键值。文章来源地址https://www.toymoban.com/news/detail-587248.html

.Model tiny
.data
.stack 100 
segtab db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,0h,0c6h,40h,86h,8eh
keycode dw 0fe02h,0fd02h,0fb02h,0f702h,0ef02h,0df02h,0bf02h,7f02h 
	dw 0fe01h,0fd01h,0fb01h,0f701h,0ef01h,0df01h,0bf01h,7f01h
.CODE
start:
	mov ax,@data
	mov ds,ax
	mov es,ax
	mov dx,273h
	mov al,81h
	out dx,al
wait1:
	call scankey
	cmp ax,-1
	jz wait1
	call translate
	call led_disp
	jmp wait1
	mov ax,4c00h
	int 21h
	
scankey proc near
	push cx
	push dx
	mov dx,271h
	mov al,0
	out dx,al
	mov dx,272h
	in al,dx
	and al,00000011B
	cmp al,00000011B
	jz no_key
	in al,dx
	and al,00000011B
	cmp al,00000011B
	jz no_key
	mov ah,0feh
	mov cx,8
next:
	mov al,ah
	rol ah,1
	mov dx,271h
	out dx,al
	mov dx,272h
	in al,dx
	and al,03H
	cmp al,03H
	
	loopz next
	jz no_key
	ror ah,1
	jmp exit
no_key:
	mov ax,-1
exit:
	pop dx
	pop cx
	ret
	scankey endp
	
translate proc
	push cx
	mov cx,16
	lea si,segtab-1
	lea di,keycode-2
scantab:inc si
	inc di
	inc di
	cmp ax,[di]
	loopnz scantab
	mov dl,[si]
	pop cx
	ret
translate endp
led_disp proc
	push bx
	push ax
	mov bl,dl
	mov al,0ffh
	mov dx,271h
	out dx,al
	mov al,bl
	mov dx,270h
	out dx,al
	mov al,0h
	mov dx,271h
	out dx,al
	pop ax
	pop bx
	ret
led_disp endp	
end start

到了这里,关于【汇编语言与微机原理】实验五:键盘按键与数码管显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【汇编语言与微机原理】 期末复习题整理(小题)

    在机器数(补码)中,对真值0的表示是唯一的。 与十进制数56等值的二进制数是(111000) 二进制数10101转换成十进制数是(21)。 十进制数-75用二进制数10110101表示,其表示方式是(补码)。 关于补码机器数的描述中错误的是(不可能出现一个数的补码与其原码相同 ) 某计

    2024年01月15日
    浏览(53)
  • 汇编语言:矩阵式键盘扫描实验

    利用4x4矩阵键盘和一个LED数码管构成简单的输入显示系统,实现对键盘的扫描和LED数码管的显示键盘按下键的键号。共有4x4个按键和一个数码管,16个按键的键号分别对应十六进制数字:0~F。单机相应按键,数码管就会显示相应的数字。 数码管:这里采用共阳极数码管 CA为共

    2024年02月11日
    浏览(85)
  • 汇编语言实验——大数相乘

    1.1实验内容 实现两个十进制大整数的相乘(100位以上),输出乘法运算的结果。 1.2实验环境 Microsoft Visual Studio 2017+masm 32 1.3实验思路 1.3.1数据读入 大数相乘由于输入的数字过大而不能用一个dword来存储,所以需要使用数组来存取每一位,每一位大小范围在0-9中,按位读取输入

    2024年02月09日
    浏览(47)
  • 南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)

    排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可

    2024年02月08日
    浏览(62)
  • 《汇编语言》王爽(第四版)第八章 实验7

    文章目录 前言 一、题目 二、分析 1.内存分配情况 2.数据结构分析 3.实现思路 (1)设置段寄存器 (2)复制“年份”数据 (3)复制“年总收入”数据 (4)复制“雇员人数”数据 (5)计算“人均收入” 三、代码 1.实现代码 2.优化代码 3.最终代码 总结 王爽老师《汇编语言》

    2024年02月04日
    浏览(73)
  • 《汇编语言》王爽(第四版) 第十章 实验10

    文章目录 前言 一、子程序1 显示字符串 1.实验任务 2.分析 (1)如何在指定位置显示 (2)如何显示指定颜色 (3)保存子程序中用到的寄存器 3.代码 二、子程序2 解决除法溢出的问题 1.实验任务 2.代码 三、子程序3 数值显示 1.实验任务 2.显示一个word型数据的代码 总结 本文是

    2024年02月08日
    浏览(42)
  • 单片机原理与接口技术(汇编语言)

    学习建议 结合哈工大的教程视频及课件学习 【公开课】哈工大 单片机原理及应用 单片机基础 计算机 计算机只能识别存储数码0和1 微型计算机中,负数常用补码表示 电子元器件的电位被区分为两种状态:高电位和低电位 常见高电位范围:2V ~ 5V 常见低电位范围:0V ~ 0.8V 正

    2024年01月20日
    浏览(48)
  • 实验一8086计CPU系统寻址方式和汇编语言程序设计

    实验一8086计CPU系统寻址方式和汇编语言程序设 一、实验目的 (1)掌握8086CPU系统的逻辑地址和寻址方式。 (2)掌握8086CPU系统中机器数的表示方式。 (3)掌握指令的机器码表示方法。 (4)掌握堆栈的概念和操作过程。 (5)掌握集成开发环境下的程序设计和调试方法。 (6)掌握汇编语言实

    2023年04月22日
    浏览(49)
  • 南京邮电大学汇编语言程序设计实验二(用户登录验证程序的设计)

    1.掌握循环程序的编写以及结束循环的方法。 2.掌握DOS、BIOS功能调用的使用方法。 用户登录验证程序的实现 程序执行后,给出提示操作,请用户键入用户名和密码;用户在键入密码时,程序不回显键入字符;只有当用户键入的用户名,密码字符串和程序内定的字符串相同时

    2023年04月18日
    浏览(57)
  • 汇编语言实验8:BIOS/DOS功能调用与宏指令程序设计

    掌握汇编语言程序设计的基本方法和技能 掌握汇编语言源程序的编辑汇编连接和执行的完整过程 通过上机操作理解宏定义、宏调用、宏展开的概念,熟练运用宏功能编写程序 掌握BIOS/DOS基础功能的实现调用方法 理解常用的DOS功能调用的基本使用,能熟练运用1号,2号,9号,

    2024年02月03日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包