单片机项目设计.docx

上传人:b****8 文档编号:9539155 上传时间:2023-02-05 格式:DOCX 页数:38 大小:925.05KB
下载 相关 举报
单片机项目设计.docx_第1页
第1页 / 共38页
单片机项目设计.docx_第2页
第2页 / 共38页
单片机项目设计.docx_第3页
第3页 / 共38页
单片机项目设计.docx_第4页
第4页 / 共38页
单片机项目设计.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

单片机项目设计.docx

《单片机项目设计.docx》由会员分享,可在线阅读,更多相关《单片机项目设计.docx(38页珍藏版)》请在冰豆网上搜索。

单片机项目设计.docx

单片机项目设计

 

单片机项目设计指导

 

适用专业:

电气自动化技术

应用电子技术

 

 

学习情景一:

快速掌握PROTEUS的用法

为了更快掌握PROTEUS设计与仿真操作,我们先从一简单实例入手。

让我们首先来熟悉一下仿真软件的主界面:

图5-1仿真软件的主界面

运行protues的ISIS模块,进入仿真软件的主界面,如图5-1所示,区域①为菜单及工具栏,区域②为元器件预览区,区域③为对象选择器窗口,区域④为编辑窗口,区域⑤为绘图工具栏,区域⑥为元器件调整工具栏,区域⑦为运行工具条。

Proteus是一种集单片机仿真和SPICE分析于一身的仿真软件。

其功能非常强大,不仅能仿真模拟电路、数字电路以及模拟数字混合电路,更重要的是可以仿真51系列、AVR、PIC等常用主流单片机。

Protues提供了丰富的资源:

(1)Proteus拥有的元器件资源:

Proteus可提供30多种元件库,超过8000种模拟、数字元器件。

(2)Proteus可提供的仿真仪表资源:

仿真仪器仪表的数量、类型和质量是衡量仿真实验室是否合格的一个关键因素。

Proteus可提供常用的示波器(本文的实例中示波器被用来观察产生的波形)、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。

以下简要罗列了proteus中常用元器件和仿真仪表中英文对照表:

7407驱动门  

1N914二极管  

74Ls00与非门 

74LS04非门

74LS08与门  

74LS390TTL双十进制计数器 

7SEG4针BCD-LED输出从0-9对应于4根线的BCD码

7SEG3-8译码器电路BCD-7SEG转换电路    

AND与门  

BATTERY电池/电池组  

BUS总线  

CAP电容  

CAPACITOR电容器  

CLOCK时钟信号源  

CRYSTAL晶振  

FUSE保险丝  

GROUND地  

LAMP灯  

LED-RED红色发光二极管  

LM016L2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。

LOGICANALYSER逻辑分析器  

LOGICPROBE逻辑探针  

LOGICPROBE[BIG]逻辑探针用来显示连接位置的逻辑状态

LOGICSTATE逻辑状态用鼠标点击,可改变该方框连接位置的逻辑状态

LOGICTOGGLE逻辑触发  

MOTOR马达  

OR或门 

POT-LIN三引线可变电阻器

POWER电源

RES电阻 

RESISTOR电阻器  

SWITCH按钮手动按一下一个状态

VOLTMETER伏特计 

VOLTMETER-MILLImV伏特计

VTERM串行口终端  

Electromechanical电机 

Inductors变压器  

LaplacePrimitives拉普拉斯变换

Miscellaneous各种器件AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表;

Optoelectronics各种发光器件发光二极管,LED,液晶等等

Resistors各种电阻  

SimulatorPrimitives常用的器件  

Speakers&Sounders  扬声器

Switches&Relays开关,继电器,键盘

Transistors晶体管(三极管,场效应管)

TTL74series 

TTL74ALSseries 

TTL74ASseries 

TTL74Fseries 

TTL74HCseries 

TTL74HCTseries 

TTL74LSseries 

TTL74Sseries 

此模拟电路集成芯片 

Capacitors电容集合 

Connectors排座,排插 

DataConvertersADC,DAC

DebuggingTools调试工具  

下面开始我们的第一个任务:

1.1子情境内容:

让单片机动起来,用单片机控制一个LED灯闪烁发光。

用P1口的第一个引脚控制一个LED灯,1秒钟闪烁一次。

1.2子情境目标:

通过此子情境的练习,快速掌握PROTEUS的基本用法

1.3子情境步骤

1.3.1步骤一:

PROTEUS电路设计

整个设计都是在ISIS编辑区中完成的。

(1)单击工具栏上的“新建”按钮

,新建一个设计文档。

单击“保存”按钮

,弹出如图5-2所示的“SaveISISDesigneFile”对话框,在文件名框中输入“LED”(简单实例的文件名),再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。

