一、硬件介绍
目前流行的AT89系列单片机有:89C2051、89C51、89C52、89C55等,其中后三种分别与80C31、80C52、80C55完全兼容,89C2051是80C31的简化形式。本文只介绍89C2051。
图1为89C2051的管脚及基本接线图。RST端外接的C1和R1是上电复位电路,Z和C3、C4组成主频振荡电路。

该芯片有二组I/O口,第一组为P1.0~P1.7,共八位,第二组为P3.0~P3.5和P3.7,共七位(P3.6作为芯片内部接口用)。P3口还是双功能口。这两组接口均可吸收20mA电流,因此可以直接驱动LED显示器。
在芯片内部有128个八位数据存储器,2048个八位闪速电可擦写(FLASH)程序存储器,它可反复擦写1000次且写入的程序可保存十年以上。
芯片中有两个十六位定时/计数器(T0、T1),有五个中断源。特别应指出的,在芯片内还有一个模拟比较器,它的正输入端为P1.0,负输入端为P1.1,输出端接在内部P3.6口上,这个比较器可以像通用比较器那样接成各种用途的电压比较器。它的作用是可想而知的。
单片机的应用70%以上是在控制领域,这方面经常使用的功能有:输入、输出、条件判别、定时、计数、中断。根据这一特点,我们在硬件上对89C2051芯片原有的硬件资源重新进行了规划,使该芯片更适合广大电子爱好者使用。
1.外部接口
保留芯片原来P1口和P3口的功能。
2.内存单元
在单片机内部定义了80个内存单元,它们的编号是R000~R079(见图2)。每个内存单元都可以进行传送、算术运算、逻辑运算、条件判别。特别要指出的是,每个内存单元都可以作为定时器工作,一旦激活它们,就会按预先设定好的实时值进行定时运算,通过条件判别指令可检测定时是否完成,这一功能在实际应用中是很有用的。

3.单片机内部还有1个16位的高速计数器T\(_{1}\),它的最高计数速率为1MHz。
4.保留了原芯片的串行通信功能,保留了原芯片的四种中断,即:外部中断0、外部中断1、高速计算器T\(_{1}\)中断、串行通信中断。
二、软件简介
为了建立良好的用户界面,我们采用了面向控制的BASIC(即C-BASIC)语言作为我们的编程语言,简单、直观、易学是该语言的最大特点。
指令系统分七大部分,即:传送指令、算术运算指令、逻辑运算指令、条件转移指令、调用及跳转指令、设定指令、码制转换指令。在算术运算指令中,除了具有8位运算指令外,还增加了16位加、减、乘、除、开平方运算指令。增加了码制转换指令后,可以将8位或16位二进制数转换成3位或5位BCD码。
三、编程器介绍
编程器采用30键轻触键盘,16×2字符液晶显示器,15V整流电源,如图3所示。

编程器内存可供用户编制1560条BASIC程序。有两个适配板,一个为40脚单片机写入仿真板,该板可对89C51、89C52、89C55进行程序写入和仿真。
另一个是20脚单片机写入/仿真板,该板可对89C1051、89C2051进行程序写入和仿真(见图4)。

仿真板上的按钮用于各端子输入信号的仿真,LED发光二极管用于显示各端子的输出状态。此外,还可设定慢步运行状态,使单片机一步一步地慢运行,使用者可以很清楚地看到每一步的工作情况。
采用PROG-100编程/仿真器,可以使初学者在3~5天内即可掌握单片机的硬件知识和编程方法。 (柏青)