数控电源陈印.docx
- 文档编号:17058305
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:25
- 大小:373.77KB
数控电源陈印.docx
《数控电源陈印.docx》由会员分享,可在线阅读,更多相关《数控电源陈印.docx(25页珍藏版)》请在冰点文库上搜索。
数控电源陈印
合肥学院
计算机科学与技术系
微机原理与接口技术
课程设计
2011~2012学年第二学期
课程设计科目
数控电源
学生姓名
陈印
学号
0904031040
班级
09网工
(1)班
指导教师
龙夏、高玲玲
2012年2月
数控电源
一.题义分析及解决方案
1.题义需求分析
1.1设计内容
用STARES598PCI单板开发机设计一个数控电源,输入是数字量,以数模转换器DAC0832输出电压大小。
应用接口芯片作为七段LED数码管输出口,显示模拟电压值。
在STARES598PCI单板开发机中,用户程序存储器共32KB。
在PC机上调试,可使用winxpxingyan集成环境;
1.接口可以使用8255A或8279。
2.数字的输入可以用二进制逻辑开关。
3.数字可以使用LED七段数码管显示。
1.1设计分析
我们首先要输入一个数字量信号。
然后经过DAC转换成模拟量。
然后用ADC转换得到一个数字量然后用LED显示出来。
主流程是这样,我们就涉及到问题。
第一:
怎么输入数字量,我们可以用逻辑开关以及键盘。
然而键盘的使用需要使用8279.本着课程设计的思想。
使用最少的芯片完成任务。
我们可以使用逻辑开关。
然后输入的数据怎么才能经DAC转换。
考虑到逻辑开关无法寻址。
我们应用8255做中转接口,获取逻辑开关输入的信息。
将逻辑开关与8255的一个通道口如pa口直接相连。
pa口做输入端口,这样逻辑开关的信息可以通过pa口然后由数据总线送到cpu.然后输入的理论值怎么用LED灯显示。
我们可以用8255的另外两个端口。
一个做LED的数码管段码输出端口,一个做LED的数码管选择脚输出端口。
转换后的值可以用用ADC转换输入到LED灯上,也可以用万用表直接测试。
若用LED灯显示原理与输出理论值是一摸一样的。
因此若采用LED输出转换后的值,需要用到的芯片和硬件有8255,ADC0809,DAC0832,逻辑开关,LED灯。
1.2需要解决的问题
再设计之前我们需要考虑的问题
1.逻辑开关的值怎么被CPU获取。
2.CPU获取逻辑开关值后怎么送去转换。
3.LED怎么显示。
4.理论值与转换后的值怎么对比。
在LED上怎么实现。
5.芯片的入口地址的确定。
2.解决问题的方法及思路
1)硬件部分
实验中数字的输入采用二进制逻辑开关,数模转换采用DAC0832,接口芯片选择8255A作为二进制逻辑开关的输入接口和七段LED数码管的输出接口。
实验要求显示模拟电压值。
必须经过一次模数转换后,才能送七段LED数码管显示。
因此可采用ADC0809实现它的转换功能。
2)软件部分
实验中涉及到一个可编程芯片,8255A。
两个信号转换芯片ADC0832,DAC0809.程序要考虑数字的可多次输入,可以使用死循环。
然后注意它的刷新频率。
LED的循环显示,可以输出转换。
各芯片的寻址,初始化编程,选择通道等设置。
二.硬件设计
1.开关
1)开关的作用:
本次设计需要用八位开关置数,故要用到开关,输入0时,开关闭合,输入1时,开关断开。
2)开关功能的分析:
如图所示,开关未合时,与5V电压相连,输入1,当合上之后,开关就将A口接地,也就输入为0,8位开关可以置0~255的数。
我们还需对其进行编码。
255对应的是5V,0对应0V。
因此我们可以用1/51对应1的关系确定一个数。
如我们输入00001000,则对应的数是8X1/51.因此我们可以用这种关系来实现输入的功能。
3)逻辑开关及其编码
表2-1逻辑开关及其编码
编码
数字
编码
数字
0000
0
1000
8
0001
1
1001
9
0010
2
1010
A
0011
3
1011
B
0100
4
1100
C
0101
5
1101
D
0110
6
1110
E
0111
7
1111
F
2.芯片8255A
1)芯片8255A的作用
作为输入/输出接口芯片,本实验中主要控制输入/输出,以及段码的选择。
2)芯片8255A的功能分析
可编程外设接口电路简称PPI,型号为8255A,具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
8255A具有三个相互独立的输入/输出通道:
通道A、通道B、通道C。
A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口,此时C口完全服务于A、B口。
(1)8255A的引脚信号
RESET:
复位信号。
当此信号来时,所有寄存器都被清除。
同时三个数据端口被自动置为输入端口。
D7~D0:
它们是8255A的数据线和系统总线相连。
CS:
片选信号。
在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。
只有当有效时,读信号写才对8255进行读写。
RD:
读信号。
当此信号有效时,CPU可从8255A中读取数据。
WR:
写信号。
当此信号有效时,CPU可向8255A中写入数据。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定当A1、A0:
为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
(2)8255A的方式控制字:
3)8255A的技术参数
图4-18255A的方式控制字
标识符
最小
最大
测试条件
输入低电平(VIL)
-0.5V
0.8V
输入高电平(VIH)
2.0V
5V
输出低电平(VOL)DB
0.45V
IOL=2.5mA
输出低电平(VOL)PER
0.45V
IOL=1.7mA
输出高电平(VOH)DB
2.4V
IOH=-400μA
输出高电平(VOH)PER
2.4V
IOH=-200μA
驱动电流
-1.0mA
-4.0mA
REXT=750Ω,VEXT=1.5V
供应电流
120mA
IIL(INPUTLOADCURRENT
±10μA
VIN=0V~5V
IOFL(Outputfloatleakage
±10μA
VOUT=0.45~5V
图3-28255A的技术参数
其中PER为peripheralport的缩写,
输入最低电压:
min-0.5V,max0.8V,输入最高电压:
2.0V。
输出最低电压:
0.45V
输出最高电压:
2.4V。
3.LED数码管
1)LED在本设计中的作用
LED发光二级管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示。
2)LED功能分析
七段码显示器工作原理:
LED数码管显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一字段。
因而它的控制原理和发光二极管的控制原理是相同的。
根据各管的接线形式,可分成共阴极型和共阳极型。
给LED数码管的七个发光二极管加不同的电平,二极管显示不同亮暗的组合就可以形成不同的字形,这种组合称之为字形码。
有了字形码表,我们就可以进行编程。
如果还用PA口来控制一个LED数码管的八个字段,那么当要显示0~F的一个字型时,我们给PA口输出对应的字形码就可以了。
如要在共阴极的数码管显示6,则PB口输出0x7D就可以了;要显示9则PA口输出0x6F。
与发光二极管的工作原理相同,共阳极时,所有正端接电源正极,当负端有低电平时,该段有电流流过,发光管亮,当负端为高电平时,该段无电流流过,发光管不亮。
要显示什么数字,就使对应的段为低电平。
共阴极与共阳极的电平变化状态相反。
当每个段的驱动电流为2mA—20mA,电流越大,发光越亮。
LED结构图
2.3.3如下图为LED数码管字形码表(1为高电平,0为低电平)。
显示字型
dp
g
f
e
d
c
b
A
共阴极字形码
共阳极字形码
0
0
0
1
1
1
1
1
1
0x3F
0xC0
1
0
0
0
0
0
1
1
0
0x06
0xF9
2
0
1
0
1
1
0
1
1
0x5B
0xA4
3
0
1
0
0
1
1
1
1
0x4F
0xB0
4
0
1
1
0
0
1
1
0
0x66
0x99
5
0
1
1
0
1
1
0
1
0x6D
0x92
6
0
1
1
1
1
1
0
1
0x7D
0x82
7
0
0
0
0
0
1
1
1
0x07
0xF8
8
0
1
1
1
1
1
1
1
0x7F
0x80
9
0
1
1
0
1
1
1
1
0x6F
0x90
A
0
1
1
1
0
1
1
1
0x77
0x88
b
0
1
1
1
1
1
0
0
0x7C
0x83
C
0
0
1
1
1
0
0
1
0x39
0xC6
d
0
1
0
1
1
1
1
0
0x5E
0xA1
E
0
1
1
1
1
0
0
1
0x79
0x86
F
0
1
1
1
0
0
0
1
0x71
0x8E
4.芯片DAC0832
1)DAC0832在本设计中的作用
DAC是本实验的一个很重要的芯片,用于实现数模转换。
2)DAC0832功能分析
DAC0832是采样频率为八位的D/A转换器件,下面介绍一下该器件的中文资料以及电路原理方面的知识。
DAC0832内部结构资料:
芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图
DAC0832引脚图和内部结构电路图
dac0832应用电路图:
DAC0832引脚功能说明:
DI0~DI7:
数据输入线,TLL电平。
ILE:
数据锁存允许控制信号输入线,高电平有效。
CS:
片选信号输入线,低电平有效。
WR1:
为输入寄存器的写选通信号。
XFER:
数据传送控制信号输入线,低电平有效。
WR2:
为DAC寄存器写选通输入线。
Iout1:
电流输出线。
当输入全为1时Iout1最大。
Iout2:
电流输出线。
其值与Iout1之和为一常数。
Rfb:
反馈信号输入线,芯片内部有反馈电阻.
Vcc:
电源输入线 (+5v~+15v)
Vref:
基准电压输入线 (-10v~+10v)
AGND:
模拟地,摸拟信号和基准电源的参考地.
DGND:
数字地,两种地线在基准电源处共地比较好.
4.芯片ADC0809
1)ADC0809在本设计中的作用
ADC0809在本实验中主要是实现模数转换,用于显示在LED上显示与理论值比较。
2)ADC0809功能分析
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片。
1.主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
2.内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
3.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
5.硬件设计总逻辑图及其说明
三.控制程序设计
1.控制程序设计思路说明
通过二进制逻辑开关输入0-5V的电压值,一位整数,一位小数,送LED显示。
经转换后送D/A转换,显示模拟电压值。
模拟电压值先经A/D量化,显示一位整数,两位小数,送LED显示。
2.程序流程图
3.控制程序
.MODELTINY
PCIBAR3EQU1CH
Vendor_IDEQU10EBH
Device_IDEQU8376
.STACK100
.DATA
IO_Bit8_BaseAddressDW?
msg0DB'BIOS不支持访问PCI$'
msg1DB'找不到StarPCI9052板卡$'
msg2DB'读8位I/O空间基地址时出错$'
COM_ADDDW00F3H
PA_ADDDW00F0H
PB_ADDDW00F1H
PC_ADDDW00F2H
ADD_0832DW00B0H
ADD_0809DW00D0H
INPUTDB0
BUFFER1DB0,0,0,0
BUFFERDB0,0,0,0;LED码表
LEDcodeDB00111111B;0(3FH)
DB00000110B;1(06H)
DB01011011B;2(5BH)
DB01001111B;3(4FH)
DB01100110B;4(66H)
DB01101101B;5(6DH)
DB01111101B;6(7DH)
DB00000111B;7(07H)
DB01111111B;8(7FH)
DB01101111B;9(67H)
DB01110111B;A(77H)
DB01111100B;B(7CH)
DB00111001B;C(39H)
DB01011110B;D(5EH)
DB01111001B;E(79H)
DB01110001B;F(71H)
.CODE
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLInitPCI
CALLModifyAddress
MOVDX,COM_ADD
MOVAL,90H
OUTDX,AL
NEXT:
CALLSET
CALLDA
CALLStroe_LED
CALLAD
CALLStroe_LED1
MOVBX,OFFSETLEDcode
MOVSI,0
MOVAL,BUFFER1[SI]
XLAT
ADDAL,80H
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,7FH
OUTDX,AL
CALLDelay
MOVAL,BUFFER1[SI+1]
XLAT
MOVdx,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0BFH
OUTDX,AL
CALLDelay
MOVAL,BUFFER1[SI+2]
XLAT
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0DFH
OUTDX,AL
CALLDelay
MOVAL,BUFFER1[SI+3]
XLAT
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0EFH
OUTDX,AL
CALLDelay
MOVBX,OFFSETLEDcode
MOVSI,0
MOVAL,BUFFER[SI]
XLAT
ADDAL,80H
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0F7H
OUTDX,AL
CALLDelay
MOVAL,BUFFER[SI+1]
XLAT
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0FbH
OUTDX,AL
CALLDelay
MOVAL,BUFFER[SI+2]
XLAT
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0FdH
OUTDX,AL
CALLDelay
MOVAL,BUFFER[SI+3]
XLAT
MOVDX,PB_ADD
OUTDX,AL
MOVDX,PC_ADD
MOVAL,0FeH
OUTDX,AL
CALLDelay
JMPNEXT
SETPROCNEAR
MOVDX,PA_ADD
INAL,DX
MOV[INPUT],AL
RET
SETENDP
DAPROCNEAR
MOVDX,ADD_0832
MOVAL,[INPUT]
OUTDX,AL
RET
DAENDP
ADPROCNEAR
MOVAL,
MOVDX,ADD_0809
OUTDX,AL
CALLDelay
MOVDX,ADD_0809
INAL,DX
RET
ADENDP
Stroe_LEDPROCNEAR
MOVAL,[INPUT]
XORAH,AH
MOVBL,51
DIVBL
MOVSI,0
MOVBUFFER[SI],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER[SI+1],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER[SI+2],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER[SI+3],AL
RET
Stroe_LEDENDP
Stroe_LED1PROCNEAR
XORAH,AH
MOVBL,51
DIVBL
MOVSI,0
MOVBUFFER1[SI],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER1[SI+1],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER1[SI+2],AL
MOVAL,0ah
MULAH
DIVBL
MOVBUFFER1[SI+3],AL
RET
Stroe_LED1ENDP
DelayPROCNEAR
pushcx
movcx,1000H
delay1:
NOP
loopdelay1
popcx
RET
DelayENDP
InitPCIPROCNEAR
MOVAH,00H
MOVAL,03H
INT10H
MOVAH,0B1H
MOVAL,01H
INT1AH
CMPAH,0
JZInitPCI2
LEADX,msg0
InitPCI1:
MOVAH,09H
INT21H
JMPExit
InitPCI2:
MOVAH,0B1H
MOVAL,02H
MOVCX,Device_ID
MOVDX,Vendor_ID
MOVSI,0
INT1AH
JNCInitPCI3
LEADX,msg1
JMPInitPCI1
InitPCI3:
MOVDI,PCIBAR3
MOVAH,0B1H
MOVAL,09H
INT1AH
JNCInitPCI4
LEADX,msg2
JMPInitPCI1
InitPCI4:
ANDCX,0FFFCH
MOVIO_Bit8_BaseAddress,CX
RET
InitPCIENDP
ModifyAddressPROCNEAR
ADDCOM_ADD,CX
ADDPA_ADD,CX
ADDPB_ADD,CX
ADDPC_ADD,CX
ADDADD_0832,CX
ADDADD_0809,CX
RET
ModifyAddressENDP
Exit:
MOVAH,4CH
INT21H
ENDSTART
四.上机调试过程
1.硬件调试
其实理论课只是停留在理论上,而且我们自己对这些硬件认识是模糊的或者是持有怀疑态度的。
我们在学习一个芯片时,我们学习它的控制字,它的特性,它的初始化流程。
但是我们在实际应用时可能没有那么的心应手。
我们在上《微机接口技术》时也做过实验,但是那只是孤立的一个芯片。
而课程设计则考虑综合的使用情况。
我们要考虑各个芯片之间怎么使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 电源