您现在所在的是:

单片机论坛

回帖:2个,阅读:566 [上一页] [1] [下一页]
1000
sunsoncheng
文章数:109
年度积分:50
历史总积分:1000
注册时间:2010/5/25
发站内信
发表于:2010/12/18 11:17:17
#0楼
买了一个学习板
晶振为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

1000
sunsoncheng
文章数:109
年度积分:50
历史总积分:1000
注册时间:2010/5/25
发站内信
发表于:2010/12/19 20:46:32
#1楼
看来不易啊
1000
sunsoncheng
文章数:109
年度积分:50
历史总积分:1000
注册时间:2010/5/25
发站内信
发表于:2010/12/21 16:59:27
#2楼
顶起来等这里的人气多点

问题的砂原因找到了,

是灯亮的设置与时间不对

因为灯一直亮着而只亮一半灯的时间太短,还没有感觉到

如果设为不开灯,再将有中断时灯亮的时间加长,就能发现灯一闪而过了!

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

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

31.2002