乐源电子——让生活更加美好  http://www.leyuandz.com

                                                                              
设为首页
加入收藏
联系我们
首   页 网站简介 无线遥控 音频功放 单片机 DSP 网站产品 订货系统 邮购须知

                                                                             

循序渐进51study之实例10


;实例10
;本程序实现51 studio与微机的rs232的通信
;开机显示rs232 在第7,8数码管显示接收到的数据
;对微机方面需要设置 DTR=1(打开rs232转换器),RTS=1(用户程序状态)

             include sdo_h
             org   0000h
             ljmp  start

             org   0023h
svces:       jb    ti,exit>svces   ;发送中断则退出 
             jnb   ri,exit>svces   ;非接收中断退出
             clr   ri              ;清除中断标志位
             push  acc             ;寄存器保护
             push  dph
             push  dpl
             mov   dptr,#dispcode  ;取显示代码首地址
             mov   a,sbuf          ;读取收到的数据
             swap  a
             anl   a,#0fh
             movc  a,@a+dptr       ;换码
             mov   36h,a           ;在第7个数码管显示高半字节
             mov   a,sbuf
             anl   a,#0fh
             movc  a,@a+dptr
             mov   37h,a           ;在第8个数码管显示低半字节 
             pop   dpl
             pop   dph
             pop   acc
exit>svces:  reti 
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
start:       mov   sp,#60h         ;堆栈区
             mov   psw,#0          ;第0组工作寄存器
             mov   tmod,#21h       ;t1为8位只自动重装方式,t0为16位方式
             mov   th1,#0f3h       ;f=12mhz 2400br 
             mov   tl1,#0f3h
             mov   pcon,#00h       ;波特率不加倍
             mov   scon,#01000000b ;串口方式1 不允许接收 
             setb  tr1             ;开定时器1
             clr   et1             ;不允许定时器中断
             setb  ren             ;允许接收
             setb  es              ;开串口中断
             lcall screen_clear<>  ;清除显示缓冲区30h-37h
             mov   30h,#72h        ;显示rs232
             mov   31h,#6dh
             mov   32h,#5bh
             mov   33h,#4fh
             mov   34h,#5bh
             setb  ea              ;开总中断 
             setb  wiret1
             mov   r2,#0
main:        mov   r4,#5           ;显示400毫秒
dispme:      lcall print80ms<> 
             djnz  r4,dispme
             clr   ti 
             mov   sbuf,r2         ;发送数据(0-255)
             jnb   ti,$            ;等待发送完毕
             clr   ti
             cpl   wiret1
             inc   r2
             sjmp  main

dispcode:    db   3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h
             db   77h,7ch,39h,5eh,79h,71h,6fh,76h,30h,0eh
             db   78h,38h,54h,37h,5ch,73h,67h,72h,6dh,31h
             db   3eh,1ch,62h,64h,6eh,5bh 
             end

建议您使用IE 6.0或更高版本浏览器

乐源电子 版权所有
E-Mail:liang_2578@126.com
联系人:梁先生 电话:13601658256(若联系不上,请发短信留言)
QQ:569093346