单片机共有4个双向的8位并行IO端口(Port),分别记作P0P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。实际上P0P3已被归入特殊功能寄存器之列。这四个口除了按字节寻址以外,还可以按位寻址。由于它们在结构上有一些差异,故各口的性质和功能有一些差异。
P0口是双向8位三态IO口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。P1口是8位准双向IO口,可驱动4个LS型负载。P2口是8位准双向IO口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。P3口是8位准双向IO口,是双功能复用口,可驱动4个LS型TTL负载。P1口、P2口、P3口各IO口线
f片内均有固定的上拉电阻,当这3个准双向IO口做输入口使用时,要向该口先写
f“1”,另外准双向IO口无高阻的“浮空”状态,故称为双向三态IO口。
时钟电路用于产生MCS51单片机工作时所必需的时钟信号。MCS51单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS51单片机应在唯一的时钟信号控制下,严格地按时序执行进行工作,而时序所研究的是指令执行中各个信号的关系。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类,一类用于片内对各个功能部件的控制,这列信号很多。另一类用于片外存储器或IO端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。这也是单片机应用系统设计者普遍关心的问题。
12数码显示模块设计
系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
f13按键模块
图3数码显示电路
下图为按键模块电路原理图,A为复位键,B为时钟调控键,C为分钟调控键。
图4按键模块电路原理图
f四.系统程序的设计
软件设计分析
显示的效果为动态显示,利用CPU控制数码管显示的选通和停止,通过定时器中断不断扫描,从而实现数据的动态显示。
在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时分秒,在显示初值之后,进入主循环。在主程序中,对不同的r