- 打卡等级:常住居民III
- 打卡总天数:143
- 最近打卡:2025-04-29 09:29:30
高级会员
- 积分
- 982
|
请教一个问题。
测试陈桂友老师视频的一个中断程序,就是按键按下,亮灭切换
#include "stc8h.h"
void main(void){
P4M1=0xff;
P4M0=0xff;
P6M1=0;
P6M0=0;
//设置P3.4,P3.6为漏极开路
P3M1=0x50;P3M0=0x50;
IT0=1;
EX0=1;
EA=1;
P40=0;
P60=1;
while(1);
}
void INT0_ISR(void) interrupt INT0_VECTOR
{
P60=~P60;
}
问题是按下试验箱的int0键,led4倒是亮灭切换。但是P60既没法通过顶部菜单的Peripherals---IO ports查看,也没法把P60加入到watch1里,
修改了一下程序,改成
#include "stc8h.h"
void main(void){
unsigned char x;
P4M1=0xff;
P4M0=0xff;
P6M1=0;
P6M0=0;
//设置P3.4,P3.6为漏极开路
P3M1=0x50;P3M0=0x50;
IT0=1;
EX0=1;
EA=1;
P40=0;
P60=1;
x=P60;
while(1);
}
void INT0_ISR(void) interrupt INT0_VECTOR
{
P60=~P60;
}
结果x倒是加入到watch1里,结果value是 cannot evaluate!!!
而且,修改了代码后,第一次按键盘。还听见zhizhi的声音。。。 |
|