微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ISP 的简约型51单片机实验板的设计

基于ISP 的简约型51单片机实验板的设计

时间:01-07 来源:互联网 点击:

0 引言

现在市面上通用的51内核单片机主要有ATMEL公司的AT89S51、AT89S52系列,飞利浦公司的P89C51RXX系列和P89LPC900系列。其中AT公司的52系列是51系列的增强版本,飞利浦公司的P89C51RXX系列的内部功能跟AT89S51基本相同,都是增强型51内核。通过比较选择飞利浦公司的P89C51RA2BN单片机,该单片机内部有8K的FLASH ROM程序存储器,可以满足大部分的实验和小系统设计。而且该单片机跟AT89S52相比,还有内部PCA(可编程计数器阵列),和512字节的数据存储器,7个中断源和集成内部硬件看门狗。该单片机的引脚和普通51单片机完全兼容,可以做为51单片机的代换产品。另外该型号单片机的P1口还有第二功能,有12时钟和6时钟工作模式,其中6时钟工作方式的速度是普通51单片机的2倍。

一、 系统设计

本系统的设计框图如下:

其中ISP下载电路的设计如下:

飞利浦P89C51RA2BN单片机通过P3.0和P3.1口(也就是串行口)下载程序到片内FLASH ROM,其电路为:

从上面的电路图中可以看到,单片机的下载电路其实就是一个串行通信电路,这样就可以实现一个电路既用来下载程序也可以用来做串行口通信的实验,一举两得。图中的PORT1是一个USB接口插座,用其来连接一个DB9的母头到PC机串行口输出端下载程序和一个USB插头到PC机的USB接口供电。因为PC机的USB口可以提供5伏500毫安的直流电压,刚好为我们设计的单片机系统供电。

二、单元电路设计

2.1系统开关信号输入电路的设计

开关信号可以由键盘产生,也可以由方波振荡电路产生。由于一个方波振荡

也不复杂,可以由555电路构成,所以我们的实验板加上一个方波振荡电路。键盘电路因为要兼顾易用性,所以采用简单键盘电路。

方波振荡器的振荡频率大概是1000Hz左右,从NE555的3脚输出,利用这个电路可以做一个频率计的实验,通过单片机检测输出方波的频率在显示部分显示出来。简单键盘电路可以接到单片机的外部中断引脚,用来产生中断信号,可以用来做中断的实验和普通键盘程序的实验。

2.2系统模拟量输入电路的设计

模拟量输入电路可以采用并行的AD转换电路也可以采用串行的AD转换电

路,并行AD的优点就是传输速率高,一次性可以一个字节,缺点是要占用太多的IO口,而且控制信号多。串行AD刚好相反,只要很少的几个引脚就可以完成控制功能,但是传输速率较低。并行的AD可以采用ADC0809实现,该芯片可以完成8路模拟量的输入采集。

实验板串行AD转换可以使10位的单通道AD转换芯片TLC1549,使用该芯片有较高的性价比,而且使用10位的串行AD转换可以达到较高的分辩率和使用较少的I/O口的效果。

由于该型号的芯片内部有采样保持电路,所以外部电路设计简单,只需接上电源还有MCU接口的相应连线就可以正常工作,只用根控制线与MPU接口就可以控制该器件了。

2.3人机交互电路的设计

人机交互电路是单片机系统和人交换作息的一个主要通道,其中上面提到的键盘输入就是一个输入通道的人机交互电路,本节主要介绍显示部分。

根据显示的种类分有液晶显示、LED数码管显示、LED点阵显示。LED数码管显示器有显示亮度高,操作简单的特点,液晶显示器有显示内容丰富、功率低的特点。LED点阵显示则兼容了两种显示器的显示亮度高和显示内容丰富的优点。液晶显示器又分为段码和字符点阵、图形点阵等种类,各种不同种类的液晶显示器有不同的操作方法。

2.3.1数码管显示电路的设计

本系统综合两种主流显示的特点把三种显示器都集成到实验板上。采用两个三位的LED数码管接成一个六位的LED数码管显示电路。这样设计的思想是这个实验板既可以做一般的显示电路实验,也可以做数字钟的实验(可以显示时分秒)。由于单片机的IO口输出驱动能力比较弱,所以每一位数字都采用了一个三极管9013来驱动。而且在接到P0口的那些LED数据口要在P0口加一个小阻值的电阻排,才可以让P0口输出的段码驱动数码管。

2.3.2 LED点阵电路的设计

LED点阵驱动电路的设计采用了单个16*16的LED点阵,因为LED点阵达到16*16的话就可以在点阵里面显示分辩比较高的汉字的,这样可以丰富LED的显示效果。列驱动采用了两个8位的移位寄存器74LS164接成了一个16位的移位寄存器,第一个74LS164的Q7输出接到了第二个的数据输入口,这样经过16个串行时钟周期就可以将一个16位的显示码送到了列驱动器。采用串行的目的就是一可以增大每个线的驱动能力,还有就是节省IO口。经过这样的设计之后就可以只用两个IO口就把显示码送到了列驱动器端。由于每一行有16个LED,设每个LED的驱动电流是5mA,那么最坏的情况就是一行的所有LED都亮,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top