📄 main4.lis
字号:
0034 9000 call RX8_1_Start
0036 918C call delay //Prevents serial communication error.
0038 5065 mov A,<dateandtime
003A 5C mov X,A
003B 5363 mov [temp3],A
003D 5F6463 mov [msb_dateandtime],[temp3]
0040 066409 add [msb_dateandtime],9
0043
0043
0043 .WAIT_FOR_RX_ACTIVE:
0043 9000 call bRX8_1_ReadRxStatus
0045 2110 and A, RX8_RX_ACTIVE
0047 B003 jnz .WAIT_FOR_RX_COMPLETE
0049 AFF9 jz .WAIT_FOR_RX_ACTIVE ; data byte has not been received
004B
004B ; Receiver is actively receiving data, wait for it to complete
004B .WAIT_FOR_RX_COMPLETE:
004B 9000 call bRX8_1_ReadRxStatus
004D 08 push A
004E 2108 AND A, RX8_RX_COMPLETE
0050 B004 jnz .CHECK_RX_ERRORS
0052 18 pop A
0053 8FF7 jmp .WAIT_FOR_RX_COMPLETE
0055 ; Data completely received now check for errors
0055 .CHECK_RX_ERRORS:
0055 18 pop A
0056 9000 call bRX8_1_ReadRxStatus ; get the Rx status register
0058 21E0 and A, RX8_RX_NO_ERROR ; mask off non-status bits
005A A005 jz .DATA_RX_WITH_NO_ERRORS ; data is valid - no error detected
005C
005C ; Errors detected in received data - return with error condition
005C
005C ; 1) A is set to FALSE indicating error condition
005C
005C ; 2) bRxData contains the RX status flags for further processing
005C
005C .RX_ERRORS_FOUND:
005C // mov [bRxData], A ; bRxData contains the status flags
005C 9000 call bRX8_1_ReadRxData ; Read RxData reg to prevent future overrun error
005E 5000 mov A, FALSE ; Set A to FALSE condition
0060 // jmp receivedata
0060
0060 ; No error detected in received data - return with data
0060
0060 ; 1) A is set to TRUE indicating NO error condition
0060
0060 ; 2) bRxData contians the received data byte
0060 .DATA_RX_WITH_NO_ERRORS:
0060 9000 call bRX8_1_ReadRxData ; get the received data in A
0062 5863 mov X,[temp3]
0064 5400 mov [X],A
0066 7663 inc [temp3]
0068 5163 mov A,[temp3]
006A 3A64 cmp A,[msb_dateandtime] ;6Ch
006C A005 jz end
006E // mov [bRxData], A ; bRxData contains received data byte
006E 5001 mov A, TRUE ; set a to NO error condition
0070 8FD2 jmp .WAIT_FOR_RX_ACTIVE
0072 end:
0072 9000 call RX8_1_Stop
0074 914E call delay //Prevents serial communication error.
0076 914C call delay //Prevents serial communication error.
0078
0078
0078 5864 mov X,[msb_dateandtime]
007A 79 dec X
007B 5200 mov A,[x]
007D 395A cmp A,5Ah
007F BFB4 jnz receivedata
0081
0081
0081 5065 mov A,<dateandtime
0083 5C mov X,A
0084
0084
0084 5200 mov A,[x]
0086 1130 sub A,30h
0088 F14B index asciihextable
008A 5363 mov [temp3],A
008C 6B63 rlc [temp3]
008E 6B63 rlc [temp3]
0090 6B63 rlc [temp3]
0092 6B63 rlc [temp3]
0094 75 inc X
0095 5200 mov A,[x]
0097 1130 sub A,30h
0099 F13A index asciihextable
009B 0263 add A,[temp3]
009D 5351 mov [month],A
009F
009F 75 inc x
00A0 5200 mov A,[x]
00A2 1130 sub A,30h
00A4 F12F index asciihextable
00A6 5363 mov [temp3],A
00A8 6B63 rlc [temp3]
00AA 6B63 rlc [temp3]
00AC 6B63 rlc [temp3]
00AE 6B63 rlc [temp3]
00B0 75 inc X
00B1 5200 mov A,[x]
00B3 1130 sub A,30h
00B5 F11E index asciihextable
00B7 0263 add A,[temp3]
00B9 5352 mov [day],A
00BB
00BB 75 inc x
00BC 5200 mov A,[x]
00BE 1130 sub A,30h
00C0 F113 index asciihextable
00C2 5363 mov [temp3],A
00C4 6B63 rlc [temp3]
00C6 6B63 rlc [temp3]
00C8 6B63 rlc [temp3]
00CA 6B63 rlc [temp3]
00CC 75 inc X
00CD 5200 mov A,[x]
00CF 1130 sub A,30h
00D1 F102 index asciihextable
00D3 0263 add A,[temp3]
00D5 5353 mov [hour],A
00D7
00D7 75 inc x
00D8 5200 mov A,[x]
00DA 1130 sub A,30h
00DC F0F7 index asciihextable
00DE 5363 mov [temp3],A
00E0 6B63 rlc [temp3]
00E2 6B63 rlc [temp3]
00E4 6B63 rlc [temp3]
00E6 6B63 rlc [temp3]
00E8 75 inc X
00E9 5200 mov A,[x]
00EB 1130 sub A,30h
00ED F0E6 index asciihextable
00EF 0263 add A,[temp3]
00F1 5354 mov [minute],A
00F3
00F3
00F3 //Send data to PC
00F3 senddata:
00F3
00F3 3C5D0F cmp [address_msb],0fh
00F6 B00A jnz skip
00F8
00F8 checkforRAM:
00F8 5700 mov X,0h
00FA 3D00EE cmp [x],EEh
00FD B068 jnz sendRAM
00FF 8083 jmp finished
0101
0101
0101
0101
0101 //mov A,10h
0101 //mov X,00h
0101
0101 skip:
0101 555E10 mov [temp_msb],10h
0104 555F00 mov [temp_lsb],00h
0107
0107 checkforend:
0107 515E mov A,[temp_msb]
0109 3A5D cmp A,[address_msb]
010B B007 jnz incrementrom
010D 515F mov A,[temp_lsb]
010F 3A5C cmp A,[address_lsb]
0111 A028 jz sendlast40
0113 //else increment rom
0113 incrementrom:
0113 515E mov A,[temp_msb]
0115 585F mov X,[temp_lsb]
0117 28 romx //sending data
0118 536D mov [tempbyte],A
011A 70FB and F,FBh //Clear Carry
011C 21F0 and A,F0h
011E
011E 6D rrc A
011F 6D rrc A
0120 6D rrc A
0121 6D rrc A
0122 F0C8 index hextoasciitable
0124 9095 call sendbyte
0126 516D mov A,[tempbyte]
0128 210F and A,0Fh
012A F0C0 index hextoasciitable
012C 908D call sendbyte
012E 765F inc [temp_lsb]
0130 515F mov A,[temp_lsb]
0132 3900 cmp A,00h
0134 BFD2 jnz checkforend
0136 765E inc [temp_msb]
0138 8FCE jmp checkforend
013A
013A
013A sendlast40:
013A 556340 mov [temp3],40h
013D sendit:
013D 515E mov A,[temp_msb]
013F 585F mov X,[temp_lsb]
0141 28 romx //sending data
0142 536D mov [tempbyte],A
0144 70FB and F,FBh //clear carry
0146 21F0 and A,F0h
0148 6D rrc A
0149 6D rrc A
014A 6D rrc A
014B 6D rrc A
014C F09E index hextoasciitable
014E 906B call sendbyte
0150
0150 516D mov A,[tempbyte]
0152 210F and A,0Fh
0154 F096 index hextoasciitable
0156 9063 call sendbyte
0158
0158 765F inc [temp_lsb]
015A 7A63 dec [temp3]
015C BFE0 jnz sendit
015E
015E 5700 mov X,0h
0160 5200 mov A,[x]
0162 39EE cmp A,EEh
0164 A01E jz finished
0166
0166 sendRAM:
0166 5200 mov A,[X]
0168 70FB and F,FBh //clear carry
016A 21F0 and A,F0h
016C 6D rrc A
016D 6D rrc A
016E 6D rrc A
016F 6D rrc A
0170 F07A index hextoasciitable
0172 9047 call sendbyte
0174
0174 5200 mov A,[X]
0176 210F and A,0Fh
0178 F072 index hextoasciitable
017A 903F call sendbyte
017C
017C 75 inc X
017D 5200 mov A,[x]
017F 39EE cmp A,EEh
0181 BFE4 jnz sendRAM
0183
0183
0183
0183
0183
0183
0183 finished:
0183 40 nop
0184 8EAF jmp receivedata
0186 //jmp finished
0186
0186
0186 7F ret
0187
export writeflash
0187 writeflash:
0187 555500 mov [tel_status],00h //Telephone is closed.
018A 555A00 mov [te_second],00h
018D 555900 mov [te_minute],00h
0190 10 push X
0191 4F mov X, SP
0192 5019 mov A, 25 ; cTemperature argument
0194 08 push A
0195 5000 mov A, 00 ; wByteCount
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -