您现在所在的是:

单片机论坛

回帖:1个,阅读:662 [上一页] [1] [下一页]
912
sfmcu
文章数:44
年度积分:50
历史总积分:912
注册时间:2006/8/22
发站内信
08年优秀博客奖
发表于:2010/1/18 20:41:59
#0楼
1    系统功能介绍

1.多功能显示器能通过按键二和按键三来调整lcd显示站名,方便乘客能随时知道列车即将到达哪站,给需要下车的乘客作好提示的准备。
2.多功能显示器同时显示温度、时间、几日期,并且通过按键4选择调节时间还是日期。再用按键二和按键三来调整时间和日期(按一下4键调整时间、再按一下4键调整日期、再按一下返回)
3.单片机多功能显示器的功能如下:
l        使用ts1602-lcd显示器来显示。
l        时间显示格式为“时分”、日期为英文的前三个字母加几号(比如“5月31号”,显示为“may[31]” 。
l        由于盛方sf-51学习板中,按键一和ds18b20温度传感器用跳线选择(锁紧插座左边,带有18b20、ant字符的,在18b20一侧的为选通温度传感器 ,在ant则是选通第一个按键)。所以有3个按键来作功能设置,可以设置现在的时间及显示定时设置时间以及站名。
l        盛方sf-51学习板中的4个led发光二极管,分别用于检测ds18b20存在,ds18b20存在且复位后在读数据前还能检测到ds18b20,程序在执行到已经读到温度数据后的标志显示,在调用ts1602显示后还能正常返回的标志。(就是说4个led全亮才能说明ds18b20存在并且正常工作)
l        具体站名用拼音代替,比如下面的程序是从上海北京的列车显示,上海用shai代替,北京用bjin(即最后一个字母显示全了,前面的都用第一个字母代替)。上海(shai)→无锡(wuxi)→南京(njin)→徐州(xzhou)→济南(jnan)→唐山(tshan)→天津(tjin)→北京(bjin)。
2    系统结构框图
具体接口电路在以下sf-51电路图中有详细的说明,在这里就不在详细叙述
700){this.width=700;} border=0>
图1.2.1、ts11620(和ts1602一样)液晶与单片机的接口电路

700){this.width=700;} border=0>
图1.2.2、检测ds18b20是否正常工作的4个led与单片机的借口电路
700){this.width=700;} border=0>
图1.2.3、所有89s51芯片的各个管脚
700){this.width=700;} border=0>
图1.2.4、显示效果图
3    软件流程图



700){this.width=700;} border=0>

4    程序清单

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
e        equ 90h    
rw       equ 91h       ;;;; lcd定义
rs       equ 92h    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
miao     equ    70h
fen      equ    71h  
shi      equ    72h            ;;;;;;时间单元
fenb     equ    60h  
shib     equ    61h    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
yue      equ    74h    
jihao    equ    75h            ;;;;;;几月几号
yueb     equ    62h    
jihaob   equ    63h    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ms_50    equ    7dh            ;定时器产生20*50ms中断;
;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;
ys       equ    58h
yd       equ    56h
temper_l equ    29h            ;用于保存读出温度的低8位
temper_h equ    28h            ;用于保存读出温度的高8位
flag1    equ    38h            ;是否检测到ds18b20标志位
a_bit    equ    20h                ;数码管个位数存放内存位置
b_bit    equ    21h                ;数码管十位数存放内存位置
b        equ    0f0h
        org    0000h
        ljmp   main
        org    001bh
        ljmp   time1
        org    0050h
main:
        mov    81h,#20h      ;sp
        mov    shi,#12h      ;初始化
        mov    fen,#12h
        mov    miao,#00h
        mov    yue,#05
       mov    jihao,#31h
        mov    8dh,#4ch      ;t1设初值
        mov    8bh,#01h
        mov    89h,#10h       ;t1选择模式一
        mov    0a8h,#88h     ;中断允许ie
        setb   8eh            ;启动t1
        mov    ms_50,#20
        mov    yd,#0a8h
        mov    ys,#01h