图5-2保存ISIS设计文件

(2)选取元器件

此简单实例需要如下元器件:

单片机:

AT89C51

发光二极管:

LED-RED

瓷片电容:

CAP*

电阻:

RES*

晶振:

CRYSTAL

按钮:

BUTTON

单击图5-3中的“P”按钮

,弹出如图5-4所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“AT89C52”,系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。

在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C52”添加至对象选择器窗口。

按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“CRY*”可以找到晶振。

被选取的元器件都加入到ISIS对象选择器中。

如图5-5所示。

图5-3单击“P”按钮选取元器件

图5-4选取元器件窗口

图5-5选取元器件均加入到ISIS对象选择器中

(3)放置元器件至图形编辑窗口

在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。

同理,将BUTTON、RES等放置到图形编辑窗口中。

如图5-6所示。

若元器件方向需要调整,先在ISIS对象选择器窗口中单击选中该元器件,再单击工具栏上相应的转向按钮

,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。

若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。

通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。

如图5-6所示。

(4)放置终端(电源、地)

放置电源操作:

单击工具栏中的终端按钮

,在对象选择器窗口中选择“POWER”如图5-7所示,再在编辑区中要放电源的位置单击完成。

放置地(GROUND)的操作与此类似。

图5-6各元器件放在ISIS编辑窗口中合适的位置

图5-7放置终端符号

(5)元器件之间的连线

Proteus的智能化可以在你想要画线的时候进行自动检测。

下面,我们来操作将电阻R1的右端连接到LED显示器的左端,如图5-6所示。

当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED的左端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了LED显示器的连接点,单击鼠标左键完成电阻R1和LED的连线。

Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。

WAR可通过使用标准工具栏里的“WAR”命令按钮

来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

同理,我们可以完成其它连线。

在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。

(6)修改、设置元器件的属性

PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。

例如,发光二极管的限流电阻R1,双击它弹出如图5-7所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。

图5-9是编辑完成的“简单实例”的电路。

图5-8设置限流电阻阻值为330欧姆

图5-9编辑完成的简单实例的电路图

1.3.2步骤二:

源程序设计与生成目标代码文件

(1)程序流程图

图5-10发光二极管闪烁的流程图

(2)源程序设计(略)

1.3.3步骤三:

PROTEUS仿真

(1)加载目标代码文件

双击编辑窗口的AT89C52器件,在弹出如图5—11所示属性编辑对话框ProgramFile一栏中单击打开按钮

,出现文件浏览对话框,找到FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。

在Clockfrequency栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。

因为单片机运行的时钟频率以属性设置中的“Clockfrequency”为准,所以在编辑区设计MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。

所以从子情境三开始就将振荡电路和复位电路省略。

图5-11加载目标代码文件窗口

(2)仿真。

单击按钮

,启动仿真,发光二极管间隔500毫秒闪烁。

图5—12仿真运行片段

红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平

学习情景二:

用发光二极管实现流水灯乒乓球效果

2.1子情境目标:

(1)通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果

(2)用PROTEUS设计、仿真以AT89C52为核心的放光二极管流水灯电路。

(3)掌握发光二极管的控制方法

2.2子情境步骤

2.2.1步骤一:

PROTEUS电路设计

(1)选取元器件:

按快捷键“P”按钮

,打开元器件选择窗口。

在关键词栏中输入元器件的关键词,选取需要的元器件。

①单片机:

AT89C52

②电阻、8排阻:

RES*

③红色发光二极管:

LED-RED

④瓷片电容:

CAP*

⑤晶振:

CRYSTAL

(2)放置元器件:

在对象选择器中单击选中AT89C52,在编辑区中合适的位置单击,器件AT89C52就被放置到编辑区中。

如果要改变元器件的放置方向,先在ISIS对象选择器中单击选中该元器件,再单击工具栏上相应的转向按钮

,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。

(3)放置终端(电源、地)

放置电源操作:

单击工具栏中的终端按钮

,在对象选择器窗口中选择“POWER”,再在编辑区中要放电源的位置单击完成。

放置地(GROUND)的操作与此类似。

(4)元器件之间的连线

因为ISIS的智能化程度很高,只要单击所要连线的起点和终点。

例如元器件的引脚、终端等,在这两点间会自动生成一条线。

若要画折线,只要在转折点单击;若中途想取消连线,右击即可。

(5)元器件属性设置

PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。

设置好的原理图如图5-13所示。

图5-13流水灯乒乓效果原理图

2.2.2步骤二:

源程序设计与目标代码文件生成

(1)程序流程图

(2)源程序设计

2.2.3步骤三:

PROTEUS仿真

加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击打开按钮

