微型计算机技术课程设计书教学内容.docx
《微型计算机技术课程设计书教学内容.docx》由会员分享,可在线阅读,更多相关《微型计算机技术课程设计书教学内容.docx(14页珍藏版)》请在冰豆网上搜索。
![微型计算机技术课程设计书教学内容.docx](https://file1.bdocx.com/fileroot1/2022-10/12/2b97377f-e7eb-4ad7-a7fa-cbdd703e5bd0/2b97377f-e7eb-4ad7-a7fa-cbdd703e5bd01.gif)
微型计算机技术课程设计书教学内容
一、设计目的
为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。
通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《微型计算机技术》、《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEILC和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:
分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
二、设计内容
该实践训练环节要求学生能够运用所学知识,在老师的引导下完成课程设计题目,达到相应的训练要求。
通过实验进一步学习D/A转换器的基本原理以及在单片机系统中扩展D/A转换器的方法。
用D/A完成锯齿波输出,用PROTEUS内带的示波器查看波形。
3、问题分析、方案的提出、设计思路及原因
首先根据锯齿波的图形构建基本框架,输出的电压值以一定的增量逐步增加,达到最大值后再回到初始值然后再次循环。
本设计要求利用数字量/模拟量(D/A)转换来完成锯齿波的输出。
数/模转换器(DAC)是一种把数字信号转换成模拟信号的器件。
计算机输出的数字信号首先传送到数据锁存器中,然后由模拟电子开关把数字信号的高低电平变成对应的电子开关状态。
1、系统方案的比较
方案一:
采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:
采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。
这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。
方案三:
采用单片机和DAC0808数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案三既可满足毕业设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。
本设计采用AT89C51和DAC0808相连接构成波形发生器的电路,然后对AT89C51进行编程实现需要产生的波形。
由于该设计比较简单,采用汇编语言或C语言实现都可。
若要实现多个波形,可通过开关来选择波形,只需在程序中加如对开关接口的控制语句即可。
例如:
若要获得负向的锯齿波,只需将程序中的指令INCA换成指令DECA即可,如果将正向锯齿波与负向锯齿波组合起来就可以获得三角波。
2、控制芯片的选择
方案一:
AT89C51单片机是一种高性能8位单片微型计算机。
它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机。
方案二:
C8051F005单片机是完全集成的混合信号系统级芯片,具有与AT89C51兼容的微控制器的内核,与MCS-51指令集完全兼容。
除了具有标准AT89C51的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。
方案选择:
方案二中C8051F005芯片系统内部结构复杂,不易控制,芯片成本高,对于本系统而言利用率低,AT89C51芯片比较常用,简单易控制,成本低,性能稳定故采用方案一。
四、电路设计及功能说明,硬件原理框图及电路图
(一)、脉冲发生器能产生各种周期的输入信号,如方波、锯齿波、三角波及单周期短脉冲。
1.放置脉冲发生器
(1)在ProteusISIS环境中单击工具箱中的“GeneratorMode”按钮图标,出现如图1所有激励源名称列表。
(2)用鼠标左键单击“PULSE”,则在预览窗口出现脉冲发生器的符号。
(3)在编辑窗口双击,则脉冲发生器被放置到原理图编辑界面中,可使用镜像、翻转工具对其位置和方向进行调整。
2.编辑脉冲发生器
(1)双击原理图中的脉冲发生器符号,出现脉冲发生器的属性设置对话框,如图2所示。
其中,主要参数说明如下。
Initial(Low)Voltage:
初始(低)电压值。
Initial(High)Voltage:
初始(高)电压值。
Start(Secs):
起始时刻。
Risetime(Secs):
上升时间。
Falltime(Secs):
下降时间。
PulseWidth:
脉冲宽度。
有两种设置方法:
PulseWidth(Secs)指定脉冲宽度,PulseWidth(%)指定占空比。
Frequency/Period:
频率或周期。
CurrentSource:
脉冲发生器的电流值设置。
在图2中的“GeneratorName”中输入脉冲发生器的名称,并在相应的项目中输入合适的值。
(3)设置完成后,单击“OK”按钮。
(4)可用上述讲到的与正弦波类似的方法用示波器观看脉冲发生器的波形。
(二)、芯片介绍
1、AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51与MCS-51兼容,可进行1000写/擦循环。
有128×8位内部RAM·、32可编程I/O线、两个16位定时器/计数器、5个中断源、片内有振荡器和时钟电路。
各管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2、DAC0808
引脚功能:
1脚为空
2为GND
3VEE为负向电源输入端
4为DAC输出引脚
A1-A8脚为8位数据输入引脚
13VCC为正向电源输入端
VREF+和VREF-接基准电流发生电路中运算放大器的反相输入端和同相输入端
16脚为COMPENSATION供外接补偿电容
DAC0808是具有16个引脚的双列直插式倒T型电阻网络的权电流8位D/A转换器件。
(1)内部组成部件
倒T型电阻网络
模拟开关
运算放大器
参考电压,8位数字量输入,外接求和放大器,外接电阻
当数据输入量全为0时,其4脚输出电压最低,接近零;当数据输入量全为1时,其4脚输出电压最高,电压值由基准电压VREF决定。
因此,基准电压的精度决定了D/A转换的精度。
n位倒T形权电流D/A转换器的输出电压。
电路图如下:
五、软件部分的程序流程图,算法和使用的编程技巧
系统框图如图3-1所示。
图3-1低频信号发生器系统框图
低频信号发生器系统主要由CPU、D/A转换电路、基准电压电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。
其工作原理为当分别按下四个按键中的任一个按键就会分别出现方波、锯齿波、三角波、正弦波,并且有四个发光二极管分别作为不同的波形指示灯。
锯齿波流程图:
如图4-2所示。
置DAC0808口地址4000H
图4-2锯齿波流程图
锯齿波产生首先将DAC0808口地址至为4000H,然后将00H送入寄存器A中,DAC0808输出A中的内容,当A中的内容等于F0H返回开始,当A中的内容不为0FH时,A中的内容累加,从而输出波形。
六、源程序清单
LOOP:
JBP2.0,LOOP3*/判断是产生锯齿波还是梯形波/*
JNBP2.0,LOOP5
LOOP5:
MOVA,#00H
LOOP1:
MOVP0,A
INCA
CJNEA,#31H,LOOP1*/判断是否到最大值,若没有输出电压继续增加/*
DEL:
MOVR7,#50*/达到最大值后延时/*
DEL1:
M