微机原理课程设计—dac0832波形发生器Word文档格式.docx
- 文档编号:267566
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:13
- 大小:180.74KB
微机原理课程设计—dac0832波形发生器Word文档格式.docx
《微机原理课程设计—dac0832波形发生器Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计—dac0832波形发生器Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
C口低四位输入信号,B口输出信号,通过按键改变C口电平信号,使输入信号改变,并在在B口输出不同信号,在数码管上显示不同数字;
(2)波形的产生则使用8086与DAC0832连接,通过8086给DAC0832输入不
同数字信号,在DAC0832的输出端输出波形,波形的观察使用一个放大器连接模拟示波器显示。
3.2系统框图:
3.3系统基本介绍:
此方案是通过并行接口芯片8255A和8086计算机的硬件连接,并通过8086控制DAC0832产生波形相应波形,通过8255A输出信号控制数码管显示不同数字。
8255A的C端口有四个按键,按下相应的按键,使输入低电平。
1按下第一个按键显示数字0,在示波器上产生方波;
2按下第二个按键显示数字1,产生阶梯波;
3按下第三个按键显示数字3,产生锯齿波;
4按下第四个按键显示数字4,产生三角波。
3.4模块功能介绍:
8255A:
D0~D7口与8086数据端连接,PB0~PB6与七段共阴极数码管相连接以显
示数字,PC0~PC4连接四个按键,实现输入电平的改变。
A0、A1接地
址
线A1、A2,CS端连接74ls138的片选端。
DAC0832:
DI0~DI7接8086的数据端CS接74LS138的片选端,Vref接输入电压,这里我
选用的是+5v电压,IOUT1、IOUT2接一个放大器与示波器,实现数字信号的显示。
74LS138:
三八译码器,ABC分别接373的A3,A4,A5,使能端E1接A7,这几个地址端共同参与地址译码,Y0接8255A的CS端,Y1接DAC0832的CS端。
74HC373:
三态锁存器,这里用来锁存地址,AD0~AD7分别接8086,A0~A7为地址信号。
8086:
16位微处理器芯片,AD0~AD15为地址/数据总线,分时复用,与373AD0~AD7相连
并作为数据端与DAC0832、8255A相连。
3.5程序流程图:
清屏子程序:
开始
否
按键1是否
按键2是否
按下
按键3是否
按键4是否
是
结束
阶梯波产生程序
显示数字1
返回清屏子函数
锯齿波产生程序
显示数字3
读C口数据
波形选择函数:
显示数字0
方波产生程序
显示数字4
三角波产生程序
4.功能实现
电路图:
改变按键,写入不同数据,选择波形产生函数,并在PB口与数码管连接,显示数字。
实现数字信号与模拟信号的转变,将8086通入的数字信号转换为模拟信号.
三八译码器,进行DAC0832与8255的片选。
三态锁存器,锁存地址信息。
16位微处理器芯片,进行数据的输入与读取,并进行地址编码
程序源代码:
DAC0832
EQU
88H
;
DAC0832的编码地址
M8255_A
80H
8255的A口地址
M8255_B
82H
8255的B口地址
M8255_C
84H
8255的C口地址
M8255_Z
86H
8255的控制寄存器地址
主程序部分
STACK SEGMENT STACK '
stack'
DW 32DUP(0)
STACK ENDSCODE SEGMENT
ASSUME CS:
CODE,SS:
STACK
START:
MOV DX,M8255_Z ;
初始化8255工作方式
MOV AL,81H ;
方式0,C口输入,B口输出
OUT DX,AL
STEP:
CALL CLEAR ;
清屏
CALL BEGIN ;
调用波形选择函数JMP STEP ;
继续循环
----------------------------------------------------------------------------------------------
清理子程序
CLEAR PROC NEAR
MOV DX,M8255_B ;
清除显示内容
MOV AL,00H
RETCLEAR ENDP
------------------------------------------------------------------------------------------------
判断输入数据,选择波形
BEGIN PROC NEAR
MOV DX,M8255_C ;
读c口输入数据IN AL,DX
CMP AL,0EH ;
当按第一个键时显示0输出方波JNE L1
MOV DX,M8255_B
MOV AL,3FH
CALL FANGBO ;
调用方波子程序
L1:
CMP
AL,0BH
当按第三个键时显示3输出锯齿波
JNE
L3
MOV
DX,M8255_B
AL,4FH
OUT
DX,AL
CALL
DOG
调用锯齿波子程序
L3:
AL,0DH
当按第二个键时显示1输出阶梯波
L4
AL,06H
CAT
调用阶梯波子程序
L4:
AL,07H
当按第四个键时显示4输出三角波
L5
AL,66H
SANJIAOBO
调用三角波子程序
L5:
RET ;
否则退出
BEGIN ENDP
方波信号产生程序
FANGBO PROC NEARF1:
MOV CX,0FFH
FB:
MOV DX,DAC0832MOV AL,0
LOOP FB ;
形成一个延迟的信号MOV CX,0FFH
FB1:
MOV AL,0FFH
MOV DX,88H
LOOP FB1
判断按键是否改变IN AL,DX
CMP AL,0EH
JE F1
JMP BEGINRET
FANGBO ENDP
锯齿波信号产生程序
DOG PROC NEAR
C1:
DX,M8255_C
判断按键是否改变
IN
AL,DX
JE
CB
JMP
BEGIN
CB:
AL,0
LLL:
DX,DAC0832
INC
AL
AL,0FFH
判断是否到顶
C1
LLL
RET
DOG ENDP
阶梯波信号产生程序
PROC
NEAR
D1:
DX,M8255_C ;
D2
D2:
D3:
DX,DAC0832
CX,33H
D4:
LOOP
D4
AL,0FFH ;
D1
1V
ADD
AL,33H ;
每次信号AL加33H,即每阶梯加
D3
ENDP
三角波信号产生程序
B1:
B2
B2:
判断是否到顶,到顶跳转
B3
B3:
DEC
B1 ;
到0转移,重新开始
SANJIAOBO ENDP
子程序结束
CODE ENDS
END START
5.总结
这次的微机课程设计让我真正认识到实际操作与书本知识的不同。
1、首先要注意编码的严谨性,开始自定义的锯齿波阶梯波简略为JCB,JTB
在实际过程中却发现这些不能作为目的标号,导致编译失败;
2、其次是选片问题,最开始使用的是80H到83H作为ABC及控制字端口的地址,但是却怎么也选不上,通过微机实验报告书发现书上使用的是
62、64、66等偶地址,改用偶地址后便实现了成功的片选。
3、在初次编程时什么都没注意,编译有十几处的服务错误,自己按行依次修改的。
4、三角波仿真与阶梯波仿真时进入了死循环导致无法出现波形,查找之后改变了反悔的地址。
尽管出现了各种问题,最后还是成功完成了这次课程设计,经历了辛苦做出来的东西才会对所学知识更加熟悉,以后的设计相信也会更加顺利。
6.参考文献
[1]朱定华,微机原理、汇编与接口技术,清华大学出版社,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 dac0832 波形 发生器