结合https://blog.csdn.net/qq_44989881/article/details/117292615二进制与十六进制的转换可对下面仿真的开关进行操作
文件链接:https://share.weiyun.com/79WpsSxH
代码
DATA SEGMENT
TABLE DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H ; 数码管 数字显示
DB 00H, 18H, 08H, 03H, 46H, 21H, 06H, 0EH
DATA ENDS
CODE SEGMENT PUBLIC 'CODE'
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, 90H
OUT 0F6H, AL
IN_PORTA: IN AL, 0F0H
AND AL, 0FH
MOV BX, OFFSET TABLE
XLAT
OUT 0F2H, AL
CALL DELAY
JMP IN_PORTA
DELAY PROC
PUSH CX
MOV CX, 100H
LOOP $
POP CX
RET
DELAY ENDP
MOV AH, 4CH
INT 21H
ENDLESS:
JMP ENDLESS
CODE ENDS
END START
原理图:
实现效果:
当全部开关闭合时,数码管显示“0”。
当第一个开关打开时,数码管显示“1”。
当第二个开关打开时,数码管显示“2”。
当要数码管显示“A”,只需要打开第二个开关和第四个开关即可。
当要数码管显示“D”,只需要打开第一个开关、第三个开关和第四个开关即可。
关键字:汇编语言
引用地址:
汇编语言 8086+8255A仿真中断控制
推荐阅读最新更新时间:2024-11-17 23:30
C语言和在开发单片机时各有哪些优缺点?
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。 C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高。 对于目前普遍使用的RISC架构的8bit MCU 来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且
[单片机]
51单片机汇编语言:位操作指令有哪些?
数据 位传送指令 MOV C, bit ;bit 可直接寻址位 C←(bit) MOV bit,C ;C 进位位 (bit) ← C 位变量修改指令 CLR C ; 将C=0 CLR bit CPL C ; 将C求反再存入C CPL bit ; 将bit求反再存入bit SETB C ; 将C=1 SETB bit ; (bit) ← 1 位变量逻辑指令 ANL C, bit ANL C, bit ORL C, bit ORL C, bit
[单片机]
以直接地址为目的操作数的指令(5条)——mcs51单片机汇编
以直接地址为目的操作数的 指令 (5条) 这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式: MOV data,data ;(data)→(data) 直接地址单元中的内容送到直接地址单元 MOV data,#data ;#data→(data) 立即数送到直接地址单元 MOV data,A ;(A)→(data) 累加器A中的内容送到直接地址单元 MOV data,Rn ;(Rn)→(data) 寄存器Rn中的内容送到直接地址单元 MOV data,@Ri ;((Ri))→(data) 寄存器Ri中的内容指定的地址单元中数据送到直接地址单元
[单片机]
实验八 交通灯控制(80C51单片机汇编语言编程)
设计一交通灯控制系统,控制东西方向的红、黄、绿灯和南北方向的红、黄、绿灯,可手动控制和自动控制,设置两个输入控制开关(可用P1.0、P1.1做输入控制),控制过程如下: 东西方向 南北方向 P1.0 P1.1 红 黄 绿 红 黄 绿 1 0 亮 亮 3S后亮 0 1 亮 3S后 亮 亮 0 0 亮 亮 1 1
[单片机]
ARM汇编语言学习笔记(二)跑个灯程序以及.s文件分析
一、汇编语言怎么写 我们都知道,c语言可以写成c语言然后编译。那么汇编语言了? 汇编语言用汇编语言写,然后写出来为.s文件。所以我们只需要任意一款可以编写.s文件的编辑器就可以啦,例如:source insight、notepad等。 二、写一个试试 /* * 点亮LED1: gpf4 */ .text .global _start _start: /* 配置GPF4为输出引脚 * 把0x100写到地址0x56000050 */ ldr r1, =0x56000050 ldr r0, =0x100 /* mov r0, #0x100 */ str r0, /* 设置GPF4输出
[单片机]
MCS-51汇编语言程序格式
MCS-51汇编语言程序的一般格式 * 与8086不同,没有代码段、数据段等区分,统一编址。 * 程序由指令行或注释行组成,指令行每行只能写一条指令。 * 指令前可用“标号:”表示指令地址,以便在指令中引用;标号是符号名,以字母开头。 * 注释行应以“;”号开头;指令后也可用“;”号分隔,附加注释。 * 程序由伪指令ORG XXXXH 定位,ORG中的16位地址就是将来写入程序存储器的绝对地址。程序中的ORG应按地址从小到大排列。由ORG定位的程序段可以不连续,汇编程序将会在段间的空地址上填00H,即NOP。因此,每个ORG段的最后一条指令一般应是转移指令。 * 数据由伪指令DB(字节)或DW(双字节)说明
[单片机]
单片机汇编语言编程:按键、计数及显示
如图所示电路,要求完成实现按钮按压次数的计数及显示,按一次按钮,计数值加1(要求按十进制累加)。 计数及显示范围是:0~99,超过99则自动归零。 要求对按钮的检测用中断实现,数码显示用动态扫描(数码管为共阴数码管)。 请设计实现该功能的完整程序。 ;---------------------------------------------------------------------- ;用PROTEUS仿真,显示器使用7SEG-MPX2-CC ;=================================== ORG 0000H AJMP START ORG 0013H AJMP X1_INT ST
[单片机]
arm汇编语言中bne 1b是什么意思
bne - branch if nemachines: base syntax: bne $soffset8 format: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0f-op4f-condf-soffset80xd0x1soffset8 semantics:(if (not zbit) (set pc soffset8))也就是如果zbit不等于0,那么就跳转到offset8处执行 bne里的1b是向后跳转到局部标签1处执行,b表示backward 对应的还有bne 1f(向前跳到局部标签1处执行) 1: ;A cmp r0, #0 beq 1f ; r0==0那么向前跳转到B处执行 bne 1b
[单片机]