计算机控制技术程序设计+控制原理图Word文档格式.docx
《计算机控制技术程序设计+控制原理图Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机控制技术程序设计+控制原理图Word文档格式.docx(63页珍藏版)》请在冰点文库上搜索。
计算机控制技术课程设计报告
题 目:
51系列单片机常用接口电路设计及编成
学 年:
2017-2018 学 期:
1
专 业:
班 级
姓 名:
学 号:
指导教师:
日 期:
2017年11月13日—2017年12月1日
长春工业大学机电工程学院
摘要
随着计算机技术的发展,现代的计算机都是大规模集成电路计算机它们具有功能强、结构紧凑、系统可靠等特点,其发展趋势是巨型化、微型化、网络及
智能化。
微型化是计算机发展的重要方向,也就是把计算机的运算器、控制器、存储器、I/O接口四个组成部分集成在一个硅片内,于是就出现了一个以大规模集成电路为主要组成的微型计算机即单片机(SingleChipMicrocomputer)。
正是由于单片机技术的发展,使的单片机应用的更加广泛.本课程设计的目的在于培养学生对典型51系列单片机外围扩展电路的设计能力和根据一定跳进进行编程设计的能力,在学习《机电接口技术基础》和《计算机控制技术》课程的基础上,进行单片机控制系统设计的初等训练,掌握电路设计标准、规范等资料的使用方法,培养分析问题和解决问题的能力,为后续的专业课程设计和毕业设计打下良好的基础
关键词:
51单片机常用接口电路步进电机12位AD芯片12位DA芯片
8255芯片键盘显示器指示灯驱动器步进电动机
1.设计任务与要求
1.1设计任务
1、以学生学号后四位为参数进行设计
2、扩展的ROM芯片容量以学生学号倒数第1和第2位计算,将这两位数求和,如果求和结果是1为数字则不再计算,如果求和结果为两位数字,则将这两位数字继续求和,直到求到一位数字为止。
例如,学号20140326,倒数第1和第2位为6和2 ,求和为8,是一位数,则停止计算,又如学号20140397,倒数第1和第2位为7和9,求和为16,则将
1和6再次求和,为7。
然后将所得的一位数字向最靠近的ROM芯片容量靠拢,并为向上靠拢,即为所扩展的ROM容量。
ROM容量为2、4、8、16、32、64(KB)。
此次设计中RAM扩展32KB,地址范围0000H-7FFFH。
3、针对AD转换,7班和8班的前一半同学采用8路多路开关,8班后一半同学和9班采用16路多路开关,如果采用8路多路开关,每一位同学学号的最后一位数字为0-5的,则三路模拟量分别为
0,1,2、
1,2,3、
2,3,4、
3,4,5、
4,5,6、
5,6,7、
最后一位大于5的需要做减5处理,减5后的结果数字作为自己的模拟量开始路数。
如果采用16路多路开关,则使用学号最后一位作为模拟量开始路数。
4、由于已经有了32KB的RAM芯片,因此,再扩展其它芯片在RAM空间,需要学生对地址线做一定的处理,请学生自行完成这部分设计。
AD转换芯片、
芯片
学号尾号
P2口
AD转换
0、5
P2.0
DA转换
1、6
P2.1
第一片8255
2、7
P2.2
第二片8255
3、8
P2.3
DA转换芯片、第一片8255、第二片8255、键盘显示器接口芯片片选引脚分别按下表要求接在对应P2口线上。
键盘显示
4、9
P2.4
5、键盘中按键数量7班为24个,8班为32个,9班为16个。
自行定义每一个在程序中用到的按键的意义。
6、数码管数量7班6个,8班7个,9班8个。
如何动态示信息自行安排。
7、学生所编制的程序中,要求能够显示时钟,通过按键输入参数设置每一路
AD采样数据是否合格的上下限,并轮流显示三路模拟量对应的模拟量值,并用8255连接的指示灯进行指示,红灯报警,绿灯合格。
8、根据输入的位移要求控制步进电机进行要求的旋转。
9、在开始按钮按下后,DA芯片持续发送SIN波和方波。
停止按钮按下后停止发送。
(按钮定义根据连接按钮指示灯的8255芯片所连接的按钮和指示灯情况自行设置,这个8255芯片要求连接8个指示灯,4红4绿,8个按钮,按钮自行定义功能)
1.2设计要求
(1)AD,DA均采用12位器件。
(2)扩展48路IO接口线。
(3)扩展键盘、显示器接口电路。
电路能够控制两个步进电机
2.总体设计方案
用12位AD芯片将采集的三路模拟量变成数字量输入到单片机中,单片机进行信息处理后输入到12位DA芯片然后输出,两片8255芯片控制驱动器和键盘数码管显示器
3.系统硬件电路设计
3.151单片机最小系统
图3-1单片机最小系统
复位电路:
由电容串联电阻构成,由图并结合"
电容电压不能突变"
的性质,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位。
晶振电路:
晶振取12MHz
单片机:
一片AT89S51
总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个
P0端口P0.0~P0.7共8个
P1端口P1.0~P1.7共8个
P2端口P02.0~P2.7共8个
P3端口P3.0~P3.7共8个
3.2时钟电路设计
3.2.1时钟电路的显示单元
动态显示技术:
图3-2-1显示单元
在多位LED显示时。
由一个8位口控制,由另一端进行显示位的控制。
但是,由于段选是公共的,要让各位数码管显示不同的字符,就必须采用扫描方式。
即动态扫描显示方式。
首先从段选线上送出字段码,再控制位选线,字符就显示在指定位置上,持续1~5ms时间,然后关闭所有显示:
接下来又送出新的字段码,按照上述过程又显示在新的位置上,直到每一位数码管都扫描完为止,即一个扫描周期。
由于人的视觉停留效应,因此当扫描周期小到一定程度时,人就感觉不出字符的移动或闪烁,觉得每位数码管一直在显示,达到一种稳定的视觉效果。
动态扫描显示的扫描方式有程序控制和定时中断扫描两种。
程序控制扫描方式要占用许多CPU时间,在计算机的任务较重时,难以得到好的效果,所以在实际中常用定时中断扫描方式,这种方式是每隔一定时间(如1ms)显示一位数码管,假设有8位数码管,显示扫描周期为2ms,显示效果十分良好,本次设计采用这种方法,该数码管为共阳极数码管。
3.2.2时钟电路的驱动芯片
主要采用8522芯片驱动,8255A的管脚如下
图3-2-28255封装
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且
/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从
8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且
/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。
方式0----基本输入输出方式;
方式1----选通输入/出方式;
方式2 双向选通
输入/输出方式;
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个
8位的数据输入锁存器。
工作于三种方式中的任何一种;
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
不能工作于方式二;
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个
8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,
可作为控制信号输出或状态信号输入端口。
'
不能工作于方式一或二。
A1,A0:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择.
3.3复位电路设计
图3-3复位电路
3.3.1复位电路的工作原理
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
复位电路由按键复位和上电复位两部分组成。
(1)上电复位:
STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态。
(2)按键复位:
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位
3.3.2复位电路中电阻和电容的选择
单片机可靠复位的时间要大于2个机器周期,设计中采用12MHZ的晶振,则复位时间要大于2微妙。
根据上电复位电路对电容的充电时间:
t=3RC,电阻和电容的典型值为10K和10uF,此时时间常数RC=0.1,带入求得t=0.3s,大
于复位时间可以保证单片机的正常复位。
3.4按键电路设计
3.4.1矩阵式键盘
图3-4-1矩阵键盘
矩阵式键盘I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。
其特点
(1)占用I/O端线较少
(2)软件结构教复杂
(3)适用于按键较多的场合
3.4.2按键开关去抖动问题
在触点抖动期间检测按键的通与断状态可能导致判断出错即按键一次按下或释放被错误地认为是多次操作这种情况是不允许出现的。
为了克服按键触
点机械抖动所致的检测误判必须采取去抖动措施。
这一点可从硬件、软件两方面予以考虑。
在键数较少时,可采用硬件去抖而当键数较多时采用软件去抖。
在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。
软件上采取的措施是在检测到有按键按下时执行一个10ms左右具体时间应视所使用的按键进行调整的延时程序后再确认该键电平是否仍保持闭合状态电平若仍保持闭合状态电平则确认该键处于闭合状态。
同理在检测到该键释放后也应采用相同的步骤进行确认从而可消除抖动的影响。
3.4.3键盘扫描控制方式
线反转法
线反转法的具体步骤为让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。
再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在列为按键所在列。
矩阵式键盘最主要的是按键识别,按键识别是采用线翻转的方法。
线翻转法是先让P2=0xf0;
当有按键按下时P2口的状态就会改变不在是0xf0,当按键按下时,P2的状态改变了,此时存储当前P2口的状态1,然后让P2=0xf0因为程序执行时间很短,此时按键还没抬起来,由于按键按下的原因P2状态不再是0xf0,存储此时P2口的状态2,把状态1与状态2的值相或,因为每个按键按下的值都是不一样的,根据按键返回的值给数码管赋不同的断码值,从而达到显示0~F的目的
3.5外扩32KBRAM电路设计
图3-5外扩32KBRAM电路
62256是32K的低功耗静态RAM存储器。
MCS-51单片机系统扩展时,一般使用P0口作为地址低8位,而P2口作为地址高8位,它共有16根地址总线,寻址空间为64KB。
62256引脚功能
A0–A14地址总线(Address)D0/D7输入/输出口(nput/output)
CS 端口选择(Chipselect)
WE 输入始能(Writeenable)
OE 输出始能(Outputenable)
VCC 电源始能(Powersupply)
VSS 接地(Ground)
3.6外扩8KBROM电路设计
即8K
图3-6外扩8KBROM电路
2764芯片是一种存储芯片,用作存储数据,芯片容量为2的13次方,
2764引脚功能
A0到A12为13条地址信号输入线
D0到D7为数据线对芯片读数时,作为输出线,对芯片编程时,作为输
入线。
CE为输入信号,低电平有效。
OE为输出允许信号,低电平有效。
PGM为编程脉冲输入端,当对芯片编程时,由此端加入编程脉冲信号;
读取数据时PMG的值为1
Vcc和Vpp都是接电源的,正常工作时是+5V
3.712位AD转换电路设计
图
图3-712位AD转换电路
本设计要求AD转换采用16路多路开关,考虑到单片机芯片采用89C51,故AD转换芯片采用12位的ADC1674芯片,16路多路开关采用CD4051芯片
ADC1674引脚功能
AGND 公共的模拟地
A0 在转换过程中,A0为低则为12位转换,否则为8位转换;
在以8位字节为单位的读数过程中,A0为0时输出高8位(DB11~DB4),A0为1时输出
DB3~DB0,DB7~DB4为0000
BIPOFF双极性偏置电平输入端.双极性模式下将其通过一个50Ω电阻连接到REFOUT端,单极性模式下则连接到模拟地.
CE 芯片使能,高电平激活,用于开始一个转换过程或读取操作
CS 芯片选择.低电平有效
DB11~DB4 数据位11~8,在12位格式下提供高4位数据.在8位格式下,A0为低时提供高4位,A0为高时被禁止.
DB7~DB4数据位7~4,在12位格式下提供中间4位数据.在8位格式下,
A0为低时提供中间4位,A0为高时全为0.
DB3~DB0数据位3~0,在12位格式下提供最低4位数据.在8位格式下,
A0为低时被禁止输出,A0为高时提供低4位数据.
DGND数字地
REFOUT+10V参考电压输出
R/C 高电平时为读操作,低电平时为转换操作
REFIN 正常情况下该端通过一个50Ω电阻连接到+10V参考电压源
STS 状态标志.当转换正在进行的时候为高电平,转换结束时为低电平.Vcc +12V/+15V模拟电路电源
VEE -12V/-15V模拟电路电源
Vlogic +5V逻辑电路电源
10Vin 10V范围模拟量输入端,单极性下为0到+10V,双极性下为-5V到
+5V.如果模拟量输入采用20V电压输入端,则该端不要连接.
20Vin 20V范围模拟量输入端,单极性下为0到+20V,双极性下为-10V
到+10V.如果模拟量输入采用10V电压输入端,则该端不要连接.
12/8该端决定数字输出数据的格式,为低则为两个8位的字节,为高则为一个12位的字
3.812位DA转换电路设计
图3-812位DA转换电路
DA转换基本原理:
将输入的每一位二进制代码按其权的大小转换成相应的模拟量,然后将代表各位的模拟量相加,所得的总模拟量就与数字量成正比,这样便实现了从数字量到模拟量的转换。
D/A转换器的主要技术指标转换器的主要技术指标
(1)分辨率 分辨率用输入二进制数的有效位数表示。
在分辨率为n位的D/A转换器中,输出电压能区分2n个不同的输入二进制代码状态,能给出2n个不同等级的输出模拟电压。
(2)转换精度D/A转换器的转换精度是指输出模拟电压的实际值与理想值之差,即最大静态转换误差。
本课设实现DA转换的是:
D/A芯片为12位DAC1208,与八路开关CD4051。
DAC1208引脚功能
CS 片选信号
WR1 写信号,低电平有效
BYTE1/BYTE2字节顺序控制信号。
1:
开启8位和4位两个锁存器,将12位全部打入锁存器。
0:
仅开启4位输入锁存器。
WR2辅助写。
该信号与XFER信号相结合,当同为低电平时,把锁存器中数据打入DAC寄存器。
当为高电平时,DAC寄存器中的数据被锁存起来
XFER 传送控制信号,与WR2信号结合,将输入锁存器中的12位数据送至DAC寄存器
DI0-DI11 12位数据输入。
Iout1 D/A转换电流输出1.当DAC寄存器全为1时,输出电流最大,全为0时输出为0
Iout2 D/A转换电流输出2.Iout1+Iout2=常数
Rfb 反馈电阻输入
Vref 参考电源输入
Vcc 电源电压
DGND和AGND 模拟地和输入地
3.9步进电机的选择
图3-9步进电动机型号
步进电机经过减速器带导程为5mm的滚珠丝杠,丝杠带动目标运动,这是负载扭矩为同学学号倒数第1位和倒数第4位两位数的和再除以2,所得到的数字,单位为N.m,在选择步进电机时应主要考虑以下几个方面:
1.要求脉冲当量为0.0xmm/p,其中x为学生学号倒数第2位数,如果x=0,则
x取1。
2.步距角是否适合系统脉冲当量的要求。
3.步进电机转距是否满足要求。
4.步进电机起动频率及运行频率是否满足要求。
5.确定减速器的减速比。
根据课程设计要求可得步进电动机的负载扭矩为2.5N.m,脉冲当量δ=0.01mm/p由表3-9初选两相混合型步进电动机型号86BYG250-70
图3-9步进电动机
步进电动机的固有步距角1.8,驱动器工作在半步状态,电机运行时的真正步距角为0.9,当其每转的脉冲量S=360/0.9=400p/r
步进电动机与滚珠丝杠间的传动比:
i=L/δS=6/0.01x400=1.25
在步进电机与滚珠丝杠之间加入Z1=20,Z2=25,模数m=2.5的一对齿轮,进行减速,减速比i=1.25
3.10步进电动机驱动器的选择
3.10.1步进电动机细分驱动的特点
细分驱动是指在每次脉冲切换时,不是将绕组的全部电流通入或切除,而是只改变相应绕组中电流的一部分,电机的合成磁势也只旋转步距角的一部分。
细分驱动时,绕组电流不是一个方波而是阶梯波,额定电流是台阶式的投入或切除。
比如:
电流分成n个台阶,转子则需要n次才转过一个步距角,即
n细分。
步进电机的细分技术实质上是一种电子阻尼技术,其主要目的是减弱或消除步进电机的低频振动,提高电机的运转精度只是细分技术的一个附带功能。
比如对于步进角为1.8°
的两相混合式步进电机,如果细分驱动器的细分数设置为4,那么电机的运转分辨率为每个脉冲0.45°
,电机的精度能否达到或接近0.45°
,还取决于细分驱动器的细分电流控制精度等其它因素。
细分驱动最主要的优点是步距角变小,分辨率提高,且提高了电机的定位精度、启动性能和高频输出转矩;
其次,减弱或消除了步进电机的低频振动,降低了步进电机在共振区工作的几率
3.10.2步进电动机细分驱动器的选择
M860H是一款专业的数字式两相混合式步进电机驱动器,适配国内外各种品牌,相电流7.0A以下外径57-86mm的4线、6线、8线两相混合式步进电机。
适合各种中小型自动化设备和仪器,例如:
雕刻机、打标机、切割机、激光照排、绘图仪、数控机床、拿放装置等。
在用户期望低成本、小噪声、中低速运行的设备中效 果特佳
图3-10细分驱动器
3.11系统总电路原理图
15
图3-11总电路原理图
4.系统软件设计
4.1系统软件总体设计
主程序:
初始化各芯片配置,时钟配置后,while
(1)内部循环扫描按键。
子程序:
子程序分别为ad.c,da.c,key.c,8255.c,led_seg.c和按键扫描各按键的功能程序。
中断服务程序:
时钟控制程序和数码管动态显示程序各程序功能入口和参数详见程序代码各程序.c文件。
4.2主程序设计
4.2.1.流程图
4.2.2程序代码
主程