我们开发的智能仪器是一种生化检测仪器,系统硬件结构设计如下:①用4×20字符的LCD显示操作步骤和检测结果;②用4×4键的键盘进行操作;③用日历芯片(DS1302)提供系统时间;④对步进电机进行控制;⑤控制温度恒定保持在t(40℃≤t≤100℃);⑥对电压信号进行A/D采样,把采样值存储到存储器中;⑦用扫描仪把条形码信息读取到仪器中;⑧把检测结果用打印机打印出来;⑨把存储在存储器中的采样值转存到PC中.
根据该仪器所要实现的功能.M16C/62单片机的87个可编程I/O口(除了P8.5仅仅是输入口,无内置上拉电阻)可用方向寄存器独立地设为输入或输出,上拉电阻以4个口为单位进行设置.图1中M16C/62单片机与LCD、键盘、日历芯片、存储器的接口都是直接用I/O口进行连接.此外,温度传感器DS18B20只有1根数据线,用可编程I/O口P3.0就可实现对温度值的读取;用可编程I/O口P8.0输出高(低)电平来控制步进电机的转向.当把I/O口用作内置周边电路的输入时,要将该口的方向寄存器设为输入方式,因此,图1中A/D输入引脚AN0(P10.0)、串行通信输入引脚RXD0(P6.2)、RXD1(P6.6)和RXD2(P7.1)的方向寄存器均要设为输入方式.
11个16位定时器根据功能分为定时器A(5个)和定时器B(6个)两类.定时器A为输出型定时器,有定时方式、事件计数方式、单次工作方式和脉冲宽度调制(PWM)方式;定时器B为输入型定时器,有定时方式、事件计数方式和脉冲周期/脉冲宽度测量方式,用定时器的模式寄存器来选择.联合使用定时器A1, A2,A4和B2可以获得驱动三相马达用的电压波形.我们用定时器A3的定时方式下的输出脉冲功能从TA3out(P7.6)引脚输出脉冲来驱动电机,用定时器A1的PWM方式来实现对加热元件的温度控制A/D转换器是一个8路逐次逼近式A/D转换器,AN0(P10.0)~AN7(P10.7)为M16C/62单片机的8个A/D输入引脚,我们的仪器只有一路电压信号需要采样,先用AN0(P10.0)脚.A/D转换器有单次模式、重复模式、单次扫描模式、重复扫描模式0、重复扫描模式1五种工作方式,用A/D控制寄存器0来选择.其分辨率为10位和8位可选,用A/D控制寄存器1来选择.A/D转换的精度在10位模式时为±3LSB(least significantbit,最低位).
5个串行口通道为UART0、UART1、UART2、SI/O3和SI/O4.UART0~UART2各自有专用的定时器来产生传送时钟,可以工作在时钟同步模式或时钟异步模式,UART2的结构略有差异,以适用于SIM(subcriber identitymodule)接口,此外,UART2还可构成I2C总线进行数据的传送.SI/O3和SI/O4是只使用同步方式传送数据的串行口.图1中用UART0到UART2分别与扫描仪、打印机、PC进行异步串行通信,采用RS-232-C串行总线接口,通过标准的9针插头插座相连,信号线只需发送线TXD(2脚)、接收线RXD(3脚)和地线GND(7脚)即可,用MAX202进行电平转换.