白城职业技术学院毕业设计说明书
A B PSW 00H 00H 00H TMOD TCON TH0 00H 00H 00H SP DPL DPH P0—P3 IP IE 07H 00H 00H FFH ***00000B 0**00000B TL0 TH1 TL1 SBUF SCON PCON 00H 00H 00H 不定 00H 0********B PSW=00H,表明选寄存器0组为工作寄存器组; SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出 。IP=×××00000B,表明各个中断源处于低优先级; IE=0××00000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。 51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。 4.4.2 晶振电路
晶振(图4.10)是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接
- 15 -
光电转速仪设计
在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。晶体振荡电路如图4-6:
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
图4.10晶振电路
4.4.3 最小系统的仿真
最小系统的仿真图4.11
- 16 -
白城职业技术学院毕业设计说明书
图4.11 最小系统的仿真
附最小系统仿真程序如下: #include
sbit LED=P1^0; //定义LED接P1.0口// void Delay () //延时函数// {unsigned char i,j; for(i=255;i>0;i--) for(j=255;j>0;j--); }
void main () {while(1)
{LED=0; // LED灭//
Delay (); //返回延时函数// LED=1; //LED亮// Delay (); //反回延时函数// } }
- 17 -
光电转速仪设计
4.5显示部分设计
(1)许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八个发光二极管构成的。每段上加上合适的电压,该段就点亮。
LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物如图4.12
图4.12 数码管
共阳型(图4.13)就是八个发光管的正极都连在一起 ,作为一条引线.A~G段用于显示数字,字符的笔画,(dp显示小数点),每一段控制A~G~dp的亮与来。
内部结构:
图4.13 共阳型LCD
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
- 18 -
白城职业技术学院毕业设计说明书
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
(2)段码表
表4-2为LED段码表
表3-2 LED段码表
显示字符 0 1 2 3 4 共阴极段选码 3FH 06H 5BH 4FH 66H 共阳极段选码 C0H F9H A4H B0H 99H 符 5 6 7 8 9 显示字共阴极段选码 6DH 7DH 07H 7BH 6FH 共阳极段选码 92H 82H F8H 80H 90H (3)动态显示仿真(图4.15) - 19 -