|

楼主 |
发表于 2010-7-10 09:58:17
|
显示全部楼层
一年多了,抱歉。
有人称我为“老师” 真的不敢当啊,共同学习。再说这不是教材,只是想为入门学习指划个门径,我的帖子里面有很多细节错误,例如内存页面问题,519也是分页的。
但为了入门,我们还是不先不要理会这些,等入门以后,还有很多细节需要搞明白,那时候就容易啦。
这不,我也是现学现卖,在想写个具体中断代码的例子的时候,才现行的查阅了pic12f519 的数据手册,竟然没有查到中断方面的说明,感情这款芯片没有中断的功能!不会是我英文水平低没有看懂吧,又拿出来中文的,同样的,程序存储器里没有中断说明,只有复位(复位也是单片机的概念) 。
总之,我们学习中断代码,这款芯片不适合我们啦。
怎么办?只好换一款中档的型号:PIC16C74. 那位说从低端芯片一下子到中端芯片跨度太大啦吧,能适应吗。我回答:肯定能!
高端芯片无非腿脚更多,片内资源也多,但是原理和方法,和低端的没有区别。我们只要掌握了单片机的使用操作方法入门,慢说中档,就是高端芯片pic18、24、99999 系列,那也是一样。我们仍然可以钻进去,出得来。
其实啊,所谓高端的语句,学起来更简单和使用起来更方便。要实现同样功能,如果限定仅使用低端35条,反而会比较罗索。
下面以 PIC16C74 这款芯片为例,仍然不出35条基本指令,写出一个完整的中断代码的例子,注意这个例子程序的总体结构。题目要求:
1、当一个键盘按动一下后,中断主程序,改变某管脚上的一只LED灯的状态,如果再次按动,再次改变。
2、主程序实际上和我们的中断任务处理没有关系,我们可以随便写个任务,例如主任务程序是计算:123 + 45 = ?
在这个例子里,计算123 + 45 = ?相当于我们在做菜,突然有人按动按键,相当于小孩子敲门请求中断,那么改变(点亮或者熄灭)某管脚上的一只LED灯的状态,就是我们刻不容缓的拯救行动。
为了理解中断代码,我们先看看硬件设计,下面是这个例子的电路图。(画图,几分钟后贴上来)
如图:11、12 管脚接电源和地线,13、14管脚接振荡器, 管脚 1 是复位管脚,只要它是高电平,程序就运行,只要是低电平,程序就马上停止,并回到程序特定的开始位置,也叫做“复位”
我们真正用到的是 管脚40 名字叫做 RB7 接一个键盘。可以看出,该脚平时为高电平,一旦有人按下键盘,就会变成低电平,从而导致主程序发生中断。它是作为输入 I 使用。
管教27 控制一个发光二极管,输出高电平点亮。 它是作为输出管脚.
剩下的那些管脚,先不管,实际使用的时候悬空好了。
[ 本帖最后由 崂山 于 2010-7-10 11:23 编辑 ] |
|