微机原理课程设计报告.docx
《微机原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告.docx(41页珍藏版)》请在冰豆网上搜索。
![微机原理课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/24/836440b2-17d8-4b08-8b4d-2c3a112f827d/836440b2-17d8-4b08-8b4d-2c3a112f827d1.gif)
微机原理课程设计报告
微机应用系统设计与综合实验
课程设计报告
1.3.18086CPU简介················································4
1.3.274LS273功能简介············································4
1.3.7数码管显示·················································7
附录2proteus仿真图··············································37
第一章概要
1.1课程设计目的
《微机应用系统设计与综合实验(实践)》课程设计是自动化、智能专业本科生的必修课。
通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入地掌握,综合了对应用系统的硬件原理和软件编程的分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。
要求同学独立完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,画出电路印制板图,编写设计程序及程序流程图。
希望同学们认真阅读课程设计任务书,认真查阅资料,完成好上机调试,圆满完成本次课程设计。
1.2课程设计内容及要求
完成基于80x86CPU为核心控制器的具备基本I/O接口功能的硬件电路系统原理图设计、PCB电路设计和软件编程设计。
基本I/O接口电路应包括:
锁存器、缓冲器、地址译码器、8255接口、8253接口、A/D(D/A)转换电路、串行接口电路等;软件功能要求完成基本I/O接口电路控制和串口通信功能调试。
设计题:
信号发生器功能程序设计
设计要求:
(1)、硬件电路基于80x86微机的接口电路;
(2)、分别用C语言或汇编语言或VC++编程完成硬件接口功能设计;
(3)、程序功能要求:
小键盘给定、数码管(屏幕)显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。
(注意:
按键数量应尽量少)。
(4)、具备本地及远程(串行方式)监测功能。
实现技术指标:
(1)、完全用小键盘控制各波形间的切换和频率和幅值的调节以及退出。
(2)、实现正弦波、三角波、方波和锯齿波信号的产生。
(3)、数码管同步显示当前工作波形的频率和幅值。
(4)、实现频率的1到5倍可调。
(5)、实现幅值的1到5倍可调。
1.3所需芯片及硬件简介
1.3.1 8086功能简介
8086 CPU是由总线接口部件BIU和执行部件EU这两大部分构成。
总线接口部件BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU完成的。
所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。
它提供了16位双向数据总线、20位地址总线和若干条控制总线。
其具体任务是:
负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。
CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存
单元或I/O端口中。
执行单元EU中包含1个16位的运算器ALU、8个16位的寄存器、1个16位标志寄存器FR、1个运算暂存器和执行单元的控制电路。
这个单元进行所有指令的解释和执行,同时管理上述有关的寄存器。
EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。
如果指令队列缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到EU,通过译码电路分析,发出相应控制命令,控制ALU数据总线中数据的流向。
1.3.274LS273功能简介
地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。
8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。
当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。
地址锁存器74LS273是带清除端的八D触发器,只有清除端为高电平时才具有锁存功能,锁存控制端为11脚CLK,在上升沿锁存。
8086的ALE端输出的锁存控制信号必须经反相器后才能连到74LS273的CLK端,以满足CLK在上升沿锁存的要求。
74LS273的引脚1D~8D为数据输入端,1Q~8Q为数据输出端,WR:
主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0。
CP(CLK):
触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片,为0时将数据锁存,D0~D7的数据不变。
由于8086有20位物理地址,所以需要用3片74LS273级联。
1.3.38255A特性简介
(1)具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连。
图1.1唐都实验箱D/A0832接线图
(2)8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种。
方式0:
基本的输入输出方式,即无须联络就可以直接进行的I/O方式。
其中A、B、C口的高四位或低四位可分别设置成输入或输出;方式1:
选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0;方式2:
双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
本次设计只用到了三个端口的方式0。
1.3.4D/A0832功能简介
DAC0832是采用CMOS工艺制成的单片电流输出型8位数/模转换器。
DAC0832的引脚功能说明如下:
D0-D7:
数字信号输入端
CS:
片选信号,低电平有效
WR:
写信号1,低电平有效
OUT:
DAC电流输出端
1.3.5A/D0809功能简介
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其
内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
当地址ABC=000时,IN0通道被选通。
图1.2唐都实验箱A/D0809接线图
1.3.6唐都小键盘简介
唐都实验箱中提供了4行×4列16个按键,列选择信号X1-X4,行扫描信号Y1-Y4。
图1.3唐都实验箱小键盘接线图
1.3.7 数码管显示
数码管同步显示当前波形的幅值和频率。
硬件上由8086将数据输出给8255,8255再将输出送给数码管的A~Dp,显示相应字符。
软件上定义一个缓冲区存放波形的幅值和频率,显示数码管时,利用缓冲区的数值查找数码管键值表再输出对应数值。
循环输出波形时也循环输出缓冲区内容对应的值,就可以同步显示波形的幅值和频率。
利用小键盘扫描得到的键值进行判断,对缓冲区内的幅值频率进行相应的改变,使数码管能显示不同的幅值和频率。
第二章总体设计方案
2.1设计思想论述
(1).波形产生:
通过汇编语言编写各个波形子程序,其中方波和三角波参考了唐都的参考程序。
锯齿波由三角波修改而来,正弦波事先用MATLAB仿真存入各点数据,产生波形时依次输出各个数据即可。
波形子程序中主要是各个波形一个周期的代码,循环执行,由此产生连续波形并通过D/A0832将数字量转换成模拟量输出,即可得各种波形。
具体方案见第三章3.1节。
(2).波形切换:
用小键盘输入进行波形的选择,按键0~3分别对应方波、三角波、锯齿波和正弦波。
每个波形周期输出后,调用键盘查询子程序,判断有无按键按下,没有则继续输出下一周期,否则转到相应的波行子程序上。
可随时进行波形间的切换。
具体方案见第三章3.2节。
(3).无极调频:
改变波形子程序中的各个数据输出延时时间,就可改变整个波形的频率,延时越短频率越高。
而延时时间长短可由外部输入决定,通过A/D0809将电位计(0~5V)的模拟量转化成数字量(00~FF)作为延时时间长短。
调节电位器即可调节延时,进而调节频率。
ADC0809芯片分辨率为8位,即可将延时分为256个等级,实现无极调频。
具体方案见第三章3.3、3.4节。
(4).无极调幅:
改变波形子程序中DA输出值的大小即可改变幅值,可以在原数据基础上乘以一个增益。
而增益可由外部输入,原理与调频相似,通过A/D0809输入一个数字量(00~FF)。
按键4用于调频/调幅的切换。
当判断当前为调幅状态时就将这个数字量存入幅值增益变量中,如果判断是调频状态则存入频率延时变量中。
从而实现只用一个电位器分别调节频率和幅度的功能。
具体方案见第三章3.3、3.4节。
(5).开始结束:
通过扫描小键盘,按下5键则退出。
2.2程序流程图
2.3电路原理图
图2.2硬件连接电路图
第三章典型模块分析
3.1波形产生模块
四个波形子程序结构类似,当子程序被调用后,进行以下步骤:
(1)通过8255的C7位输出一个低电平来启动AD0809,并从8255的B口读入AD输入的数字量(00H~FFH)。
(2)判断幅频标志位FLAG_FUPIN,为0则把AD输入的数字量存入频率值空间FRE,否则存入幅值空间AMP。
(3)输出波形的一个周期。
(4)调用子程序CCSCAN,判断小键盘有无按键按下,无则继续步骤
(1),有则返回主程序。
流程图如图3.1所示。
图3.1波形子程序流程图
3.1.1三角波
三角波从最小值开始逐渐上升,到达最大值之后再逐渐减小到最小。
因此先将最小值(00H)放到BL,输出并延时,对BL加一,再输出并延时,达到最大值后就对BL依次减一,输出并延时,直到BL=00H,则为一个周期波形。
因此三角波有两个过程。
(1)一个周期波形的代码如下:
SANJIAO:
CALLAM;进行幅度调制
MOVAL,00H;对AL中的数据进行初始化
UP:
MOVDX,MY8255_A;上升
;信号发生器系统开始时输出为0
MOVDI,AX
OUTDX,AL
CALLDELAY;进行频率调制
MOVAX,DI
PUSHAX
MOVDX,MY8255_B;读入8255B口信息,看是否有按键按下并进行波形转换
INAL,DX
NOTAL;由于B口的信息按下为低电平,故对AL中的数取反
CMPAL,02H;按下第二行键转入正弦波
JEZHENGXIANBO
CMPAL,04H;按下第三行键转入锯齿波
JEJUCHIBO
CMPAL,08H;按下第四行键转入方波
JEFB
POPAX
INCAL
CMPAL,BL;和最大值比较
JBUP;小于最大值则执行循环
DON:
MOVDI,AX;下降
MOVDX,MY8255_A
OUTDX,AL
CALLDELAY
MOVAX,DI
PUSHAX
MOVDX,MY8255_B;判断键值按下的情况