⑴ PIC单片机的各种中断有没有优先级之分
pic低级一些的单片机内部只有8级硬件堆栈,所以为了节约资源就设了一个中断入口地址,所以就不存在中断优先级的问题了,进入中断入口以后就要用软件查询中断标志位了,先查询哪个哪个优先级就最高,希望对你有帮助。
⑵ pic16f877a单片机在体1中的数据怎么传到体0里
这个看你的数据如何定义了,如果没有使用#pragma 之类的伪指令就是结构体数组一类的const,用C程序开发无此必要。
⑶ 单片机中软件堆栈与硬件椎栈的区别是什么它们实现的功能是不是一样的
软堆栈是软件自己控制的,硬堆栈是通过寄存器和pop push弄得
硬堆栈效率高,而且当你处理函数调用或者中断时都会自动调用硬堆栈
为了防止你干扰硬堆栈,推荐自己实现软堆栈,否则很容易导致程序在返回函数时跳飞
⑷ 为什么会有软堆栈和硬堆栈之分呢 为什么还要区分这个呢
51系列可就是由软件可任意把堆栈区设在内部RAM中你安排的地,并深度还可根据你的编程风格调一下深浅,这可能就是你这说的软件堆栈吧,而PIC单片机可就不是这了,栈地址你没算动,栈深度是死的,老八级,这可能就是你说的硬堆栈吧.呵呵!不管是你说的那种,这堆栈都是片内的随机存贮器构成的.功能都是为了在发生突发事件要转地处理时或调用时机器自动保存返回地址用的,当然,你也可用它来传递数据.,
我用的是ATMEGA8,我现在也是刚弄,对堆栈这一块不是很熟悉!!不知道怎么设置,我怕我写的程序到时会堆栈益出.
硬件堆栈一般16个就够了(子程序和中断嵌套不超过4层),他这个是怎么计算的?
⑸ pic单片机为什么那么少见知乎
市场竞争力的问题吧。
PIC的单片机,个人使用后,觉得它适合工控类产品。目前本人将它用于价格低廉的汽车电子产品上。个人了解,汽车行业,还是以飞思卡尔为主流单片机。(开发新产品,国内很多车厂的技术人员都会问我,你们使用的是不是飞思卡尔的(CPU))。所以在汽车行业上,microchip 的PIC争不过飞思卡尔。(说个题外话:飞思卡尔被NXP收购,而microchip却收购了Atmel 和 Micrel,有点颠覆)
51系列单片机,作为单片机起源,在现今的社会,更是大有泛滥之势,价格低得难以想象。所以,教育行业、消费类产品(玩具、家具等),被51单片机包圆。PIC根本抢不了这市场。
而另一个要命的是,PIC单片机编程软件兼容性差,编译器之间升级换代,根本就是不同的软件。前面学会的都没用,得重新学新的编程软件。
另外PIC 的一些设计,确实不够好:
像什么 1<<16位编译失败啦、硬件堆栈层限制啦、除法运算1000周期啦……
⑹ pic12F675单片机制作一个打开关设备出现疑难问题!是不是堆栈层数超了的问题
进入if之后把定时器关掉,执行完再打开