从实例看怎样选用单片机 文/吴汉清 大家在进行单片机实验和开发产品过程中,往往对选用什么品种和型号的单片机感到很迷茫,不知从何着手。这主要是由于应用系统的性质、规模、投资大小等因素千差万别,单片机的种类又名目繁多,因此选用单片机很难有一个固定的规范。本文试图通过实例说明单片机选用的一般原则。 从一个实例说起 下面我们看一个单片机数字电容表的实例。 要测量一个电容的容量,常用的有两种方法:第一种方法是把电容作为一个振荡电路 ( 如 RC 振荡电路 ) 回路中的一个元件,通过测量振荡频率即可知道电容量;第二种方法是通过测量 RC 充放电回路的时间常数来测量电容量。 这里采用第二种方法设计一个单片机数字电容表,测试原理见图 1 。电源电压 E+ 经电阻 R 给被测电容 CX 充电, CX 两端原电压随充电时间的增加而上升。当充电时间 t 等于 RC 时间常数 τ 时, CX 两端电压约为电源电压的 63 . 2 %,测量电容器充电达到该电压的时间,便能知道电容器的容量。 下面我们分析一下这个单片机系统对所用单片机的要求。 为了判断电容 C 上的充电电压是否达到电源电压的 63 . 2 %,可以用电压比较器来检测,这样我们就必须选用一个有比较器的单片机。 测量结果采用 4 位数码管显示,采用动态扫描的显示方式,如果不用译码电路,采用数码管直接和单片机相连的方式,字段要占用 7 个 I / O 口,数码管位选要占 4 个 I / O 口,加上电压比较器的 2 个 I / O 口,因此所选用的单片机不能少于 13 个 I / O 口。 设计程序的过程可能要进行反复修改,因此要选用带 Flash 程序存储器的单片机,由于程序不是太复杂,程序存储器的容量有 1KB 就足够了。 综合上述因素,再考虑价格、单片机是否易购等因素,最后确认 Atmel 公司的单片机 AT 89C 2051 可以满足要求。 测电路如图 2 所示。 A 为 AT 89C 2051 内部构造的电压比较器, AT 89C . 2051 的 P1 . 0 和 P1 . 1 口除了作 I / O 口外,第二功能是作为电压比较器的输入端, P1 . 0 为同相输入端, P1 . 1 为反相输入端,电压比较器的比较结果存人 P3 . 6 口对应的寄存器, P3 . 6 口在 AT 89C 2051 外部无引脚。电压比较器的基准电压设定为 0 . 632E+ ,在 CX 两端电压从 0 升 到 0 . 632E+ 的过程中, P3 . 6 口输出...