⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 temp_adc.lst

📁 it is temperature display using 89c51 which has asm language and hex files good to try
💻 LST
📖 第 1 页 / 共 4 页
字号:
038C 1202AF          460            lcall division_16      
038F 8E42            461            mov out5,r6
TEMP_ADC                                                                                                      PAGE 9

0391 1202AF          462            lcall division_16      
0394 8E41            463            mov out6,r6
0396 853B40          464            mov out7,t00
0399 434030          465    over56: orl out7,#30h ;converting all decimal values to ASCII
039C 434130          466            orl out6,#30h
039F 434230          467            orl out5,#30h
03A2 434330          468            orl out4,#30h
03A5 434430          469            orl out3,#30h
03A8 434530          470            orl out2,#30h
03AB 434630          471            orl out1,#30h
03AE 434730          472            orl out0,#30h
03B1 22              473            ret
03B2                 474    dec_to_hex: ;Routine convert the 4 digit decimal into 2 byte hex                
03B2 7800            475            mov r0,#00h  ;Input in t3 t2 t1 t0 and output in hex1 hex0
03B4 7900            476            mov r1,#00h
03B6 7A00            477            mov r2,#00h
03B8 7B00            478            mov r3,#00h
03BA 7C00            479            mov r4,#00h
03BC 7D00            480            mov r5,#00h
03BE 7E00            481            mov r6,#00h
03C0 7F00            482            mov r7,#00h
03C2 753C00          483            mov hex1,#00h
03C5 753D00          484            mov hex0,#00h
03C8 A838            485            mov r0,t3
03CA B80003          486            cjne r0,#00h,load0
03CD 0203DA          487            ljmp load1
03D0 E8              488    load0:  mov a,r0
03D1 75F00A          489            mov b,#0ah
03D4 A4              490            mul ab
03D5 F8              491            mov r0,a
03D6 FF              492            mov r7,a
03D7 753E64          493            mov m641,#64h
03DA AA39            494    load1:  mov r2,t2
03DC BA0003          495            cjne r2,#00h,load2
03DF 0203E5          496            ljmp load3
03E2 753F64          497    load2:  mov m640,#64h
03E5 AC3A            498    load3:  mov r4,t11
03E7 BC0003          499            cjne r4,#00h,load5
03EA 0203F4          500            ljmp load6
03ED EC              501    load5:  mov a,r4
03EE 75F00A          502            mov b,#0ah
03F1 A4              503            mul ab
03F2 FC              504            mov r4,a
03F3 FE              505            mov r6,a                
03F4 AD3B            506    load6:  mov r5,t00
03F6 BD0001          507            cjne r5,#00h,starting
03F9 00              508            nop
03FA AD3B            509    starting:mov r5,t00             
03FC BD0003          510            cjne r5,#00h,here5
03FF 020406          511            ljmp now2
0402 053D            512    here5:  inc hex0
0404 DDFC            513            djnz r5,here5
0406 EE              514    now2:   mov a,r6
0407 FC              515            mov r4,a
0408 BC0003          516            cjne r4,#00h,here4
040B 020412          517            ljmp now3
040E 053D            518    here4:  inc hex0                
0410 DCFC            519            djnz r4,here4
TEMP_ADC                                                                                                      PAGE 10

0412 AA39            520    now3:   mov r2,t2               
0414 BA0003          521            cjne r2,#00h,here3
0417 02042D          522            ljmp now4
041A AB3F            523    here3:  mov r3,m640
041C C3              524    here2:  clr c
041D E53D            525            mov a,hex0
041F 2401            526            add a,#01h
0421 F53D            527            mov hex0,a
0423 E53C            528            mov a,hex1
0425 3400            529            addc a,#00h
0427 F53C            530            mov hex1,a
0429 DBF1            531    cont:   djnz r3,here2   
042B DAED            532            djnz r2,here3
042D EF              533    now4:   mov a,r7                
042E F8              534            mov r0,a
042F B80003          535            cjne r0,#00h,here1
0432 020448          536            ljmp home
0435 A93E            537    here1:  mov r1,m641
0437 C3              538    here0:  clr c
0438 E53D            539            mov a,hex0
043A 2401            540            add a,#01h
043C F53D            541            mov hex0,a
043E E53C            542            mov a,hex1
0440 3400            543            addc a,#00h
0442 F53C            544            mov hex1,a
0444 D9F1            545    cont1:  djnz r1,here0   
0446 D8ED            546            djnz r0,here1
0448 22              547    home:   ret
0449                 548    thfound: ;routine provide threshold value range from 20 to 49 degree celcius for user
0449 FE              549            mov r6,a
044A BE011B          550            cjne r6,#01h,dec_th
044D 0524            551            inc threshold0
044F E524            552            mov a,threshold0
0451 B43A30          553            cjne a,#3ah,ter_return
0454 E523            554            mov a,threshold1
0456 B43408          555            cjne a,#34h,notninerth
0459 752332          556            mov threshold1,#32h
045C 752430          557            mov threshold0,#30h
045F 8023            558            sjmp ter_return
0461                 559    notninerth:
0461 0523            560            inc threshold1
0463 752430          561            mov threshold0,#30h
0466 801C            562            sjmp ter_return
0468 BE0219          563    dec_th: cjne r6,#02h,ter_return
046B 1524            564            dec threshold0
046D E524            565            mov a,threshold0
046F B42F12          566            cjne a,#2fh,ter_return
0472 E523            567            mov a,threshold1
0474 B43208          568            cjne a,#32h,notzerorth
0477 752334          569            mov threshold1,#34h
047A 752439          570            mov threshold0,#39h
047D 8005            571            sjmp ter_return
047F                 572    notzerorth:
047F 1523            573            dec threshold1
0481 752439          574            mov threshold0,#39h
0484                 575    ter_return:
0484 7512C5          576            mov lcdcom,#0c5h
0487 120552          577            lcall command
TEMP_ADC                                                                                                      PAGE 11

048A 852311          578            mov disp_data,threshold1
048D 12056F          579            lcall data_routine
0490 852411          580            mov disp_data,threshold0
0493 12056F          581            lcall data_routine
0496 12059B          582            lcall delay140m ;debouncing delay
0499 12059B          583            lcall delay140m
049C 12059B          584            lcall delay140m
049F 22              585            ret
04A0                 586    intfound: ;routine provide recording interval range from 01 to 99 secs for user
04A0 FE              587            mov r6,a
04A1 BE011B          588            cjne r6,#01h,dec_int
04A4 0522            589            inc interval0
04A6 E522            590            mov a,interval0
04A8 B43A30          591            cjne a,#3ah,int_return
04AB E521            592            mov a,interval1
04AD B43908          593            cjne a,#39h,notniner
04B0 752231          594            mov interval0,#31h
04B3 752130          595            mov interval1,#30h
04B6 8023            596            sjmp int_return
04B8 0521            597    notniner:inc interval1
04BA 752230          598            mov interval0,#30h
04BD 801C            599            sjmp int_return
04BF BE0219          600    dec_int:cjne r6,#02h,int_return
04C2 1522            601            dec interval0
04C4 E522            602            mov a,interval0
04C6 B43012          603            cjne a,#30h,int_return
04C9 E521            604            mov a,interval1
04CB B43008          605            cjne a,#30h,notzeror
04CE 752239          606            mov interval0,#39h
04D1 752139          607            mov interval1,#39h
04D4 8005            608            sjmp int_return
04D6 1521            609    notzeror:dec interval1
04D8 752239          610            mov interval0,#39h
04DB 7512C5          611    int_return: mov lcdcom,#0c5h
04DE 120552          612            lcall command
04E1 852111          613            mov disp_data,interval1
04E4 12056F          614            lcall data_routine
04E7 852211          615            mov disp_data,interval0
04EA 12056F          616            lcall data_routine
04ED 12059B          617            lcall delay140m ;debouncing delay
04F0 12059B          618            lcall delay140m
04F3 12059B          619            lcall delay140m
04F6 22              620            ret
04F7                 621    display_text: ;display a 16 byte in ASCII string on lcd
04F7 75100F          622            mov count,#0fh  
04FA 7400            623    nextchar:mov a,#00h
04FC 93              624            movc a,@a+dptr
04FD F511            625            mov disp_data,a 
04FF 12056F          626            lcall data_routine
0502 A3              627            inc dptr
0503 E510            628            mov a,count
0505 B40002          629            cjne a,#00h,next1
0508 8004            630            sjmp here11
050A 1510            631    next1:  dec count
050C 80EC            632            sjmp nextchar
050E 22              633    here11: ret
050F                 634    lcd_initialize: ;initialize lcd
050F 751238          635            mov lcdcom,#38h ;5*7 matrix 16*2 char lcd
TEMP_ADC                                                                                                      PAGE 12

0512 120552          636            lcall command
0515 120589          637            lcall delay40u
0518 751201          638            mov lcdcom,#01h ;clear lcd
051B 120552          639            lcall command
051E 120592          640            lcall delay14m
0521 75120E          641            mov lcdcom,#0Eh ;blink off, cursor ON, display ON
0524 120552          642            lcall command
0527 120589          643            lcall delay40u
052A 751206          644            mov lcdcom,#06h ;shift cursor right
052D 120552          645            lcall command
0530 120589          646            lcall delay40u
0533 22              647            ret
0534 751201          648    clear_lcd:mov lcdcom,#01h ;clear LCD screen
0537 120552          649            lcall command
053A 120592          650            lcall delay14m
053D 751280          651            mov lcdcom,#80h
0540 120552          652            lcall command
0543 22              653            ret
0544                 654    cursoroff: ;lcd cursor off
0544 75120C          655            mov lcdcom,#0ch
0547 120552          656            lcall command
054A 22              657            ret
054B                 658    cursoron: ;lcd cursor on
054B 75120E          659            mov lcdcom,#0eh
054E 120552          660            lcall command
0551 22              661            ret
0552                 662    command: ;routine to send the command to LCD
0552 C2B2            663            clr p3.2        ;rs=0 
0554 C2B3            664            clr p3.3        ;rw=0   
0556 120584          665            lcall delay10u  ;delay of 10usec
0559 D2B4            666            setb p3.4       ;E=1;   
055B 120584          667            lcall delay10u  ;delay of 10usec
055E 851290          668            mov p1,lcdcom   ;mov data
0561 120584          669            lcall delay10u  ;delay of 10usec
0564 C2B4            670            clr p3.4        ;E=0
0566 120584          671            lcall delay10u
0569 D2B3            672            setb p3.3       ;rw=1
056B 120589          673            lcall delay40u
056E 22              674            ret
056F                 675    data_routine: ;routine to send ASCII data to LCD
056F D2B2            676            setb p3.2       ;rs=1 
0571 C2B3            677            clr p3.3        ;rw=0 
0573 120584          678            lcall delay10u  
0576 D2B4            679            setb p3.4       ;E=1;   
0578 120584          680            lcall delay10u
057B 851190          681            mov p1,disp_data        
057E C2B4            682            clr p3.4        ;E=0
0580 120589          683            lcall delay40u
0583 22              684            ret
0584                 685    delay10u: ;delay of 10 usec
0584 7C04            686            mov r4,#04h
0586 DCFE            687    here10u:djnz r4,here10u
0588 22              688            ret             
0589                 689    delay40u: ;delay of 40 usec
0589 7B09            690            mov r3,#09h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -