M8系统编程应用之数字时钟的实现

 


M8系统编程应用之数字时钟的实现

Wayne Huang

2010年6月

0   写在前面的话

自从上一篇文章更新之后,又过了很久。说实话,原本我准备是每周更新一次的。但是,事实却往往事与愿违。之所以隔了那么久,一来是因为工作和学习上刚进入 一个新的环境,所以还没有稳定,再者我自己也需要学习一些新的东西,整理一下曾经的内容。不过,现在回想起来我更新的频率远没有原来那么高了,或许是自己 老了吧。

写了那么多关于软件相关的东西,我也想试着写一些和硬件有关的文章。所以,这次我想先试验一下写一篇看看,如果觉得不好,请各位不要拍砖。如果觉得好,那 还请各位多多支持了。毕竟,你们的支持是我最大的动力。

曾经有一位朋友,看到我说M8的时候问过我,M8是不是某手机的型号。不过很可惜,我这里说的M8是一款由ATMEL生产的一款单片机。至于为什么选这款 单片机而不是选择应用相当广泛的51单片机,我想主要有两个原因。第一,M8能够得到GCC的支持。第二,M8的性能和体系结构比同为ATMEL的 AT89S52要好很多。

1   ATmega8微控制器概述

ATmega8是一款基于AVR RISC体系结构的低功耗8位微控制器。 能实现每MHz百万条指令的执行效率。 从体系结构上讲,其拥有130条指令,且大部分都是单时钟周期的。 此外,还拥有32个8位通用寄存器。最高能在16MHz外部时钟频率下达到16MIPS的执行速度。 在其内部集成了8KB的可编程Flash ROM,用于存储MCU所执行的程序。 其次还拥有1K的内部SRAM。至于其片内功能则也是相当丰富, 如USART 1 、计时计数器、AD转换、SPI通讯接口、I2 C通讯接口 等诸多功能。 其封装形式主要有双列支插和贴片两种形式。作为一款单片机来说,还是相当不错的, 至少同ATMEL的51单片机相比,其优势还是相当高的。 另外,对于最小系统,由于51需要外部晶振和复位电路,因此存在最小系统的概念。 而ATmega8,由于默认情况下采用的是内部上电复位以及片内时钟,所以不存在最小系统的概念,通电便可工作。

2   I/O端口概述

对于一款MCU来说,他与外部交流的主要途径就是通过其I/O口。 所以,在这篇文章中,我就先从I/O端口开始。

2.1   I/O端口物理描述

在ATmega8系列的单片机上,所有的I/O接口都能实现读写功能,而且,引脚之间是互相独立的, 因此,你可以通过 SBI或者CBI这种位操作指令改变某一个引脚的功能而不影响其他引脚。 ATmega8拥3个8位的I/O端口,他们分别被命名为B、C和D。如果你曾经有过使用51的经验。 那么你或许会对51中的上拉电阻记忆犹新,但是在ATmega8中其拥有内部可选的上拉电阻。 也就是说,你可以选择使用内部的上拉电阻或者采用外部上拉电阻。 如果你要选择外部上拉电阻,建议使用20kΩ ∼ 50kΩ

从电气性能上讲,ATmega8的引脚驱动力还是相当强的,而且输出和输入的驱动力是对称的, 所以你不会遇到在51上遇到的输入能力大于输出能力的情况。根据手册上描述, 其驱动电流为20mA。当然在具体的应用时,会存如下几点限制。

  • 所有引脚的电流总和不得超过300mA
  • C0 ∼ C5 引脚的电流总和不能超过100mA
  • B0 ∼ B7、C6、D0 ∼ D7和XTAL2引脚的电流总和不应超过200mA

从手册的指标上讲,一个引脚驱动一个5mA的发光二极管应该是没什么问题的。 而对于7段数码管来说,也不存在51的适合采用共阴极的限制。

2.2   I/O端口相关软件描述

从软件的层面讲,I/O 端口的功能主要通过DDxn、PORTxn这两类寄存器, 以及PUD这个bit位来进行控制。其中"x"为端口名,而"n"则为寄存器位。 各端口寄存器的功能描述,可以见1 。 表中"X"表示的为任意数,即0或1。

DDxn PORTxn PUD I/O 上 拉电阻 说明
0 0 X 输入 高阻态
0 1 0 输入 与外部引脚变化相当
0 1 1 输入 高阻态
1 0 X 输出
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值