main1:   lcall main3
lvvv:   lcall main0
lzxc:   jnb    83h,l4
        jnb    81h,liii
        jnb    82h,leee
        lcall main1
  l4:   jnb    83h,$
        lcall key
liii:    jnb    81h,$
        mov    a,ys
        dec    a
        mov    ys,a
        mov    a,ys
        xrl    a,#00h
        jnz    lzxc
        mov    ys,#01h
        ljmp   lzxc
leee:    jnb    82h,$
        mov    a,ys
        inc    a
        mov    ys,a
        mov    a,ys
        xrl    a,#09h
        jnz    lzxc
        mov    ys,#01h
        lcall lzxc
time1:   push   0d0h
        push   0e0h
        mov    8dh,#4ch
        mov    8bh,#01h
        mov    a,ms_50
        cjne   a,#20,l06
        clr    7ch
        sjmp   l07
l06:     cjne   a,#10,l07
        setb   7ch
l07:     djnz   ms_50,ret1
        mov    ms_50,#20
        mov    a,miao
        add    a,#01h        ;miao+1
        da     a
        mov    miao,a
        xrl    a,#60h
        jnz    ret1
        mov    miao,#00h
        mov    a,fen
        add    a,#01h        ;fen+1
        da     a
        mov    fen,a
        xrl    a,#60h
        jnz    ret1
        mov    fen,#00h
        mov    a,shi
        add    a,#01h
        da     a
        mov    shi,a
        xrl    a,#24h
        jnz    ret1
        mov    shi,#00h
        mov    a,jihao
        add    a,#01
        da     a
        mov    jihao,a
        xrl    a,#32h
        jnz    ret1
        mov    jihao,#01h
        mov    a,yue
        add    a,#01
        mov    yue,a
        cjne   a,#13,ret1
        mov    yue,#01
        ljmp   ret1
ret1:    pop    0e0h
        pop    0d0h
        reti
key:     clr    8eh
        jnb    83h,l6
        jnb    81h,l08
        jnb    82h,l08
        sjmp   l11
l6:      jnb    83h,$
        lcall triqi
delay4: mov    r4,#05h          ;1ms延迟
   d55: mov    r5,#250
        nop
        djnz   r5,$
        djnz   r4,d55
        ret
l08:    
;;;;;;;;;;;;调时间;;;;;;;;;;;;;;;;显示延时
        jb     81h,l09
luu:   nop
lasd:   jnb    81h,luu
        mov    a,shi
        add    a,#01h
        da     a
        mov    shi,a
        mov    shib,shi
        mov    a,shi
        cjne   a,#24h,l11
        mov    shi,#00h
        sjmp   l11
l09:     jb     82h,l11
   ltt: nop
        jnb    82h,ltt
        mov    a,fen
        add    a,#01h
        da     a
        mov    fen,a
        mov    fenb,fen
        xrl    a,#60h
        jnz    l11
        mov    fen,#00h
l11:     lcall delay0
        mov    r7,#80h
        lcall lcd_wcmd
        mov    r7,#43h
        lcall lcd_wdat
        mov    r7,#81h
        lcall lcd_wcmd
        mov    r7,#3eh
        lcall lcd_wdat        
        mov    r7,#86h
        lcall lcd_wcmd
        mov    a,fen
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#85h
        lcall lcd_wcmd
        mov    a,fen
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#84h
        lcall lcd_wcmd
        mov    r7,#83h
        lcall lcd_wcmd
        mov    a,shi
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#82h
        lcall lcd_wcmd        
        mov    a,shi
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#86h
        lcall lcd_wcmd
        mov    a,fen
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#87h
        lcall lcd_wcmd
        mov    r7,#20h
        lcall lcd_wdat
        ljmp   key
triqi:    
        jnb    83h,l66
        jnb    81h,lf08
        jnb    82h,lf08
        ljmp   l111
l66:     jnb    83h,$
        setb   8eh
        ljmp   main0
lf08:  
;;;;;;;;;;;;调日期;;;;;;;;;;;;;;;;显示延时
        jb     81h,l099
luuu: nop
lasdd: jnb    81h,luuu
        mov    a,yue
        add    a,#01
        mov    yue,a
        mov    a,yue
        cjne   a,#13,l111
        mov    yue,#01
        sjmp   l111
