AT89C51 投币机模拟程序
;==================================================================== ; Main.asm file generated by New Project wizard ; ; Created: 周二 九月 5 2023 ; Processor: AT89C51 ; Compiler: ASEM-51 (Proteus) ;====================================================================
$NOMOD51 $INCLUDE (8051.MCU)
;==================================================================== ; DEFINITIONS ;====================================================================
;==================================================================== ; VARIABLES ;====================================================================
coin1 equ P1.0 ; 开关1 coin2 equ P1.1 ; 开关2 coin3 equ P1.2 ; 开关3 coin4 equ P1.3 ; 开关4 led equ P1.7 ; LED发光管 display equ P2 ; 数码管
;==================================================================== ; RESET and INTERRUPT VECTORS ;====================================================================
; Reset Vector
org 0000h
jmp Start
;==================================================================== ; CODE SEGMENT ;====================================================================
org 0100h
Start:
; 初始化
mov display, #0 ; 清空数码管
clr led ; 关闭LED发光管
; 设置初始已投币值总数
mov r0, #0 ; 用r0寄存器作为累加器
Loop: ; 检查每个开关的取值,累加到r0寄存器中 mov a, coin1 ; 读取开关1的取值 cjne a, #0, Coin1 ; 如果开关1为高,则跳转到Coin1处理 mov a, coin2 ; 读取开关2的取值 cjne a, #0, Coin2 ; 如果开关2为高,则跳转到Coin2处理 mov a, coin3 ; 读取开关3的取值 cjne a, #0, Coin3 ; 如果开关3为高,则跳转到Coin3处理 mov a, coin4 ; 读取开关4的取值 cjne a, #0, Coin4 ; 如果开关4为高,则跳转到Coin4处理 jmp Next ; 如果没有任何开关为高,则跳过累加过程
Coin1: add a, #1 ; 累加1到累加器 mov r0, a ; 将累加器的值传递给r0寄存器 jmp Next
Coin2: add a, #1 ; 累加1到累加器 mov r0, a ; 将累加器的值传递给r0寄存器 jmp Next
Coin3: add a, #2 ; 累加2到累加器 mov r0, a ; 将累加器的值传递给r0寄存器 jmp Next
Coin4: add a, #5 ; 累加5到累加器 mov r0, a ; 将累加器的值传递给r0寄存器
Next: ; 显示已投币值总数到数码管 mov a, r0 ; 将r0寄存器的值传递给累加器 mov display, a ; 显示累加器的值到数码管
; 检查已投币值总数是否超过给定值
mov a, r0 ; 将r0寄存器的值传递给累加器
cjne a, #10, End ; 如果已投币值总数不等于10,则跳转到End处理
setb led ; 打开LED发光管
sjmp Loop ; 重复执行Loop
End: sjmp Loop ; 重复执行Loop
;==================================================================== END
原文地址: https://www.cveoy.top/t/topic/Udq 著作权归作者所有。请勿转载和采集!