苏州健雄职业技术学院 赵素玲
使用AT89C51单片机控制一个2片的七段数码管,循环从00~99进行自动显示。在此时间是可以根据要求进行调整的,并不一定是间隔时间为1秒。程序中延时子函数的延时时间的改变很容易就能进行时间长短的调整。该程序还很容易实现从99~00的倒计时,这种功能可以通过按钮开关的选择来实现,但是加上了按钮程序,程序就变得更复杂、更长。由于篇幅限制在本文中没有使用按钮程序,所以倒计时的程序是单独给出的。系统的具体要求有以下四点:(1)以AT89C51芯片为核心控制器,加上外围辅助电路,设计出系统仿真电路图;(2)根据要求用Keil软件编写出C语言程序代码;(3)用一个2位的七段数码管自动的从00~99正计时循环显示;(4)用一个2位的七段数码管自动的从99~00倒计时循环显示。

图1 电路仿真图
系统仿真电路图主要由AT89C51单片机芯片、电源、地、石英晶体振荡电路、复位电路、两片七段共阴极数码管组成。两个电容C2、C3(30PF)与X1(石英晶体)组成了石英晶体振荡电路。电阻R1(1K)、电容C1(22UF)构成复位电路。P1口控制2位七段数码管,P1口输出字形码,由于P1口作为输出口必须接上拉电阻。若是选用其他的三个口作为输出口则不需要接上拉电阻,这是由AT89C51单片机自身的特点决定的。P2口是片选端,控制两片数码管进行轮流工作。P2口的输入信号在1111 1110和1111 1101之间快速进行变化,这个变化的速度一定要够快,若是慢了看起来就不是两个数码管在同时工作了,而是轮流工作。……