,出现文件浏览对话框,找到pingpang.hex文件,单击“打开”按钮,完成添加文件。

单击按钮

,启动仿真,仿真运行片段如图5-15所示。

通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果。

图5-15流水灯乒乓效果运行片段

学习情景三:

数码管动态扫描

3.1子情境内容:

利用动态扫描让四位数码管稳定的显示1234。

3.2子情境目标:

(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电

路设计,本任务的效果是让四位数码管稳定的显示1234。

(2)用PROTEUS进行电路设计和实时仿真

3.3知识点链接

(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)

动态显示的特点是将所有位数码管的段选线s一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

(2)总线的应用

元器件与总线的连线

P0口的接线采用总线方式,详细如图5-17所示。

1选择总线按钮

2绘制总线:

与普通电线的绘制方法一样,选择合适的起点、终点单击。

如果终点在空白处,左键双击结束连线。

画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。

此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。

在画斜线时,需要关闭线路自动路径功能

才好绘制。

Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。

WAR可通过使用标准工具栏里的“WAR”命令按钮

来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

3给与总线连接的导线贴标签PARTLABELS

与P0口相连的线标签名依次为P00—P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。

单击绘图工具栏中的导线标签按钮

,使之处于选中状态。

将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图5-16所示。

在“string”栏中,输入标签名称(如p00),单击“OK”按钮,结束对该导线的标签标定。

同理,可以标注其它导线的标签,如图5-16所示。

注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。

图5-16编辑导线标签窗口

3.4任务步骤

3.4.1步骤一:

PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图5-17所示。

图5-17四位共阴极数码管动态扫描显示的原理图

1、选取元器件

①单片机:

AT89C52

②带公共端的排阻:

RESPACK-8

③四位共阴极数码管:

7SEG-MPX4-CC

2、放置元器件、放置电源和地、连线、元器件属性设置

数码管动态扫描显示的原理图如图5-17所示,整个电路设计操作都在ISIS平台中进行。

(1)带公共端的排阻(RESPACK-8)如图5-18所示,在本电路中作为P0的

上拉电阻,在如图5-19所示ComponentValue一栏中可更改阻值,例如本例中将阻值更改为200欧姆。

图5-18排阻图5-19排阻属性框

至此,我们便完成了整个电路图的绘制。

3.4.2步骤二:

源程序设计与目标代码文件生成

(1)程序流程图

图5-20数码管动态扫描的流程图

(2)源程序设计

3.4.3步骤三:

PROTEUS仿真

加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击打开按钮

,出现文件浏览对话框,找到dongtai.hex文件,单击“打开”按钮,完成添加文件。

单击按钮

,启动仿真,仿真运行片段如图5-21所示。

通过AT89C52单片机控制四位数码管,实现让四位数码管稳定的显示“1234”的效果。

图5-21数码管动态扫描显示“1234”

学习情景四:

定时/计数器的使用——方波发生器

4.1子情境内容:

用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。

4.2子情境目标:

(1)通过用AT89C52单片机定时/计数器0的定时功能构成一简单的方波发生器,掌握定时器的基本用法。

(2)用PROTEUS进行电路设计和实时仿真

(3)学会使用虚拟示波器观察波形

4.3知识点链接

虚拟示波器的基本操作:

单击工具栏中的按钮

(虚拟仪器),在对象选择器列表中选择OSCILLOSCOPE(示波器),在ISIS编辑窗口中合适位置单击就可以将示波器放置好了。

最后将单片机的P1.0口与示波器的A通道相连,如图5-22所示。

4.4任务步骤

4.4.1步骤一:

PROTEUS电路设计,实现周期为2s的方波的原理图如图5-22所示。

图5-22方波发生器原理图

1、选取元器件

①单片机:

AT89C52

②电阻:

RES

③LED发光二极管:

LED-RED

2、放置元器件、放置电源和地、连线、元器件属性设置

方波发生器的原理图如图5-22所示,整个电路设计操作都在ISIS平台中进行。

与子情景3相似,故不详述。

(1)程序流程图

中断服务程序

主程序

图5-23方波发生器的流程图

 

(2)源程序设计

4.4.3步骤三:

PROTEUS仿真

加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击打开按钮

,出现文件浏览对话框,找到fangbo.hex文件,单击“打开”按钮,完成添加文件。

单击按钮

,启动仿真,仿真运行片段如图5-24所示。

用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。

我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。

调整好以后,系统产生的波形效果如图5-25所示。

转动如图5-26所示的A通道的转盘旋钮,可调整A通道的电压显示幅值,范围为2ms-20v/格,如图电压幅值为2v/格,从波形可以看出P1.0口输出电压近似为5V。

转动如图5-27所示的转盘旋钮,可调整时基。

如图时基为0.5s/格。

从图中我们能够看出,波形的周期为2s,这与我们设定的目标相一致。

图5-24方波发生器仿真运行图

图5-25示波器上显示的方波图

图5-26调节电压幅值图5-27调节时基

4.5扩展练习

将子情境中方波的周期更改为1秒,并能在虚拟示波器上直观地显示波形。

学习情景五:

单片机外部中断

5.1子情境内容:

外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。

没有发生中断时,数码管从0至F顺序显示,不断循环。

当有外部中断0发生时(在单片机P3.2引脚上有低电平),立即产生中断,数码管从0至F顺序显示的工作停下来,转去执行中断服务程序。

中断服务程序为:

流水灯上下来回流动3次。

完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。

程序流程图如5-29所示。

5.2子情境目标:

(1)理解单片机的中断原理及中断过程

(2)用PROTEUS设计、仿真单片机的外部中断。

5.3知识点链接

5.4任务步骤

5.4.1步骤一:

PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图如图5-28所示。

1、选取元器件

①单片机:

AT89C51

②电阻、排阻:

RES*

③LED发光二极管:

LED-RED

④按钮:

BUTTON

⑤带公共端共阳七段蓝色数码管:

7SEG-COM-AN-BLUE

2、放置元器件、放置电源和地、连线、元器件属性设置

外部中断实验的原理图如图5-28所示,整个电路设计操作都在ISIS平台中进行。

与子情景3相似,故不详述。

与LED串联的排阻阻值为1K欧姆,与数码管串联的电阻的阻值为330欧姆左右。

图5-28外部中断子情境原理图

5.4.2步骤二:

源程序设计与目标代码文件生成

(1)程序流程图

图5-29外部中断流程图

(2)源程序设计

5.4.3步骤三:

PROTEUS仿真

加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击打开按钮

,出现文件浏览对话框,找到zhongduan.hex文件,单击“打开”按钮,完成添加文件。

单击按钮

,启动仿真,仿真运行片段如图5-30、5-31、5-32所示。

图5-30中是主程序的运行片段,主程序中数码管从0至F顺序显示

图5-31中,按下按钮后,在单片机P3.2引脚上有低电平,立即产生中断,数码管从0至F顺序显示的工作停下来,流水灯上下循环移动三次。

图5-32中,完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。

图5-30主程序中数码管从0至F顺序显示

图5-31按下按钮后数码管停下来,流水灯上下循环移动三次

图5-32完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。

5.5扩展练习

主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。

学习情景六:

直流电机正反转

6.1子情境内容:

用单片机AT89C51控制直流电机正反转。

在此将由89C51的P2.0,P2.1通过晶体管控制继电器,当P2.0输出低电平,P2.1输出高电平时,三极管Q1导通,而三极管Q2截止,从而导致与Q1相连的继电器吸合,电机因两端产生电压而转动。

由P3.0,P3.1,P3.2控制电机的正传、反转和停止。

6.2子情境目标:

(1)掌握趋动电机正反转的电路

(2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真

6.3知识点链接

二极管保护电路:

在图5-33中,在两个继电器的两端都反相接了一个二极管,这个二极管非常重要,当使用电磁继电器时必须接。

原因如下:

线圈通电正常工作时,二极管对电路不起作用。

当继电器线圈在断电的一瞬间会产生一个很强的反向电动势,在继电器线圈两端反相并联二极管就是用来消耗这个反向电动势的,通常这个二极管叫做消耗二极管,如果不加这个消耗二极管,反向电动势就会直接作用在趋动三极管上,很容易将三极管烧毁。

6.4任务步骤

6.4.1步骤一:

PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图如图5-33所示。

图5-33直流电机正反转原理图

1、选取元器件

①单片机:

AT89C51

②电阻:

RES*

③直流电机:

MOTOR

④按钮:

BUTTON

⑤三极管:

NPN*

⑥继电器:

RELAY*

⑦二极管:

DIODE*

2、放置元器件、放置电源和地、连线、元器件属性设置

直流电机正反转的原理图如图5-33所示,整个电路设计操作都在ISIS平台中进行。

与子情景3相似,故不详述。

(1)关于元器件属性的设置在此实例中需要特别注意:

①三极管基极的限流电阻更改为1K欧姆

②双击电机图标,弹出如图5-34所示的电机属性对话框,在NominalVoltage一栏中将默认值更改为5v

4双击继电器图标,在弹出的如图5-35所示的继电器属性对话框中,在ComponentValue一栏中将默认值更改为5v

图5-34更改电机属性

图5-35更改继电器属性

6.4.2步骤二:

源程序设计与目标代码文件生成

(1)程序流程图

图5-36电机正反转流程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1