中南大学
微机应用系统 设计与综合实验报告
设计题目 信号发生器软硬件设计 指导老师 吴同茂,刘剑峰 设计者 王少游 专业班级 测控0302 设计日期 2005年12月
目 录
第一章 微机应用系统课程设计的目的意义 .......................... 2
1.1 设计目的....................................................2 1.1 课程在教学计划中的地位和作用 .................................... 2
第二章 信号发生器系统软硬件设计任务 ............................. 3
2.1 设计内容及要求 ................................................... 3 2.2 课程设计的要求 ................................................... 3
第三章 总体设计方案 .................................................. 3
3.1 设计思想 .......................................................... 3
3.2 总体设计流程图 .............................................4 第四章 硬件设计 ....................................................... 4
4.1 硬件设计概要................................................4 4.2 所用到的芯片及其各自功能说明 .................................... 4 4.3 硬件电路设计系统原理图 .......................................... 6
第五章 软件设计 ....................................................... 7
5.1 流程图及其说明 ................................................... 7 5.2 源程序及其说明 ................................................... 8
第六章 软件系统的使用说明 ......................................... 15 第七章 收获、体会.................................................... 15 附录 参考文献…………………………………………………… 15
1
第一章 微机应用系统课程设计的目的
意义
1.1设计目的
通过该课程的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。
本设计主要能够完成对制定波形的形成,可以通过输入来改变频率。此信号发生器可以很好的运用于有需要的场合。
1.2 课程在教学计划中的地位和作用
《微型计算机原理与接口计数》课程是我们测控技术专业在这个学期学的一门基础课程。通过该课程的学习使我们对微机系统有一个基本的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。 《微机应用系统设计与综合实验》是结合本学期的课程开设的一门实习,它的主要目的:通过课程设计还要进一步锻炼同学们在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地提高分析和解决问题的能力。
2
第二章 设计任务
2.1 设计内容及要求
本设计综合应用D/A转换器、定时器/计数器电路,中断技术:通过PC机定时,产生:锯齿波、三角波、正弦波等模拟信号输出,信号频率可通过PC机键盘调节。
2.2 课程设计要求
设计要求画出电路原理图,说明工作原理,编写程序及程序流程图。
第三章 总体设计方案
3.1 设计思想及方案论证
由于要求达到模拟信号波形发生,因此要由D/A转换芯片0832来来完成此
项任务,由8253形成波形的主要做法是:先输出一个下限电平,将其保持t然后输出一个稍高的电平,在保持t,然后重复此过程,因此需要延长0832输入数据的时间间隔来改变频率。如图3-1信号发生波形图所示。0832输入的数据
3
的延时可以通过软件完成,也可以通过硬件完成。由于实验要求输出的波的频率可以改变,且精确,所以选用硬件延时。
+5v
0v
图3-1 信号发生波形图
硬件延时主要由计时器8253和中断控制器8259来实现。由8253输出的方波的高低电平,来触发8259的IR0端,8259给CPU中断信号,CPU中断来执行相应的中断子程序,中断子程序为向0832输出数据的程序,通过选择此程序可以产生锯齿波,方波,正弦波。由于0832产生的方波的频率可以控制,所以每次中断执行波形发生程序的时间间隔可以精确控制。以此来控制输出的波形频率。
3.2总体设计方案
总体的设计就是以8253定时中断,中断的子程序来执行输出,输出的信号经过信号发生器形成波形。初步设想图3-2如图所示。 Clk Ir0 int 8259 8253
图3-2 硬件简图
intr 8088 0832
4
第四章 硬件设计
4.1芯片简介
4.1.1可编程中断控制器8259a
8259a是8086/8088系列的可编程中断控制器,8259a为28个引脚的双列直插芯片。它的主要功能是:
(1)据8级优先级控制,通过联级可以扩展到级优先控制。 (2)每一级中断可由程序单独屏蔽或允许。 (3)可提供中断类型号传送给CPU。 (4)可以通过编程选择多种不同工作方式。
引脚功能:
D7-D0:双向数据线,三态,与数据总线相连。
IR7-IR0:外设的中断请求信号输入端,输入,中断请求:可以是电平触
发,或者边缘触发。
RD:读命令信号,输入,低电平有效,用来控制数据由8259A读 WR:写命令信号,输入,地点平有效,用来控制写到8259 CS:片选信号,输入,通过译码器与地址总线相连
INT:向CPU发出中断请求信号,输出,与CPU的INTR相连 INTA:CPU给8259的中断响应信号,输入。
4.1.2DAC0832:
NSC公司生产的DAC0832 ,是一种内部带有数据输入寄存器的8位D/A转化器,采用CMOS工艺制成,芯片内部R-2R梯形电阻网络,用于对参考电压产生的电压进行分流,完成模数转换,转换结果以一组差动电流 IOUT1IOUT2输出
各引脚的功能分述如下:
VREF : 参考电压输入端。根据需要一定大小的电压,由于它是转换的基准,
要求数值正确,稳定性好。 VCC:工作电压输入端。
5
AGAN为模拟地,DGAN为数字地。在模拟电路中,所有的模拟地要连在一
起然后将模拟地,数字地连接到一个公共接地点。 DI7-DI0:数据输入。可直接连接到数据总线。
IOUT1IOUT2:互补的电流输出端。为了输出模拟电压,需加转换电路。 4.1.3 8253
inter8253是一种能够完成定时和计数的芯片,8253内部有3个16位计数器通道,通过对他们编程,每个计数器可以按照6种工作方式工作,并且都可以按2或10进制格式进行计数。,最高频率为2HZ.。8253还可以用于许多其他场合,比如可作编程方波发生器,分频器等。 引脚:1数据缓冲总线
数据总线缓冲器是8253与系统总线相连时使用的接口电路,它由8位双相三态缓冲器构成,CPU用输入输出指令对8253进行读写操作的信息都由8位数据总线传输:(1)CPU在对8253进行初始化编程时,向他写入控制字。(2)CPU向某一计时器写入计数初值。(3)从计数器读出计数值。
2读写控制逻辑
读写控制逻辑接受系统控制总线送来的输入信号,经由组合后形成控制信号,对各部分操作进行控制。可接受的信号有:
(1)
CS片选,低电平有效,由数据总线经由IO端口译码电路产生。只有CS低电平时,CPU才能对8253进行读写操作。
(2)
RD读信号,低电平有效,当RD位地电平时,表示CPU正在读取所选定的计数器的通道的内容。
(3)
WR写信号,低电平有效。当WR为低电平时,表示CPU正在将计数器初值写入所选中的通道口中,或者将控制字写入内部寄存器中。
(4)
A1A2 端口选择信号,改变它的值,来选择8253内三个计数器通道。
如果8253和与8位数据总线的微机相连,只要将A1A0分别与地址总 相联。如果系统采用的是8086CPU,则数据总线为16位,传输数据时,总是将低8位数据送往偶地址,将高8位送往奇地址。
6
3计数器
8253内部包含三个完全相同俄计数器定时器通道,对3个通道的操作, 完全的。每个通道都包含1个8位的控制字寄存器,1个16位的减寄存器,和一个锁存器,执行部件是一个16位的减法计数器。每个通道工作时,对输入到CLK引脚上的脉冲按2进制或10 进制格式进行计数。每当输入一个时钟脉冲,计数器减1,当计数器的值减为0时从,从OUT引脚输出一个脉冲信号。GATE引脚上的门控制信号,决定他是否允许计数。
4.3硬件电路设计系统原理图
123U312345678DU2TOEU?U11314115VCC17X1RDY1RDY2AEN1AEN24637F/CEFICSYNCASYNCREADYCLKPCLKOSCRESET58212101213141516171819B7B6B5B4B3B2B1B082861718NMIINTRA7A6A5A4A3A2A1A011987654321161514131211109911DI0DI1DI2DI3DI4DI5DI6DI7OESTBU48282AD0AD1AD2AD3AD4AD5AD6AD7A8A9A10A11A12A13A14A15A16/S3A17/S4A18/S5A19/S6S0/DENS1DT/RS2IO/MALEQS0INAQS1CLKRESET8765432393837363526272825241921DO0DO1DO2DO3DO4DO5DO6DO7191817161514131245615141312111097U574LS138E1E2E3ABCY0Y1Y2Y3Y4Y5Y6Y7D123456U6DAC08321711314151567XferCSmsbDI7DI6DI5DI4DI3DI2DI1lsbDI0WR1WR2ILE21819U?AVrefRfbIout2Iout1121132CY?161000MHZX211RES8284参考电压45v8088U91098765432524212322022271A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP27D0D1D2D3D4D5D6D71112131516171819U8876543212122231920D0D1D2D3D4D5D6D7CSRDWRA0A18253OUT2GATE2CLK2OUT0GATE0CLK0101191110987654172617161813227U7D0D1D2D3D4D5D6D7INTINTACSRDWRA08259IR0IR1IR2IR3IR4IR5IR6IR71819202122232425BBOUT1GATE1CLK1131415SP/EN16CAS0CAS1CAS2121315ATitle11C3229313033342322RDWR/LOCHOLDHLDAMN/MXSSOTESTREADY20VccLM324A1ASizeBDate:File:12345NumberRevision16-Dec-2005E:\\王少游\\MyDesign1ddbSheet of DrawnBy6图4-1硬件原理图
7
第五章 软件设计
5.1流程图主要进行系统初始化和外围接口芯片初始化,及开中断,等待
中断产生,其流程图如图5.1所示。
图5-1程序流程图
8
5.2源程序及其说明
data segment
sinbuf db 80h,8ch,98h,0a5h,0b0h,0bch,0c7h,0d1h db 0dah,0e2h,0eah,0f0h,0f6h,0fah,0fdh,0ffh db 0ffh,0fdh,0fah,0f6h,0f0h,0eah,0e2h,0dah db 0d1h,0c7h,0bch,0b0h,0a5h,98h,8ch,80h db 7fh,73h,67h,5ah,4fh,43h,38h,2eh db 25h,1dh,15h,0fh,09h,05h,02h,00h db 00h,02h,05h,09h,0fh,15h,1dh,25h db 2eh,38h,43h,4fh,5ah,67h,73h,7fh mess1 db'方 波--1'0dh,0ah db'三角波--2'0dh,0ah db'方 波--3'0dh,0ah db'正弦波--3'0dh,0ah
mess2 db'输入发生频率',0dh,0ah,'$' cunchu db ? jishu db ? data ends
stack segment stack st dw 20 dup(?) TOP label word stack ends code segment
assume cs:code,ds:data,ss:stack,es:data main proc far mov ax,data mov ds,ax mov ax,stack mov ss,ax
mov dx,8259AD0 ;初始化8259,设置为单片,上升沿触发,完全
mov al,00010011b ;非自动EOI方式 out dx,al
mov dx,8259AD1 mov al,10000000b out dx,al
mov al,00000001b out dx,al
lea dx,mess2 ;输入频率 mov ah,09h
9
call input
mov ax,4096 ;将输入的频率计算,得出写入8253的时间数
mov bx,cx div bx mov cx,ax push cx
mov dx,316h
mov al,0010011b ;通道1方式字,方式0,BCD记数 out dx,al mov dx,312h pop cx
mov al,cl out dx,al mov al,ch out dx,al
mov dx,316h mov al,00110111b out dx,al mov dx,310h
mov al,16h 频率,其频率为0.125MHz out dx,al
mov cuncu,0h mov jishu,0h bg: lea dx,mess1 mov ah,09h int 21h mov ah,08h int 21h pop ax mov ah,al
cmp al,'1' 中断地址表
mov ax,0 mov es,ax mov bx,08h*4
mov ax,offset fangbo mov es:word ptr[bx],ax mov ax,seg fangbo
mov es:word ptr[bx+2],ax
cmp al,'2' 中断地址表
mov ax,0 ;通道0方式字,方式0,bcd计数 ;16分频,以0通道作为1通道的时钟 ;将存储单元清零
;选择波形 ;若为方波,将方波对应的子程序写入 ;若为锯齿波,将锯齿对应的子程序写入
10
mov es,ax mov bx,08h*4 mov ax,offset juchi mov es:word ptr[bx],ax mov ax,seg juchi
mov es:word ptr[bx+2],ax
cmp al,'3' ;若为三角波,将三角对应的子程序写入中断地址表
mov ax,0 mov es,ax mov bx,08h*4
mov ax,offset sanjiao mov es:word ptr[bx],ax mov ax,seg sanjiao
mov es:word ptr[bx+2],ax
cmp al,'4' 入中断地址表
mov ax,0 mov es,ax mov bx,08h*4
mov ax,offset zhengxian mov es:word ptr[bx],ax mov ax,seg zhengxian mov es:word ptr[bx+2],ax sti
CIR: JMP CIR ret main endp
;输入数字的子程序
input proc near xor dx,dx xor cx,cx mov bx,10 lea si,flag
mov byte ptr[si],0
mov ah,1 int 21h cmp al,0dh je enter sub ah,ah
11
;若为正弦波,将正弦波对应的子程序写
xchg ax,cx mul bx sub cx,30h add cx,ax mov ah,1 int 21h jmp key enter:cmp flag[0],0 je next neg dx
next mov word ptr[di],cx ret input end
;三角波发生程序 sanjiaobo proc near push ax
push bx push cx push dx
mov dx,228h mov al,cunchu out dx,al inc
cmp al,0ffh jnz cun mov cun,0h cun : mov cun,al
intreturn:pop dx pop cx pop bx pop ax eoi iret
sanjiaowo endp
;锯齿波发生程序
12
jvchibo : proc near push ax push bx push cx push dx
mov dx,228h mov al,cunchu out dx,al
mov cx,jishu cmp cx,0ffh jg ad dec: dec
add cx,01h cmp cx,1feh mov cx,0h jmp cun ad: inc
cun : mov cun,al mov jishu,cx intreturn:pop dx pop cx pop bx pop ax eoi iret
jvchibo endp
;正弦波发生程序 zhengxuanbo : proc near push ax push bx push cx push dx
mov dx,228h mov al,cunchu
OUT DX,sinbuf[AL] mov cx,jishu cmp cx,0ffh jg ad dec: dec
13
add cx,01h cmp cx,1feh mov cx,0h jmp cun ad: inc
cun : mov cun,al mov jishu,cx intreturn:pop dx pop cx pop bx pop ax eoi iret
jvchibo endp
;方波子程序
fangbo : proc near push ax push bx push cx push dx
mov dx,228h
mov cx,jishu add cx,01h cmp cx,0ffh jmp lo mov al,0h
out dx,al lo: mov al,0ff out dx,0h cmp cx,1feh jmp lo2
mov cx,0h lo2: mov jishu,cx
intreturn:pop dx pop cx pop bx pop ax eoi iret
jvchibo endp
14
第六章 软件系统的使用说明
先输入要输出的频率,然后选择输出的波形,然后就可以在转换的out端得到波形。
第七章 收获、体会
在这两周的实习中,我再次的巩固了微机课中所学的知识,了解了各种芯片的的用法,各个接口的名称,走用,学会了用protel来画硬件流程图。明白了微机系统在生产生活中最基本的用处.
在两周的实习中,我也感到所学的知识不是很深,动手的能力不是很强,面对问题解决问题的能力还有待加强。总的来说,《微型计算机原理与接口计数》对于我以后学习,工作的影响是很大的。
参考书目:
[1] 周荷琴.微型计算机原理与接口技术.合肥:中国科学技术大学出版社,2004.12
[2] 刘全忠.汇编语言实用程序.天津:天津大学出版社,1991.6
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务