图 3-9显示器/键盘驱动电路
由于8279芯片有自动分时扫描功能,所以它可与CPU同时工作,减轻CPU的负担,而且接口方便,显示稳定,程序简单,可靠性高。
3.6电源电路
电源电路采用78系列芯片产生+5V、+15V。电路图如图3-10:
图3-10 78系列的电源电路
78XX,XX就代表它所输出的电压值,能降低电压4-5V,三端稳压集成电路电子产
品非常常见,用的比较多的有负电压输出的79××系列和正电压输出的78××系列。从名字上可见,稳压用的三端IC集成电路都是统一的标准,引脚输出只有三条,分别是接地端、输出端和输入端。
因为它具有两大比较突出的优势,首先电路内部有过流、过热及调整管的保护电路,其次它所需的外围元件极少,所以采用78/79系列三端稳压IC来组成稳压电源。三端集成稳压电路的输出电压是由该系列集成稳压IC型号中的78或79后面的数字表示的,如7909表示输出电压为负9V,7806表示输出电压为正6V。
另外,集成稳压IC型号中的78或79后面有时还会有一个L或M,如79L24或78M12,字母有它固有的含义,它是用来区别封装形式和输出电流等,其中78M系列最大输出电流为1A,78系列最大输出电流为1.5A,78L系列的最大输出电流为100mA。当然,对于实际应用还有一些事项要稍加注意,比如针对大功率的条件下,必须在三端集成稳压电路上安装足够大的散热器,小功率的话就不需考虑这个问题了。另外,还会出现稳压管温度过高的情况,这时稳压管的稳压性能将变差,此时稳压管损坏也很有可能出现。
4系统软件设计
4.1 PWM实现方式
调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便。
4.1.1 定时器/计数器
单片机内部的定时器是PWM信号软件实现的核心,就定时器而言,选用不同的单片机,它定时器的特点一般都会不同,就算是相同型号的单片机,如果它选择的定时器工作方式不同,或者选用的晶振不同,那么它定时器的定时初值与定时时间的关系也会不相同。那么,定时器的定时初值与定时时间的关系是第一要确定下来的东西。现在假如定时器/计数器为n位,单片机的时钟频率为值的关系为:
f,那么定时时间与定时器初
t1?(2n?Tw)?Nf?106 (4-1)
式中,N---个机器周期的时钟数;
Tw---定时器定时初值。
一般情况下,机型不同,N的值就会不同。在实际的设计过程中,常常是由已选择的具体的机型,然后给出它相应的值。而在本次设计中我们选用的是晶体振荡器的频率为12MZ的单片机,那么它的N的定时初值Tw来改变占空比就行了。 4.1.2 PWM产生程序
#include
#define uchar unsigned char uchar num;
sbit PWM=P1^0;
void init() {
TMOD=0x01;
TH0=(65536-500)/256; TL0=(65536-500)%6; EA=1; ET0=1; TR0=1; }
void T0_timer() interrupt 1 {
TH0=(65536-500)/256; TL0=(65536-500)%6; num++; }
void main() {
init(); while(1) {
if(num==4) {
PWM=~PWM; num=0; } } }
?6。综上所述,我们知道要想控制电机的转
速,我们需要控制占空比,而要达到控制占空比的目的,我们仅仅只需通过设定不同
4.2 系统程序设计
4.2.1主程序及系统初始化模块
主程序——完成系统初始化后,实现刷新显示、键盘处理、与上位计算机和其他外设通信等功能,总的来说,它主要完成一些实时性要求不高的功能,如图4-1。
初始化子程序——主要是完成一些系统运行参数和变量的初始化和硬件器件工作方式的设定等工作,如图4-2。
N 系统初始化 设定定时器、PWM、 数字测速工作方式 有键按下吗? Y 键处理 设定I/O、通信接口及显示、键盘工作方式 主程序 系统初始化
刷新显示 参数及变量初始化 数据通信 返回 图4-1 主程序流程图 图4-2 初始化子程序
主程序主要要完成的任务是三个方面:变量的初始化、内部定时/计数器T0、T1测速和键盘/显示芯片8279。
此程序共有2个中断源:外部中断0,用于电机故障处理;外部中断1,用于键盘输入处理。