l099:    jb     82h,l111
   lttt:nop
        jnb    82h,lttt
        mov    a,jihao
        add    a,#01h
        da     a
        mov    jihao,a
        mov    a,jihao
        xrl    a,#32h
        jnz    l111
        mov    jihao,#00h
l111:    lcall delay0
        mov    r7,#81h
        lcall lcd_wcmd
        mov    r7,#20h
        lcall lcd_wdat
        mov    r7,#88h
        lcall lcd_wcmd
        mov    r7,#3eh
        lcall lcd_wdat
        mov    r7,#8fh
        lcall lcd_wcmd
        mov    r7,#5dh
        lcall lcd_wdat
        mov    r7,#8eh
        lcall lcd_wcmd
        mov    a,jihao
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8dh
        lcall lcd_wcmd
        mov    a,jihao
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8ch
        lcall lcd_wcmd
        mov    r7,#5bh
        lcall lcd_wdat
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#8bh
        lcall lcd_wcmd
        mov    dptr,#tab3
        mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8ah
        lcall lcd_wcmd        
        mov    dptr,#tab2
        mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#89h
        lcall lcd_wcmd
        mov    dptr,#tab1
       mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        ljmp   triqi
;;;;;;;;;;;lcd初始化;;;;;;;;;;;;;;;;;;;;;;;
main0:   mov    90h,#00h
        clr    92h
        mov    81h,#60h
        lcall delay5ms
        mov    r7,#38h   ;设置显示模式,设置16x2显示,5x7点阵,8位数据接口
        lcall lcd_wcmd
        lcall delay5ms
        mov    r7,#0ch   ;设置显示开或关及光标,开显示,不显示光标
        lcall lcd_wcmd
        lcall delay5ms
        mov    r7,#06h   ;设置显示开或关及光标,地址指针及光标加一
        lcall lcd_wcmd
        lcall delay5ms
        mov    r7,#01h   ;显示清屏
        lcall lcd_wcmd
        lcall delay5ms
        lcall delay10ms
        lcall delay10ms
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;时间显示程序    
dis0:
        mov    r7,#80h
        lcall lcd_wcmd
        mov    r7,#54h
        lcall lcd_wdat                    
        mov    90h,#00h
        mov    r7,#86h
        lcall lcd_wcmd
        mov    a,fen
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#85h
        lcall lcd_wcmd
        mov    a,fen
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#84h
        lcall lcd_wcmd
        mov    c,7ch
        jc     l41        
        mov    r7,#3ah
        lcall lcd_wdat
        ljmp   lgg
l41:     mov    r7,#20h
        lcall lcd_wdat
lgg:     mov    r7,#83h
        lcall lcd_wcmd
        mov    a,shi
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#82h
        lcall lcd_wcmd        
        mov    a,shi
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;日期显示程序
                     
        mov    r7,#8fh
        lcall lcd_wcmd
        mov    r7,#5dh
        lcall lcd_wdat
        mov    r7,#8eh
        lcall lcd_wcmd
        mov    a,jihao
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8dh
        lcall lcd_wcmd
        mov    a,jihao
        swap   a
        anl    a,#0fh
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8ch
        lcall lcd_wcmd
        mov    r7,#5bh
        lcall lcd_wdat
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#8bh
        lcall lcd_wcmd
        mov    dptr,#tab3
        mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#8ah
        lcall lcd_wcmd        
        mov    dptr,#tab2
        mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#89h
        lcall lcd_wcmd
        mov    dptr,#tab1
        mov    a,yue
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
;;;;;;;;;;;;;;;;te;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#0b1h
        lcall lcd_wcmd    
        mov    r7,#54h
        lcall lcd_wdat
        mov    r7,#0b2h
        lcall lcd_wcmd    
        mov    r7,#65h
        lcall lcd_wdat
;;;;;;;;;;;;;→;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#0a8h
        lcall lcd_wcmd    
        mov    r7,#7eh
        lcall lcd_wdat
        mov    r7,#0a9h
        lcall lcd_wcmd    
        mov    r7,#20h
        lcall lcd_wdat
