1 引言
单片机系统传统的编程方式是将单片机先从电路板上取下,放入专用的编程器进行编程,再放人电路板进行调试。其缺点是频繁的拔插器件容易损坏器件的引脚;如果频繁的调试程序,必须重复拔插,大大降低了开发效率。ISP技术是未来发展的方向,其优势是无需编程器就可进行单片机的实验和开发,单片机器件可直接焊接到电路板上,调试结束即为成品,免去调试时由于频繁插入取出对器件和电路板造成的损坏和带来的不便。 ISP可降低研发成本;缩短从设计、制造到现场调试的时间,简化生产流程,大大提高工作效率;在试验新品或学生试验等常需用不同的程序调试器件的场合中,在线编程技术尤为重要。
设计AT89S51单片机开发板,采用ISP下载线实现在Keil C软件开发环境下调试的汇编语言程序机器码能即时下载到AT89S51单片机片内Flash中,并可在线修改。
2 单片机开发板硬件设计
AT89S51单片机开发板南AT89S51单片机最小系统、ISP下载编程器、上位机与下位机之间的串行通信电路、4×4矩阵键盘键号的识别与显示电路4部分组成,如图1所示。
2.1 单片机ISP下载编程器
在系统可编程ISP(In-System Programmable),指电路板上的空白器件可编程写入最终用户代码,而无需从电路板取下器件,已编程的器件也可用ISP方式擦除或再编程。ISP 的工作原理:单片机可通过SPI或其他串行接口接收上位机传来的数据并写入存储器中。所以即使将器件焊接在电路板上,只要留出和上位机接口的串口,配合 ispdown的下载电缆,就可实现器件内部存储器的改写,而无需取下器件。ISP的提出改变了传统硬件系统开发的流程,大大方便了开发者,加快了开发速度。下载电缆是一种使用计算机的并行端口通过软件的仿零点实现ATAG或ISP接口协议,访问可编程器件的廉价工具。
图2为下载线电路图。AT89S51单片机的ISP接口通过指令输入MISO(P1.5引脚)、数据输入MOSI(P1.6引脚)、时钟输入SCK(P1.7引脚)3根信号线,以串行模式为系统提供对MCU器件的编程写入和读出功能。
2.2 串行通信接口
上位机PC机与下位机单片机通过RS-232C串行接口总线进行的串行通信。80C51系列单片机带有一个全双工的串行接口,因此用RS-232C串行接口总线非常方便。PC机配置RS-232C标准接口,RS-232C信号电平为负逻辑(逻辑“0”:+12 V;逻辑“1”:-12 v),80C51单片机输入、输出电平为,TTL电平(逻辑“0”:≤0.5 V;逻辑“1”:≥2.4 V)。所以8051与PC机间点对点异步通信需加电平转换电路,否则将烧坏TTL电路。MAX232器件是MAXIM公司生产的具有两路接收器和驱动器的 IC器件,其内部有一个电源电压变换器,可将输入的+5 V电压变换成RS-232C输出电平所需的±12 V电压。MAX232器件的引脚1~6(C1+、V+、C1-、C2+、C2-、V-)用于电源电压转换,只需在外部接入相应电解电容即可;引脚7~10 和引脚11~14构成两组,TTL信号电平与RS-232C信号电平的转换电路,对应引脚可直接与单片机串行口的TTL电平引脚和PC机的RS232电平引脚相连。
图3为采用MAX232器件的PC机和单片机串行通信接口电路,采用9针标准插座与PC机相连。MAX232实现电平转换功能,该器件可将单片机TXD端输出的TTL电平转换成标准的RS-232C标准电平,由MAX232的14引脚通过9针接口送入PC机;同样,PC机输出的RS-232C标准电平,从 MAX232的13引脚输入并转换成单片机所需的TTL电平,经单片机的RXD端接收。
2.3 矩阵键盘键号的识别与显示电路
在AT89S51单片机的I/O口设计4×4行列式键盘,采用程序扫描法识别按下的键,当有按键按下时,其键号显示在共阴极LED数码管上。其电路如图4所示。
一个4×4的行、列结构可构成一个含有16个按键的键盘。按键的位置由行号和列号唯一确定。将图4中的4×4键盘键号编码为:01H、02H、03H、…、0EH、0FH、10H16个键号。
(1)用全扫描法判断有无键按下行线在无键按下时处在高电平,按键按下时,与此键相连的行线与列线导通。如果让所有列线处于低电平。当无键按下时,则读人的行信息全为1;有键按下时,读入的行信息不全为1,按下键所在的行电平会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。
(2)用逐列置0扫描法确定具体键按为进一步确定具体键,在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,实现键盘扫描。
键盘工作在编程扫描方式,单片机在完成其他工作后的空闲时间调用键盘扫描子程序响应键盘输入的要求,在执行键功能程序时CPU不再响应键输入要求,直到CPU重新扫描键盘。
3 系统软件设计
系统软件采用汇编语言编写,键盘编程扫描子程序采用全扫描法判断有无键按下,采用逐列置0扫描法确定具体哪个键按下,计算闭合键的键号,等键释放后将键号存入内RAM30H单元。
键号显示子程序采用查表法将30H单元中闭合键键号转换为共阴极数码管的字段码并将其送至P3端口显示。主程序通过反复调用键盘扫描子程序和键号显示子程序实现闭合键的键号实时显示。该系统设计的主程序流程如图5所示,系统的键盘扫描子程序流程如图6所示。
4 结论
AT89S51单片机开发板采用ISP技术,实现了程序代码的在线写入和修改,代替传统的编程器完成程序代码烧写,免去了反复插拔单片机器件的麻烦,降低了单片机引脚的损坏机率,具有成本低、使用方便、可靠等优点。通过设计矩阵键盘的键号识别与显示应用系统,证明该开发板在 Keil C软件环境下可实现程序调试,容易在线写入程序代码。
作者:安晓莉 西安思源学院
|