Proteus仿真:
软件清单:
WEI EQU 30H ;定义位码寄存器
LED2 EQU 32H ;定义十位显示器缓冲单元 LED3 EQU 33H ;定义百位显示器缓冲单元
LED4 EQU 34H ;定义千位显示器缓冲单元
lED5 EQU 35H ;定义第5位显示器缓冲单元
LED6 EQU 36H ;定义第6位显示器缓冲单元
LED7 EQU 37H ;定义第7位显示器缓冲单元
LED8 EQU 38H ;定义第8位显示器缓冲单元
SEC EQU 40H ;定义秒计数器
MSEC EQU 41H ;定义十位和个位毫秒计数器
MSEC2 EQU 42H ;定义百位毫秒计数器
MODE2_SEC EQU 44H ;模式三的用T1时的秒计数器
MODE2_MSEC EQU 45H ;模式三的用T1时的毫秒计数器
MODE2_SEC1 EQU 46H ;模式三的用T1时的毫秒计数器
K3F BIT 00H ;用于模式二K3,K4启停标志位
K4F BIT 01H ;用于模式二K3,K4启停标志位
KEY BIT 02H ;用于模式二K3,K4启停标志位
S1 EQU P3.0 ; K1
S2 EQU P3.1 ; K2
S3 EQU P3.2 ; K3
S4 EQU P3.3 ; K4
OLD1 EQU 80H ; S1 按下 时长
OLD2 EQU 81H ; S2 按下 时长
YEAR DATA 03H ; 比较 时长 常数
DEL1 EQU 7EH ;延时子程序中用的延时常数存放单元
DEL2 EQU 7FH ;延时子程序中用的延时常数存放单元
ORG 0000H
医疗废物焚烧
SJMP STAR
ORG 0003H
电动车电池修复器
LJMP INT0S ;INT0中断入口
ORG 000BH
LJMP T0S ;定时器T0入口
ORG 0013H
LJMP INT1S ;INT1中断入口
ORG 001BH
LJMP T1S ;定时器T1入口
ORG 0030H
STAR:
MOV SP,#0DFH
MOV LED1,#00H ;显示器缓冲单元中存放的是显示内容
MOV LED2,#00H ;显示器缓冲单元中存放的是显示内容
MOV LED3,#00H ;显示器缓冲单元中存放的是显示内容
MOV LED4,#80H ;该位若要出现小数点,则显示内容加
MOV LED5,#00H ;显示器缓冲单元中存放的是显示内容
MOV MODE,#0 ;设置模式的初值为0
MOV R4,#0
MOV R5,#0
MOV R7,#0
CLR KEY
MOV SEC,#00H
MOV MSEC,#00H
MOV TMOD,#22H
MOV TL0,#06H
MOV TH0,TL0
MOV TL1,#06H
MOV TH1,TL1 ;定时器初值设置为6 为250微秒每次
MOV TCON,#05H ;外中断INT0 INT1触发方式下降沿触发
MOV IE,#8FH ;开T1 INT1 T0 INT0中断
;此处可放其他初始化指令
过线槽
MAIN:
LCALL KEYAN ;调用键盘扫描
LCALL MODE1 ;调用显示函数的模式1进行模式判断
LJMP MAIN ;主函数循环
;*************************************显示函数*******************************
MODE1:
MOV A,MODE
CJNE A,#0,MODE2 ;进行模式判断,如果A为0 进入模式1,不为0去判断是否模式2
MODE11:
MOV P2,#1CH ;打开LED1的扫描
MOV A,#1
MOVC A,@A+DPTR
MOV P0,A ;调用1的的段码,给P0口
LCALL DLYS ;位显示延时
MOV P0,#00H
LJMP DISP ;显示完模式一 ,进入计数环节
MODE2:
CJNE A,#01H,MODE3 ;进行模式判断,如果A为1 进入模式1,不为1去判断是否模式3
推进式搅拌桨
MODE11:
MODE22:
梁延淼 MOV P2,#1CH
MOV A,#2
MOVC A,@A+DPTR
MOV P0,A
LCALL DLYS
MOV P0,#00H
LJMP DISP
DISP:
MOV A,MSEC ;计数环节在此
MOV B,#10
DIV AB
MOV LED2,A
MOV LED1,B
MOV A,MSEC2
MOV LED3,A
MOV A,SEC
MOV B,#10
DIV AB
MOV LED5,A
MOV LED4,B
玻璃纤维膨体纱
MOV WEI,#00H ;位码初值,显示个位
MOV R2,#05H ;扫描显示位计数器,同数码管位数
MOV R1,#LED1 ;R1为显示器缓冲单元的地址寄存器