;;;;;;;;;;;;*c;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#0b6h
        lcall lcd_wcmd    
        mov    r7,#0a5h
        lcall lcd_wdat
        mov    r7,#0b7h
        lcall lcd_wcmd    
        mov    r7,#63h
        lcall lcd_wdat    
;;;;;;;;;;;;;;;站名;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lkjh:    mov    r7,#0aah
        lcall lcd_wcmd
        mov    dptr,#tab01
        mov    a,ys
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#0abh
        lcall lcd_wcmd        
        mov    dptr,#tab02
        mov    a,ys
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#0ach
        lcall lcd_wcmd
        mov    dptr,#tab03
        mov    a,ys
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#0adh
        lcall lcd_wcmd
        mov    dptr,#tab04
        mov    a,ys
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
        mov    r7,#0aeh
        lcall lcd_wcmd
        mov    dptr,#tab05
        mov    a,ys
        movc   a,@a+dptr
        mov    r7,a
        lcall lcd_wdat
;;;;;;;;;;;;;温度显示;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        mov    r7,#0b5h   ;设置显示位置
        lcall lcd_wcmd
        mov dptr,#tab ;指定查表启始地址
        mov a,a_bit ;取个位数
        movc a,@a+dptr ;查个位数的7段代码
        mov r7,a;送出个位的7段代码
        lcall lcd_wdat
        acall d1ms ;显示1ms
        mov    r7,#0b4h   ;设置显示位置
        lcall lcd_wcmd  
        mov a,b_bit ;取十位数
        mov dptr,#tab
        movc a,@a+dptr ;查十位数的7段代码
        mov r7,a ;送出十位的7段代码
        lcall lcd_wdat
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lcall delay8
        lcall lzxc
tab01:   db 20h,53h,57h,4eh,58h,4ah,54h,54h,42h
tab02:   db 20h,48h,75h,4ah,5ah,69h,53h,4ah,4ah
tab03:   db 20h,61h,58h,69h,68h,4eh,68h,69h,69h
tab04:   db 20h,69h,69h,6eh,6fh,61h,61h,6eh,6eh
tab05:   db 20h,20h,20h,20h,75h,6eh,6eh,20h,20h
        ljmp   lzxc
delay8:
        mov    r1,#150
delay7:
        mov    r4,#05h          ;1ms延迟
d555:   mov    r2,#250
        nop
        djnz   r2,$
        djnz   r4,d555
        djnz   r1,delay7
        ret

delay0: mov    r4,#04h          ;1ms延迟
   dd: mov    r5,#123
        nop
        djnz   r5,$
        djnz   r4,dd
        ret
tab:     db     30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
tab1:    db     20h,4ah,46h,4dh,41h,4dh,4ah,4ah,41h,53h,4fh,4eh,44h
tab2:    db     20h,61h,65h,61h,70h,61h,75h,75h,75h,65h,63h,6fh,65h
tab3:    db     20h,6eh,62h,72h,72h,79h,6eh,6ch,67h,74h,74h,76h,63h
lcd_wcmd:
        call    buzycheck
        clr     rs
        clr     rw
        clr     e
        nop
        nop
        mov     0a0h,r7
        nop
        nop
        nop
        nop
        setb    e
        nop
        nop
        nop
        nop
        clr     e
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;写入字符显示数据到lcd
lcd_wdat:
        call    buzycheck
        setb    rs
        clr     rw
        clr     e
        nop
        nop
        mov     0a0h,r7
        nop
        nop
        nop
        nop
        setb    e
        nop
        nop
        nop
        nop
        clr     e
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;测试lcd忙碌状态
buzycheck:
        clr     rs
        setb    rw
        setb    e
        nop
        nop
        nop
        nop
buzycheck1:
        nop
        jb      0a7h,buzycheck1
        clr     e
        ret

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;延时5ms
delay5ms:
        mov     r6,#25
delay5ms1:
        mov     r5,#100
        djnz    r5,$
        djnz    r6,delay5ms1
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;延时10ms
delay10ms:
        mov     r6,#36
delay10ms1:
        mov     r5,#127
        djnz    r5,$
        djnz    r6,delay10ms1
        ret
