📄 tmp_lcd_clock.asm
字号:
CALL HEX2BCD
LD C,(HBIT)
LD HL,DIS_TABLCD
LD A,(HL+C);查表得出显示码
LD (LCD_DAT1415),A
LD C,(LBIT)
LD HL,DIS_TABLCD1
LD A,(HL+C)
LD (LCD_DAT0506),A
;----------------------------------------秒显示
SEC_DTEST:
LD CF,(MENU).S_SET;在设置状态闪烁
J CC,SEC_DIS
LD CF,(DIS_FLAG).FLASH
J CC,F_DISP
SEC_DIS:
LD A,(SEC)
LD (LBIT),A
CALL HEX2BCD
LD C,(HBIT)
LD HL,DIS_TABLCD1
LD A,(HL+C);查表得出显示码
LD (LCD_DAT0910),A
LD C,(LBIT)
LD HL,DIS_TABLCD1
LD A,(HL+C)
LD (LCD_DAT1112),A
;----------------------------------------闪烁显示
F_DISP:
LD CF,(DIS_FLAG).FLASH
J CC,DIS_IN
LD (LCD_DAT1617),0X04
LD (LCD_DAT0708),0X40
;---------------------------------------写入命令码
DIS_IN:
CALL DIS_START
LD B,0XA0;B作为显示缓存器
LD (LCD_BCNT),0X09
CLR (P1).LCD_CS
CLR CF
CALL DIS_NOW
;****************************************字段显示
;-----------------------------------------COM
;----------------------------------------pin12
; LD B,(LCD_DAT0102);装入显示数据
; LD (LCD_BCNT),0X08;显示位数
; CALL DIS_NOW
;----------------------------------------pin34
; LD B,(LCD_DAT0304);装入显示数据
; LD (LCD_BCNT),0X08;显示位数
; CALL DIS_NOW
;----------------------------------------pin56
LD B,(LCD_DAT0506);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin78
LD B,(LCD_DAT0708);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin0910
LD B,(LCD_DAT0910);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin1112
LD B,(LCD_DAT1112);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin13
LD B,(LCD_DAT13);装入显示数据
LD (LCD_BCNT),0X04;显示位数
CALL DIS_NOW
;----------------------------------------pin1415
LD B,(LCD_DAT1415);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin1617
LD B,(LCD_DAT1617);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin1819
LD B,(LCD_DAT1819);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin2021
LD B,(LCD_DAT2021);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin2223
LD B,(LCD_DAT2223);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;----------------------------------------pin24
LD B,(LCD_DAT24);装入显示数据
LD (LCD_BCNT),0X08;显示位数
CALL DIS_NOW
;-----------------------------------------------
CALL DIS_KEEP
;CALL DIS_OFF
RET
;==========================================================
;===============================================显示硬件驱动
DIS_NOW:
CLR (P1).LCD_CLK
ROLC B
J CC,DAT_0
SET (P3).LCD_DAT
J WRITE_NOW
DAT_0:
CLR (P3).LCD_DAT
WRITE_NOW:
NOP
NOP
SET (P1).LCD_CLK
DEC (LCD_BCNT)
J NZ,DIS_NOW
RET
;=================================================显示初始化
DIS_START:
SET (P1).LCD_CS
LD B,0X80;开始设置模式
NOP
CLR (P1).LCD_CS
LD (LCD_BCNT),0X03
CALL DIS_NOW
LD B,0X01;SYS ON
LD (LCD_BCNT),0X09
CALL DIS_NOW
LD B,0X18;系统时钟源,片内RC振荡器
LD (LCD_BCNT),0X09
CALL DIS_NOW
LD B,0X29;BASE1/3 4COM
LD (LCD_BCNT),0X09
CALL DIS_NOW
LD B,0X03;打开LCD偏压发生器LCD ON
LD (LCD_BCNT),0X09
CALL DIS_NOW
SET (P1).LCD_CS
RET
;===================================================关闭显示
DIS_OFF:
SET (P1).LCD_CS
LD B,0X80;开始设置模式
NOP
CLR (P1).LCD_CS
LD (LCD_BCNT),0X03
CALL DIS_NOW
LD B,0X02
LD (LCD_BCNT),0X09
CALL DIS_NOW
SET (P1).LCD_CS
RET
;===========================================================
;===========================================================
LED_DISP:
LD (P0),0
LD (COM1_DATA),0X00
LD (COM2_DATA),0X00
LD (COM3_DATA),0X00
LD (COM4_DATA),0X00
;----------------------------------COM1/2
LD B,(TEMP1)
LD (LBIT),B
CALL HEX2BCD
LD C,(HBIT)
LD HL,DIS_TAB
LD A,(HL+C)
LD (COM1_DATA),A
LD C,(LBIT)
LD HL,DIS_TAB
LD A,(HL+C)
LD (COM2_DATA),A
;----------------------------------COM3/4
LD B,(TEMP3)
LD (LBIT),B
CALL HEX2BCD
LD C,(HBIT)
LD HL,DIS_TAB
LD A,(HL+C)
LD (COM3_DATA),A
LD C,(LBIT)
LD HL,DIS_TAB
LD A,(HL+C)
LD (COM4_DATA),A
;----------------------------------COM1显示
;DIS_START:
LD A,(COM1_DATA)
CALL LEDDIS_NOW
SET (P0).COM1
CALL DIS_KEEP
CLR (P0).COM1
;----------------------------------com2显示
LD A,(COM2_DATA)
CALL LEDDIS_NOW
SET (P0).COM2
CALL DIS_KEEP
CLR (P0).COM2
;----------------------------------com3显示
LD A,(COM3_DATA)
CALL LEDDIS_NOW
SET (P0).COM3
CALL DIS_KEEP
CLR (P0).COM3
;----------------------------------com4显示
LD A,(COM4_DATA)
CALL LEDDIS_NOW
SET (P0).COM4
CALL DIS_KEEP
CLR (P0).COM4
RET
;===========================================================
LEDDIS_NOW:
LD B,0X08;BIT CONT
DIS_LOOP:
ROLC A
J CC,BIT_0
SET (P0).LED_DAT
J D_LOOP1
BIT_0:
CLR (P0).LED_DAT
D_LOOP1:
NOP
NOP
NOP
NOP
SET (P3).LED_CLK
NOP
NOP
NOP
NOP
CLR (P3).LED_CLK
NOP
NOP
NOP
DEC B
J NZ,DIS_LOOP
RET
;===========================================================
;===========================================================
HEX2BCD:
LD (HBIT),0X00
LD A,(LBIT)
BIN1:
CMP A,0X0A
J CS,OVER
SUB A,0X0A
; J CS,OVER
INC (HBIT)
J BIN1
OVER:
; ADD A,0X0A
LD (LBIT),A
RET
;===========================================================
DIS_KEEP:
LD IX,250;20000
DEC_IX:
DEC IX
J NZ,DEC_IX
RET
;===========================================================
;===========================================================
AD_INPUT:
LD (ADCCR2),0X04;速率为19.5us,4mhz
LD (ADCCR1),0X21;选择AD通道2,单次启动
LD HL,TTEMP1
LD A,0X03;3次AD
WAIT_ADD:
SET (ADCCR1).ADS;启动AD
LD CF,(ADCDR2).EOCF
J CC,WAIT_ADD;等待AD转换结束
LD B,(ADCDR1);读取AD结果
SUB B,80
LD (HL),B
INC HL
INC (ADCCR1)
DEC A
J NZ,WAIT_ADD
;---------------------------------- 查表
FTAB:
LD C,(TTEMP1)
LD HL,TEMP_TAB
LD A,(HL+C)
LD (TEMP1),A
;------------------------------TEMP2
LD C,(TTEMP2)
LD HL,TEMP_TAB
LD A,(HL+C)
LD (TEMP2),A
;------------------------------TEMP3
LD C,(TTEMP3)
LD HL,TEMP_TAB
LD A,(HL+C)
LD (TEMP3),A
RET
;===========================================================
TEMP_TAB:
DB 0XFD;251 ; 80
DB 0XFD;251 ; 81
DB 0XFD;251 ; 82
DB 0XFD;251 ; 83
DB 0XFD;255 ; 84
DB 0XFE;255 ; 85
DB 0XFE;255 ; 86
DB 0XFE;255 ; 87
DB 0XFE;255 ; 88
DB 0XFF;255 ; 89
DB 0XFF;255 ; 90
DB 0XFF;255 ; 91
DB 0X00;0 ; 92
DB 0X00;0 ; 93
DB 0X00;0 ; 94
DB 0X01;1 ; 95
DB 0X01;1 ; 96
DB 0X01;1 ; 97
DB 0X02;2 ; 98
DB 0X02;2 ; 99
DB 0X02;2 ; 100
DB 0X02;2 ; 101
DB 0X03;3 ; 102
DB 0X03;3 ; 103
DB 0X04;4 ; 104
DB 0X04;4 ; 105
DB 0X05;5 ; 106
DB 0X05;5 ; 107
DB 0X05;5 ; 108
DB 0X06;6 ; 109
DB 0X06;6 ; 110
DB 0X07;7 ; 111
DB 0X07;7 ; 112
DB 0X07;7 ; 113
DB 0X08;8 ; 114
DB 0X08;8 ; 115
DB 0X08;8 ; 116
DB 0X09;9 ; 117
DB 0X09;9 ; 118
DB 0X0A;10 ; 119
DB 0X0A;10 ; 120
DB 0X0A;10 ; 121
DB 0X0B;11 ; 122
DB 0X0B;11 ; 123
DB 0X0B;11 ; 124
DB 0X0C;12 ; 125
DB 0X0C;12 ; 126
DB 0X0D;13 ; 127
DB 0X0D;13 ; 128
DB 0X0D;13 ; 129
DB 0X0E;14 ; 130
DB 0X0E;14 ; 131
DB 0X0E;14 ; 132
DB 0X0F;15 ; 133
DB 0X0F;15 ; 134
DB 0X10;16 ; 135
DB 0X10;16 ; 136
DB 0X10;16 ; 137
DB 0X11;17 ; 138
DB 0X11;17 ; 139
DB 0X11;17 ; 140
DB 0X12;18 ; 141
DB 0X12;18 ; 142
DB 0X13;19 ; 143
DB 0X13;19 ; 144
DB 0X14;20 ; 145
DB 0X14;20 ; 146
DB 0X14;20 ; 147
DB 0X15;21 ; 148
DB 0X15;21 ; 149
DB 0X16;22 ; 150
DB 0X16;22 ; 151
DB 0X16;22 ; 152
DB 0X17;23 ; 153
DB 0X17;23 ; 154
DB 0X18;24 ; 155
DB 0X18;24 ; 156
DB 0X19;25 ; 157
DB 0X19;25 ; 158
DB 0X1A;26 ; 159
DB 0X1A;26 ; 160
DB 0X1A;26 ; 161
DB 0X1B;27 ; 162
DB 0X1B;27 ; 163
DB 0X1C;28 ; 164
DB 0X1C;28 ; 165
DB 0X1D;29 ; 166
DB 0X1D;29 ; 167
DB 0X1D;29 ; 168
DB 0X1E;30 ; 169
DB 0X1E;30 ; 170
DB 0X1F;31 ; 171
DB 0X1F;31 ; 172
DB 0X20;32 ; 173
DB 0X20;32 ; 174
DB 0X21;33 ; 175
DB 0X21;33 ; 176
DB 0X22;34 ; 177
DB 0X22;34 ; 178
DB 0X23;35 ; 179
DB 0X23;35 ; 180
DB 0X24;36 ; 181
DB 0X24;36 ; 182
DB 0X25;37 ; 183
DB 0X25;37 ; 184
DB 0X26;38 ; 185
DB 0X27;39 ; 186
DB 0X27;39 ; 187
DB 0X28;40 ; 188
DB 0X28;40 ; 189
DB 0X29;41 ; 190
DB 0X29;41 ; 191
DB 0X2A;42 ; 192
DB 0X2B;43 ; 193
DB 0X2B;43 ; 194
DB 0X2C;44 ; 195
DB 0X2C;44 ; 196
DB 0X2D;45 ; 197
DB 0X2E;46 ; 198
DB 0X2E;46 ; 199
DB 0X2F;47 ; 200
DB 0X30;48 ; 201
DB 0X30;48 ; 202
DB 0X31;49 ; 203
DB 0X32;50 ; 204
DB 0X33;51 ; 205
DB 0X33;51 ; 206
DB 0X34;52 ; 207
DB 0X35;53 ; 208
DB 0X36;54 ; 209
DB 0X36;54 ; 210
DB 0X37;55 ; 211
DB 0X38;56 ; 212
DB 0X39;57 ; 213
DB 0X3A;58 ; 214
DB 0X3B;59 ; 215
DB 0X3C;60 ; 216
DB 0X3D;61 ; 217
DB 0X3E;62 ; 218
DB 0X3F;63 ; 219
DB 0X40;64 ; 220
DB 0X41;65 ; 221
DB 0X42;66 ; 222
DB 0X43;67 ; 223
DB 0X44;68 ; 224
DB 0X45;69 ; 225
DB 0X46;70;226
DB 0X47;71;227
;==============================================================
DIS_TAB:
DB 0X3F;0
DB 0X06;1
DB 0X5B;2
DB 0X4F;3
DB 0X66;4
DB 0X6D;5
DB 0X7D;6
DB 0X07;7
DB 0X7F;8
DB 0X6F;9
RET
;===========================================================
DIS_TABLCD:
DB 0y11111010;0
DB 0y01100000;1
DB 0y10111100;2
DB 0y11110100;3
DB 0y01100110;4
DB 0y11010110;5
DB 0y11011110;6
DB 0y01110000;7
DB 0y11111110;8
DB 0y11110110;9
DIS_TABLCD1:
DB 0XAF;0
DB 0X06;1
DB 0XCB;2
DB 0X4F;3
DB 0X66;4
DB 0X6D;5
DB 0XED;6
DB 0X07;7
DB 0XEF;8
DB 0X6F;9
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -