登录
首页 单片机论坛
回帖 发帖
正文

主题:自己做的串口中断测试没有结果

点击:582 回复:2

买了一个学习板
晶振为12M,LED灯共阳
4800BPS时发送数据到PC机的串口调试程序正确.
但没有产生中断
测试的程序如下:请指教
org    0000H
LJMP   MAIN
ORG 0023H
LJMP    SUB1
;主程序如下:
MAIN:
MOV TMOD,#20H ;定时器1的启动与工作方式2的设定
      MOV PCON,#80H ;波特率翻倍为
MOV IE,#90H ;可响应中断的总开关及串口中断响应开关
       MOV SCON,#0D0H ;工作方式3
       MOV TH1,#0F3H   ;预置初值(按照波特率2*2400BPS预置初值)
       MOV TL1,#0F3H   ;预置初值(按照波特率2*2400BPS预置初值)
       SETb TR1 ;启用TCON的定时器,开始发送波特率信号
INI:
lcall delay10s ;等待及显示
sent:
mov p0,#00H ;打开所有的LED灯
delay10S:
MOV 45h,#64H
MOV 46h,#64H
tt3:
mov p0,#00H ;打开所有的LED灯
djnz 46h,tt3
djnz 45h,tt3
LCALL  SENT ;每数秒就回去发一次
ret
;查看中断的情况
SUB1:
JNB RI,LAB0
       mov r7,#64H
Q1:
       mov P0,#0fH ;打开上四个LED灯
       djnz r7,Q1
       CLR RI ;清空为下一次接收作准备
RETI ;中断返回
;是一个发送中断
LAB0:
      mov R7,#64H
q2:
      mov p0,#0f0H ;打开下四个LED灯
      djnz r7,Q2
      clr ti
      RETI ;中断返回
END
10-12-18 11:17
看来不易啊
10-12-19 20:46
顶起来等这里的人气多点
问题的砂原因找到了,
是灯亮的设置与时间不对
因为灯一直亮着而只亮一半灯的时间太短,还没有感觉到
如果设为不开灯,再将有中断时灯亮的时间加长,就能发现灯一闪而过了!
10-12-21 16:59

工控新闻

更多新闻资讯