;;;;;;;;;;;;;;;;;温度处理程序;;;;;;;;;;;;;;;;;;;;;;;
main3:
        lcall get_temper   ;调用读温度子程序
l789:   mov 90h,#00h
        mov a,29h
        mov c,40h          ;将28h中的最低位移入c
        rrc a
        mov c,41h
        rrc a
        mov c,42h
        rrc a
        mov c,43h
        rrc a
        mov 29h,a
        lcall display    
l456:   clr 84h
        ljmp lvvv      
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;这是ds18b20复位初始化子程序
init_1820:
        setb 80h
        nop
        clr 80h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主机发出延时537微秒的复位低脉冲
        mov r1,#3
tsr1:    mov r0,#107
        djnz r0,$
        djnz r1,tsr1
        setb 80h           ;然后拉高数据线
        nop
        nop
        nop
        mov r0,#25h
tsr2:
        jnb 80h,tsr3       ;等待ds18b20回应
        djnz r0,tsr2
        ljmp tsr4           ;延时
tsr3:
        setb flag1          ;置标志位,表示ds1820存在
        clr 87h            ;检查到ds18b20就点亮p1.7led
        ljmp tsr5
tsr4:
        clr flag1           ;清标志位,表示ds1820不存在
                            ;clr p1.1
        ljmp tsr7

tsr5:
        mov r0,#117
tsr6:
        djnz r0,tsr6        ;时序要求延时一段时间
tsr7:
        setb 80h
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;读出转换后的温度值
get_temper:
        setb 80h
        lcall init_1820     ;先复位ds18b20
        jb flag1,tss2
                            ;clr p1.2
        lcall l789                 ;判断ds1820是否存在?若ds18b20不存在则返回
tss2:
        clr 86h            ;ds18b20已经被检测到!!!!!!!!!!!!!!!!!!
        mov a,#0cch         ;跳过rom匹配
        lcall write_1820
       
        mov a,#44h          ;发出温度转换命令
        lcall write_1820
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;这里通过调用显示子程序实现延时一段时间,等待ad转换结束,12位的话750微秒
        lcall display
        lcall init_1820      ;准备读温度前先复位
        mov a,#0cch          ;跳过rom匹配
        lcall write_1820
        mov a,#0beh          ;发出读温度命令
        lcall write_1820
        lcall read_18200     ;将读出的温度数据保存到35h/36h
        clr   85h                     ;clr p1.4
        lcall l789
;;;;;;;;;;;;;;;;;;;;;;写ds18b20的子程序(有具体的时序要求)
write_1820:
        mov r2,#8             ;一共8位数据
        clr c
wr1:
        clr 80h
        mov r3,#6
        djnz r3,$
        rrc a
        mov 80h,c
        mov r3,#23
        djnz r3,$
        setb 80h
        nop
        djnz r2,wr1
        setb 80h
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;读ds18b20的程序,从ds18b20中读出两个字节的温度数据
read_18200:
        mov r4,#2             ;将温度高位和低位从ds18b20中读出
        mov r1,#29h           ;低位存入29h(temper_l),高位存入28h(temper_h)
re00:
        mov r2,#8             ;数据一共有8位
re01:
        clr c
        setb 80h
        nop
        nop
        clr 80h
        nop
        nop
        nop
        setb 80h
        mov r3,#9
re10:
        djnz r3,re10
        mov c,80h
        mov r3,#23
re20:
        djnz r3,re20
        rrc a
        djnz r2,re01
        mov @r1,a
        dec r1
        djnz r4,re00
        ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示子程序
display: mov a,29h      ;将29h中的十六进制数转换成10进制
        mov b,#10 ;10进制/10=10进制
        div ab
        mov b_bit,a ;十位在a
        mov a_bit,b ;个位在b
        ret
d1ms:    mov r7,#80
        djnz r7,$
        ret
        end
本文转自
www.sfmcu.com
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=109141&Name=sfmcu
17528
ahljj
文章数:3386
年度积分:240
历史总积分:17528
注册时间:2002/3/23
发站内信
发表于:2010/5/24 10:55:12
#1楼
学习了

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

109.2007