📄 程序.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;定义LCD1602引脚;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RS BIT P0.4 ;LCD1602决定要传送的是命令还是数据
R_W BIT P0.5 ;LCD1602决定要读还是写,一般写的时候多.
E BIT P0.6 ;LCD1602时钟信号
DB0_DB7 EQU P1 ;LCD1602数据线
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;定义X5045引脚;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SCK BIT P3.7 ;X5045时钟引脚
CS BIT P3.5 ;X5045片选脚
SIO BIT P3.6 ;X5045输入输出脚
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;定义TLC1543引脚;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EOC BIT P3.0 ;TLC1543转换结束标志
CLK BIT P3.1 ;TLC1543时钟
ADDRESS BIT P3.2 ;TLC1543地址引脚
DATAOUT BIT P3.3 ;TLC1543数据端
CS_AD BIT P3.4 ;TLC1543片选端
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT00
ORG 000BH
LJMP IT00
ORG 0013H
LJMP INT01
ORG 001BH
LJMP IT01
ORG 0023H
LJMP UART
ORG 0030H
MAIN: MOV SP,#70H
LCALL XiTongChuShi;调系统初始化子程序。
LCALL BELL;调蜂鸣器响,系统启动
MAIN3: CLR TR0
LCALL DEL
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED15;调显示欢迎界面
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
MAIN2: CLR TR0
; LCALL CaiJi;调10路AD采集子程序。
MOV TMOD,#00000001B;设置定时器T0为16位计数器。
MOV TH0,#00H
MOV TL0,#00H
SETB ET0
SETB EA
SETB TR0
LCALL DEL
MOV R3,#250
MAIN4: MOV R2,#198
MAIN1: MOV A,30H
CJNE A,#0BH,SheZhi48
LJMP SheZhi47
SheZhi48: DJNZ R2,MAIN1
DJNZ R3,MAIN4
LJMP SheZhi3
SheZhi47: CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED14;调显示"按#确认开始设置。
SETB TR0
LCALL DEL
SheZhi44: MOV A,30H
CJNE A,#10H,SheZhi45
LJMP SheZhi44
SheZhi45: CJNE A,#0AH,SheZhi42
LJMP MAIN3
SheZhi42: CJNE A,#0BH,SheZhi44
SheZhi43: CLR TR0
LCALL QingCanShu
SETB TR0
JB P0.0,SheZhi
LCALL DEL
JB P0.0,SheZhi
LCALL BELL
LCALL xianshizhi
LJMP SheZhi;判断#键是否按下,按下时转参数设置子程序
SheZhi3: LCALL XianShi;调AD转换结果显示子程序。
MOV A,23H
CJNE A,#0AH,SheZhi3
LJMP SheZhi47
SheZhi: CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
SheZhi1: LCALL LED4;调显示,选择0-9共十个通道,按*键更改,按#确认。
SETB TR0
LCALL DEL
SheZhi5: MOV A,30H
CJNE A,#10H,SheZhi6
AJMP SheZhi5
SheZhi6: CJNE A,#0AH,SheZhi2
LJMP SheZhi4;转显示错误
SheZhi2: JNC SheZhi4;A>0AH时,CY=0,转SheZhi4
CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED6;调显示:显示按下的通道号及是否确认。
SETB TR0
LCALL DEL
LJMP SheZhi7
SheZhi4: CLR TR0;显示错误
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED5;调显示
SETB TR0
LCALL DEL
LJMP SheZhi5
SheZhi7: MOV A,30H
CJNE A,#0BH,SheZhi8
MOV 50H,38H;#按下,50H内存放通道号。
LJMP SheZhi9
SheZhi8: CJNE A,#0AH,SheZhi7
LJMP SheZhi
SheZhi9: CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED7;调显示:显示设置的上限值范围。
SETB TR0
LCALL DEL
SheZhi10: MOV A,30H
CJNE A,#10H,SheZhi11
LJMP SheZhi10
SheZhi11: CJNE A,#05H,SheZhi12
LJMP SheZhi10
SheZhi12: JNC SheZhi10
MOV 51H,A
CLR TR0
LCALL LED8
SETB TR0
LCALL DEL
SheZhi13: MOV A,30H
CJNE A,#10H,SheZhi14
LJMP SheZhi13
SheZhi14: CJNE A,#0AH,SheZhi15
LJMP SheZhi13
SheZhi15: JNC SheZhi13
MOV 52H,A
CLR TR0
LCALL LED9
SETB TR0
LCALL DEL
MOV A,51H
SWAP A
MOV 51H,A
MOV R0,#52H
XCHD A,@R0
MOV 51H,A
SheZhi16: MOV A,30H
CJNE A,#10H,SheZhi17
LJMP SheZhi16
SheZhi17: CJNE A,#0AH,SheZhi18
LJMP SheZhi16
SheZhi18: JNC SheZhi16
MOV 52H,A
CLR TR0
LCALL LED10
SETB TR0
LCALL DEL
SheZhi19: MOV A,30H
CJNE A,#10H,SheZhi20
LJMP SheZhi19
SheZhi20: CJNE A,#0AH,SheZhi21
LJMP SheZhi19
SheZhi21: JNC SheZhi19
MOV 53H,A
CLR TR0
LCALL LED10
SETB TR0
LCALL DEL
MOV A,52H
SWAP A
MOV 52H,A
MOV R0,#53H
XCHD A,@R0
MOV 52H,A
SheZhi33: CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED11;调显示:显示设置的下限值范围。
SETB TR0
LCALL DEL
SheZhi34: MOV A,30H
CJNE A,#10H,SheZhi22
LJMP SheZhi34
SheZhi22: CJNE A,#05H,SheZhi23
LJMP SheZhi34
SheZhi23: JNC SheZhi34
MOV 53H,A
CLR TR0
LCALL LED8
SETB TR0
LCALL DEL
SheZhi24: MOV A,30H
CJNE A,#10H,SheZhi25
LJMP SheZhi24
SheZhi25: CJNE A,#0AH,SheZhi26
LJMP SheZhi24
SheZhi26: JNC SheZhi24
MOV 54H,A
CLR TR0
LCALL LED9
SETB TR0
LCALL DEL
MOV A,53H
SWAP A
MOV 53H,A
MOV R0,#54H
XCHD A,@R0
MOV 53H,A
SheZhi27: MOV A,30H
CJNE A,#10H,SheZhi28
LJMP SheZhi27
SheZhi28: CJNE A,#0AH,SheZhi29
LJMP SheZhi27
SheZhi29: JNC SheZhi27
MOV 54H,A
CLR TR0
LCALL LED10
SETB TR0
LCALL DEL
SheZhi30: MOV A,30H
CJNE A,#10H,SheZhi31
LJMP SheZhi30
SheZhi31: CJNE A,#0AH,SheZhi32
LJMP SheZhi30
SheZhi32: JNC SheZhi30
MOV 55H,A
CLR TR0
LCALL LED10
SETB TR0
LCALL DEL
MOV A,54H
SWAP A
MOV 54H,A
MOV R0,#55H
XCHD A,@R0
MOV 54H,A
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
LCALL DEL
CLR TR0
LCALL INITIAL;初始化LED1602,
LCALL CLS;精屏LED1602
LCALL LED12;调显示,询问是否存储。按*取消,按#确认。
SETB TR0
LCALL DEL
SheZhi35: MOV A,30H
CJNE A,#10H,SheZhi36
LJMP SheZhi35
SheZhi36: CJNE A,#0AH,SheZhi37;
LCALL DEL
LJMP SheZhi
SheZhi37: CJNE A,#0BH,SheZhi35;确认并存储
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -