毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

用单片机实现温度远程显示 第7页

更新时间:2008-4-24:  来源:毕业论文

用单片机实现温度远程显示 第7页

d_43:    mov a,td_n

     cjne a,#0,d_40

     mov td_n,#7

d_42:    dec yd_n100

     mov a,yd_n100

     cjne a,#9h,d_41

     mov yd_n100,#0fh

     ajmp d_41

d_40:    dec td_n

d_41:    mov a,yd_n100

     lcall send_order

     JNZ d_42

     mov disp_buf+5,yd_n100

     mov a,td_n

     lcall ascii_bcd

     jnz d_43

     mov disp_buf+4,td_n

     acall mov_to_disp

     mov a,#100         ;2秒钟定时设定

     add a,time_20ms

     ajmp d_3

;----------------------------------

d_10:    cjne a,time_20ms,d_30

     mov a,yd_n100

     lcall send_order

     jnz d_30

     mov a,td_n

     lcall ascii_bcd

     jnz d_30

     acall mov_to_disp

mov a,#100

     add a,time_20ms

d_30:ajmp d_3

;----------------------------------

mov_to_disp:mov disp_buf,r1

     mov disp_buf+1,r2

     mov disp_buf+2,r3

     mov disp_buf+3,r4

     ret

chuhao:  mov r1,#1eh        ;初始化等待提示

     mov r2,#22h

     mov r3,#21h

     mov r4,#1fh

     mov disp_buf+4,#21h

     mov disp_buf+5,#20h

     acall mov_to_disp

     mov a,#75

     add a,time_20ms

     cjne a,time_20ms,$

     mov wdt,#0

     clear_wdt

     mov a,#75

     add a,time_20ms

     cjne a,time_20ms,$

     ret

    end

2、数据转换子模块(rand_data.a51

;-----------2-------rand_data.a51----------------

name  rand_data

extrn idata (rec_buf)

public ascii_bcd

prog SEGMENT CODE           ;定义代码段

byte_buff segment data      ;定义字节数据段1

byte_buffI segment idata    ;定义字节数据段2

bit_buff segment data bitaddressable ;定义位寻址区字节数据段

     rseg prog

     using 0

;-------------------------------------

ASCII_BCD:mov b,#8     ;计算该通道数据偏移首地址

     mul ab

     add a,#5

     mov r0,#rec_buf

     add a,r0

     mov b,a

     mov r0,a

     acall ascii4_bcd3

     mov a,b            ;还原小数位数

     add a,#7

     mov r0,a

     acall ascii_bin

     mov r6,a           ;小数位数暂存在R6

     mov a,r5

     jz asc_oK

     mov a,dpl

     cpl a

     clr c

     inc a

     mov dpl,a

     mov a,dph

     cpl a

     addc a,#0

     mov dph,a

     jnz asc_b

asc_0:   mov a,dpl

     dec a

     jnz asc_b

     mov r1,#0fh

     mov r2,#0fh

     mov r3,#0fh

     mov r4,#0fh

     mov a,#0fh

     ajmp asc_out

asc_b:   mov r1,dpl         ;为负数处理

     mov r2,dph

     acall bin_bcd

     mov a,b            ;还原小数位数

     add a,#7

     mov r0,a

     acall ascii_bin

     mov r6,a           ;小数位数暂存r6

     acall bcd2_bcd1

     mov a,r4

     dec a

     jnz asc_100        ;数据小于-199.9时显示-199.9

     mov r4,#23h

     ajmp asc_sw

asc_100:mov r4,#23h

     mov r3,#9

     mov r2,#19h

     mov r1,#9

     ajmp asc_sw_1

asc_ok:  acall bcd2_bcd1        ;正常数据处理程序

asc_sw:  mov a,r4      ;清除有效位前面的0    

     jnz asc_sw_1

     mov r4,#1ch

     mov a,r3

     jnz asc_sw_1

     mov r3,#1ch

asc_sw_1:clr a

asc_out:ret

;------------每字节两位BCD码转换为每字节一位BCD码子程序

;入口:r3=个位及十位BCD,r4=百位及千位BCD,r6=小数位数

;出口:r1=个位BCD,r2=十位BCD,r3=百位BCD,r4=千位BCD

bcd2_bcd1:mov a,r3     ;个位及十位BCD数处理

     anl a,#0fh

     mov r1,a

     mov a,r3

     anl a,#0f0h

     swap a

     mov r2,a

     mov a,r4      ;百位及千位BCD数处理

     anl a,#0fh

     mov r3,a

     mov a,r4

     anl a,#0f0h

     swap a

     mov r4,a

     mov a,r6      ;加入小数点信息

     jz bcd2_out

     add a,#ar1

     mov r0,a

     mov a,@r0

     add a,#10h

     mov @r0,a

bcd2_out:ret

;---------------ASCii4_BCD3转换子程序

;入口:r0=四字节ASCII码首地址

;出口:r5,r4,r3从高至低依次存放BCD码(r3,r4各存2位,r51位)

ascii4_bcd3:acall ascii4_bin2

     mov dpl,r1

     mov dph,r2

     acall bin_bcd

     ret

;---------------BIN_BCD转换子程序

;入口:r1=BIN低字节,r2=BIN高字节 共2字节

;出口:r3=2BCD码,r4=2BCD,r5=可能的最高位BCD   

bin_bcd:PUSH ACC

     PUSH PSW

     mov r3,#0 ;BCD单元清0

     mov r4,#0

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

用单片机实现温度远程显示 第7页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。