完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于pic16f877A单片机,用MPLAB编写。编写的子程序(延时程序或者空语句),不管主程序有没有调用,都会出现程序跑飞的现象(端口呈高阻抗状态),软件仿真不断报错(PIC16 CORE PC=0x000E.stack underflow executing RETFIE instrucion.),实际搭建的硬件电路板也不工作。而将子程序屏蔽掉后,中断工作正常(B端口闪烁)。同样若将中断屏蔽掉,也正常。1,如果说是因为现场保护没做好的问题,但在没有调用的情况下,程序也不应该跑飞才对,2,或者说还是编译器本身出现了未知问题需要重装软件?
贴出简化后源程序如下 #include #define uchar unsigned char #define uint unsigned int #define LED0 RB0 #define LED1 RB1 #define LED2 RB2 #define LED3 RB3 #define LED4 RB4 #define LED5 RB5 #define LED6 RB6 __CONFIG(XT&WDTDIS&LVPDIS); /*************函数声明**************************/ void INItiAL(void); void interrupt aiie(void); /* void INITIAL() { ; } */ void main() { TRISB=0x00; //RB设置为输出 TRISD=0x00; //RD设置为输出 PORTD=0xff; //初始化为高 TMR1L=0; TMR1H=0; PORTB=0xff; //初始化为高 OPTION=0B10000101;//TIMERO 对内部时钟计数,预分频64 INTCON=0B10100000;//运行TMR0溢出中断 while(1); } void interrupt aiie(void) { T0IF=0;TMR0=0;PORTB=~PORTB; } |
|
相关推荐
1个回答
|
|
下载了MAPLAB 8.88 一切正常了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 15:30 , Processed in 0.342609 second(s), Total 40, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号