M8系统开发手记(3)
Wayne Huang
2011年01月15日
0 写在前面的话
话说,这篇文章更新的有些晚,主要是感觉这周事情比较多的缘故吧。感觉很多时候,我们只是在忙忙碌碌,却不知道自己人生所追求的到底是什么,我们追求的是否会朽坏?很多时候我们并不会去思考这种问题,也会在这事上感到迷茫,感觉没有这种觉悟,作人就好似机器一样,每天重复着类似的事情,一个倒下了,还会有很多很多的替代。在每天的忙忙碌碌中,我们到底寻求的是什么?是这个我们终将离开的世界上的东西么?在缺失这种觉悟的情况下,人渐渐的失去了他所特有的属性,成为了庞大流水线上的一台机器,而他的荣耀就是他的生产效率~
1 M8系统中的Hello World
在上面一章中,我们已经了解到了M8最小系统的构建。接下来,我们将在上一个系统的基础上,尝试我们第一个小作品-流水灯。对于有编程基础的同学来说,"Hello World"一般都是我们写的第一个程序,而在MCU的世界里,流水灯往往也是第一个入门的经典实现。如同"Hello World"程序一样,流水灯的思想也是实现基本的输出操作。不同之处在于,流水灯的输出是动态的。所实现的效果,就如同霓虹灯的闪烁效果,根据喜好和实际的硬件,可以选择不同的效果。那么,接下来我们就分析一下流水灯的实现吧。
1.1 M8流水灯实现的介绍与分析
我们这里所要实现的流水灯,实际上就是一个个依次闪烁的灯而已。但是,既然这通常作为MCU的入门实现,自然有其道理,一方面他能让你熟悉MCU各IO口的操作,其次也让你熟悉MCU相关的一些功能。这样看来,MCU作为入门,是再好不过的实现了。话说,MCU的中文意思是"微控制器",那么作为IO口的操作,自然是一个重点,这和我们这种搞软件的CPU-"中央处理器"还是有比较大的不同的,因为CPU强调的是运算性能,而MCU强调的是控制性能。所以,你搞MCU如果连基本的IO口操作都不会,那你真的出门连招呼都不好意思和别人打了。不过,感觉现在这种本应该是"羞耻"的事情,却越来越成为"主流"文化了。比如,某些非私有单位的信息化建设负责人,往往可能连什么是信息化系统都不知道。更有甚者是除了windows就不知道其他操作系统,除了SQL Server,就不知道其他的数据库,感觉在他们的眼里,我们就成了"非主流"。言归正传,因为IO口的操作是MCU的生命,所以MCU的学习自然也要从IO口开始,就好像你写了个没有输出的理财程序,然后别人运行了很多次却没有任何提示,难道你和用户说:程序他自己知道结果的,你不用为你的投资操心?那这个程序不成了"浮云"了?
1.1.1 M8系统的IO口操作介绍
如上所述,IO口的操作是相当重要的,所以我们这里开篇就来看看这个灵魂人物-IO口。我个人觉得,衡量IO口能力的参数主要是IO口的驱动力。对于M8来说,输出输入电流是对等的,每个引脚最大不能超过40mA,但是总电流不能超过300mA。当然,针对每个特定的IO口,还是有一些更细化的限制,但是不论是输入还是输出电流,驱动发光二极管还是可以的。为什么这里我要分开说输入和输出呢?因为在51中,比如AT89S52系列,他的输入电流和输出电流是不对称的,因此在为51选择类似七段数码管的时候,会考虑到共阴公阳的问题。同时,M8与常规51比较大的特点是能够启用内置的上拉电阻。
M8控制IO口的寄存器有三个,分别是方向寄存器"DDRx"、数据寄存器"PORTx"和引脚寄存器"PINx"。"DDRx"和"PORTx"是可读写寄存器,"PINx"是只读寄存器。名字里的"x"是只具体的端口字母。而控制寄存器里的"SFIOR"里的"PUD"位是控制传说中的上拉电阻的。表1就是他们不同组合的结果。"PINx",不论是引脚作为输入还是输出,其值总为引脚上实际的电平值。
DDRx PORTx PDU I/O 上拉 说明
0 0 X 输入 无效 高阻
0 1 0 输入 有效 外部引脚拉低时输出电流
0 1 1 输入 无效 高阻
1 0 X 输出 无效 低电平推挽输出,吸收电流
1 1 X 输出 无效 高电平推挽输出,输出电流
Table 1: IO相关寄存器定义
话说,我一般用IO口的时候,设计的驱动电流一般为5mA左右。因为虽然说手册的最大值离我使用的电流还有一大截。但是考虑到各个引脚的诸多限制,以及总电流不超过300mA的这种限制,采用平均5mA的的设计,可以避免因为一时的疏忽,比如接了8个40mA的负载,那这样虽然感觉每个引脚都没超过限定,但是总体就超额了。
1.1.2 M8系统的定时器/计数器0操作介绍
在前面我们已经介绍了IO口,接下来我们要介绍实现流水灯所必须的另一个部件-定时器。根据我们刚才的介绍,流水灯是依次的让LED闪烁。但是,即使MCU执行速度多慢,总比我们人的反应速度快,甚至是超越人的反应速度。因此,我们需要一个定时器来让我们每一次的变换可以延迟一段时间,让我们迟钝的视觉能有一个
相关新闻>>
- 发表评论
-
- 最新评论 更多>>