|
大概程序意思要求在P5端口交替出现高低电平,现用Tcc计数溢出来作为电平的持续时间,但在用仿真器仿真时发现几个问题:
1、R1(就是Tcc)的计数,怎么是乱的,我开始以为R1里的数会从0开始一直往上加,但实际是乱跳的,但是还是能实现中断。我在UART_TR处设置断点,程序能到此处停下来。
2、请大虾帮看一下程序哪里有问题,我如果设置断点,就会看到有中断,但如果连续运行,程序没什么反应(就是说Port5端口的数据不会交替变换)。
ORG 0
JMP MAIN ;
ORG 8
JMP UART_TR ;中断入口
ORG 11
MAIN:MOV A,@0B00000001 ;port5只有INT脚作输入
IOW PORT5
MOV A,@0B00000000
IOW PORT6
MOV PORT5,A
MOV A,@0X7F
IOW 0X0E ;关看门狗,P50为外中断功能脚
MOV A,@0x05
IOW 0X0F ;允许Tcc和外部INT中断
MOV A,@0
CONTW ;信号给Tcc,INT脚上升产生中断
CLR 0X0F ;清中断
UU_1:MOV A,@152 ;装Tcc
MOV 0X01,A
MOV A,@2
MOV TEMP1,A ;定义高低脉冲的时间
COM PORT5 ;PORT5高低电平变化
AGAIN:ENI
LOOP:NOP
NOP
JMP LOOP
UART_TR:JBS 0X0F,0
RETI
CLR 0X0F
DJZ TEMP1
JMP UU_2
JMP UU_1
UU_2:MOV A,@152
MOV 0X01,A
RETI |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|