发表于: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
晶振为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