




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、福建师范大学协和学院单片机技术课程仿真实验指导书编写者: *编写时间:2011年2月仿真实验目录实验一. proteus仿真软件的使用实验二. keil uvision3工具软件的使用与mcs-51单片机汇编指令练习实验三.基本输入输出的proteus设计实验四.计数显示综合实验实验五.外部中断实验实验六.单片机定时/计数实验实验七.串行通信-双机通信仿真实验实验八.键盘输入液晶显示c51编程实验实验九.基于单片机的按键发声实验实验十.串行通信-串并转换仿真实验实验十一.串行通信-多机通信仿真实验实验十二.双机并行通信仿真实验实验十三.串行并行通信仿真实验实验十四.单片机数据存储器扩展仿真实验
2、附录:部分实验源程序实验一. proteus仿真软件的使用一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,proteus7.4软件五、实验目的:1、熟悉proteus单片机仿真软件的使用方法。2、掌握利用proteus软件进行单片机系统设计与仿真的过程。3、掌握发光二极管的控制方法。六、预备知识1、proteus简介proteus是英国labcenter electronics公司研发的多功能eda软件。它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进的单片机和嵌入式系统的设计与仿真平台。它真正实现了在计算机上完成从原理图与电路
3、设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成pcb的完整的电子设计、研发过程。在目标板还没投产前,就可以对设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有目标板的情况下,进行相应软件的开发和调试,进行完全的虚拟开发,明显提高企业的开发效率,降低开发风险。2、isis窗口 3、单片机系统的proteus设计与仿真的开发过程(1)、在isis平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。(电路设计)(2)、在wave或keil平台上进行单片机系统的程序设计、编辑、编译、调试,最后生成目标代码(.hex)。(软件设计,实际上也可以在
4、isis平台上进行此项工作)(3)、在isis平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。它在相当程度上反映了实际单片机系统的运行情况。(仿真)proteus电路设计流程和proteus设计与仿真流程分别如图1-1(a) 、图1-1(b)所示。新建设计文件选择元器件放置元器件、电源和地电路布线元器件属性设置电气检测proteus电路设计proteus仿真源程序设计、编辑生成目标代码文件加载目标代码设置时钟频率图1-1(a) proteus电路设计流程图1-1(b) proteus设计与仿真流程 4、鼠标操作特点 (1)、放置对象:单击鼠标左键(简称单击),放置
5、元器件、连线。 (2)、选中对象:单击鼠标右键(简称右击),选择元器件、连线和其他对象,此时选中的操作对象以高亮红色(默认色)显示。 (3)、删除对象:双击鼠标右键(简称右双击),删除元器件、连线等。 (4)、块选择:按住鼠标右键拖出方框,选中方框中的多个元器件及其连线。 (5)、编辑对象:先单击鼠标右键后单击鼠标左键,编辑元器件属性。 (6)、移动对象:先右单击选中对象,按住鼠标左键移动,拖动元器件、连线。 (7)、缩放对象:按住鼠标中键滚动,以鼠标停留点为中心,缩放电路。七、实验内容:1、如图1-2所示,led发光二极管的初始状态为亮,用proteus仿真实现:按一下接键,led灭,再按一
6、下,led亮,按此规律led亮灭交替。要求在proteus中画出电原理图,加载给出的程序目标文件(.hex)后,仿真实现题目的要求。图1-2 实验原理图实验具体步骤如下:(1)、启动isis环境:开始程序proteus 7 professionalisis 7 professional。(2)、新建设计文件 单击“文件-新建文件”,出现选择模板窗口,选中模板“detault”,再单击“ok”。(3)、设定绘图纸大小 当前的用户图纸大小默认a4,可以通过“系统-设置图纸尺寸”来更改图纸的大小。(4)、选取元器件并添加到对象选择器中 单击图1-3(a) 中的“p”按钮,弹出如图1-3(b)所示的选
7、取元器件对话框,在“keywords(关键字)”一栏中输入元器件名称“at89c51”,则出现与关键字匹配的元器件列表。选中(单击)at89c51所在的行后,再单击“ok”按钮,便将器件at89c51加入到isis对象选择器中。同时将相关的元器件都添入,如图1-3(c)所示。图1-3(a) 单击“p”按钮图1-3(b) 元器件列表图1-3(c) 元器件都添入(5)、网格单位 网格单位默认是100th,这也是移运元器件的步长单位,可以根据需要更改这一单位。方法是单击“查看”再单击所要的网格单位即可。(6)、放置、移动、旋转元器件 单击isis对象选择器中的元器件名,蓝色条出现在该元器件名上。把鼠
8、标移至编辑区某位置后,单击就可放置元器件于该位置,每单击一次就放一个元器件。要选中编辑区中的某一元器件,只要单击该器件即可。要移动元器件可选中该器件后,再按住鼠标左键拖动到目的位置即可。旋转元器件可先右击元器件,再根据需要选择菜单进行操作。(7)、放置电源、地(终端) 单击模式选择工具栏中的终端按钮,则isis对象选择器如图1-4(a)所示。根据需要选择即可。(8)、电路图布线系统默认自动布线有效,即按钮被按下。在这种方式下,只要相继单击元器件引脚间、线间等要连线的两处(起点和终点),系统会自动生成连线。(9)、设置、修改元器件的属性右击放置在编辑区中的元器件(呈高亮度)后,再单击它即可打开其
9、属性窗口,这时可在属性窗口中设置、修改元器件的属性。如图1-4(b)所示。图1-4(a) 终端符号图1-4(b) 设置、修改元器件的属性(10)、电气检测(有时可先不做)设计电路完成后,单击电气检查按钮,会出现检查结果窗口,前面是一些文本信息,接着是检查结果列表,若有错,会有详细的说明。(11)、源程序的设计、编辑和目标代码的生成源程序的设计、编辑和目标代码(.hex)的生成,可以通过wave软件来实现的,proteus只要用.hex文件。(12)、加载目标代码和设置时钟频率先右击isis编辑区中的at89c51单片机,然后再单击它即可打开它的属性窗口,直接双击单片机也可打开它的属性窗口,在窗
10、口中的“programe file”右侧框中输入或找到.hex文件所在的路径。如图1-4所示。同理在属性窗口的“clock frequency”中输入或更改单片机的工作频率。如图1-5所示。由于仿真时是以该时钟频率为准的,所以在编辑区设计时可以略去单片机振荡电路,另外,对mcs-51系列单片机而言,复位电路也可以略去,ea控制引脚也可悬空。但要注意若要进行电路电气检测,则这些不可略去。图1-5 加载目标代码和设置时钟频率(13)、单片机系统的proteus交互仿真为与仿真相关的控制按钮,单击第一个仿真按钮则处于全带仿真状态,些时led亮,可用鼠标单击isis编辑区中的按钮,实现交互仿真。单击一
11、次按钮led暗,再次单击,led亮,如些循环,led亮灭交替。若单击最后一个仿真按钮,则终止仿真。(14)、若达不到要求应检查电路和编程是否正确。2、在proteus中画出开关控制数码管实验的电原理图,如图1-6所示。加载给出的程序目标文件(.hex)后,仿真实现将4位开关状态输出到数码管显示。实验用元器件清单提示:(1)、at89c51-单片机(2)、res、respack-8-电阻、带公共端的8排阻(rx8-8排阻)(3)、7seg-com-an-grn-带公共端的共阳七段绿色数码管(4)、sw-spst-带锁存的单刀单掷开关(5)、cap、cap-elec-电容、电解电容(6)、crys
12、tal-晶振八、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。图1-6 开关控制数码管实验电原理图实验二. keil uvision3工具软件的使用与mcs-51单片机汇编指令练习一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,keil uvision3软件五、实验目的:1、熟悉keil uvision3工具软件的使用方法(可参见keil uvision3软件的菜单“帮助”)。2、掌握利用keil uvision3进行源程序编写、编译、程序运行、观察运行结果的基本过程及操作方法。3、掌握mcs-51系列单片机的指令系统。六、实验内容:1k
13、eil uvision3工具软件的使用方法(步骤)(1)、在电脑上新建一文件夹并命名(如ex1) (2)、打开keil uvision3软件。(3)、选择菜单project-new project(若打开软件时,己含有一工程(项目)则应先关闭该工程,方法是:project-close project ),在打开的新建窗口中输入一工程(项目)名(如ex1),点保存,选择一单片机如atmel-at89c52等,在随后出现的提示窗口,选择“否”。(4)、新建一文件。file-new file,在打开的窗口中输入下面的内容(源程序),点保存,文件名如为ex1.asm(注这里的扩展名.asm必须要写,若
14、是用c语言写成的源程序,则扩展名应为.c)。(5)、将源程序文件包含在项目中。右单击,打开快捷菜单,左击“add file to”,在打开的窗口中将ex1.asm增加进去。(6)、对target做必要的设置。右单击,左击“options for target”或单击工具按钮,根据需要,在打开的窗口中做必要的设置,如晶振频率、是否要生成.hex文件等。(7)、编译。点击工具栏这两个按钮中的一个,也可通过project菜单中的来实现编译,编译后在输出窗口中会输出对应的信息(编译是否通过等)(8)、调试、观察结果。点击按钮,进入调试状态,这时点击或f11可实现“跟踪”,点击可实现“单步”调试,也可通
15、过debug菜单来实现相应的操作,然后可通过view和菜单等打开相应的观察窗口。在调试状态下,可通过点击,打开存储器窗口,观察对应存储单元的内容。如要要访问rom区0030h单元中的内容,可在存储器窗口的address处输入:c:0x0030后按回车键,其中c是存储区前缀,另d表示内部ram的直接寻址区;i表示内部ram的间接寻址区;x表示外部ram区;c表示rom区;b表示位寻址区。2分析下面的源程序,并指出各指令的结果,并在keil uvision3中进行调试、观察验证,保存文件为ex2_1.asm。org 0000hljmp mainorg 0030hmain: mov 30h,#2ah
16、mov 31h,#33hmov r0,#30hmov a,r0mov r2,aincr0mov 03h,r0sjmp $end3分析下面的源程序,并指出各指令的结果,并在keil uvision3中进行调试、观察验证,保存文件为ex2_2.asm。若要将movca,a+dptr指令改成movc a,a+pc指令,应如何实现?org 0000hljmp mainorg 0030hmain: mov a,#03hmov dptr,#tabmovc a,a+dptrmov r1,asjmp $tab: db 30h,31h,32h,33hdb42h,43h,44h,45hend4在keil uvis
17、ion3中进行调试、观察以下几条命令,保存文件为ex2_3.asm:mov r0,#12hmov a,#56hmovx r0,a5、按要求编写程序并上机调试、观察结果。 (1).r1的内容传送到r0.(2).片外ram 20h单元的内容送r0.(3).片外ram 20h单元的内容送片内ram 20h单元.(4).片外ram 1000h单元的内容送片内ram 20h单元.(5).rom 2000h单元的内容送r0.(6). rom 2000h单元的内容送片内ram 20h单元.(7). rom 2000h单元的内容送片外ram 20h单元.实验三.基本输入输出的proteus仿真实验一、实验要求
18、: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、进一步熟悉proteus、keil uvision3软件的使用方法和系统仿真设计的方法。2、掌握发光二极管的控制方法,掌握led数码管的显示原理与控制方法。3、掌握i/o口的控制方法4、熟悉单片机仿真设计的一般过程。六、实验内容:1、开关控制led实验(1)、实验要求实验原理图如图3-1所示,要求在proteus仿真平台中,编程实现:led发光二极管的初始状态为亮,按一下接键,led灭,再按一下,led亮,按此规律led亮灭交替。图3-1开关控制led实
19、验原理图(2)、实验步骤(a)、在proteus平台中画出电原理图 (b)、在keil uvision3软件平台中进行编程、编译,生成目标文件(.hex文件) (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,直到成功。2、开关控制1位数码管实验(1)、实验要求实验原理图如图3-2所示,要求在proteus仿真平台中,编程实现:将4位开关状态输出到数码管显示。如4位开关全闭合,数码管显示“0”,4位开关全断开,数码管显示“f”,共16种状态。注意:图4-2中数码管(proteus仿真平台中元器件型号为7seg-com-an-grn)
20、是带公共端的共阳七段绿色数码管。(2)、实验步骤(a)、在proteus平台中画出电原理图 (b)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件) (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,直到成功。图3-2 开关控制1位数码管实验电原理图实验四.计数显示综合实验一、实验要求: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、进一步熟悉利用proteus、keil uvision3等软件进行单片机系统仿真
21、设计的方法。2、熟练应用c51单片机程序设计的基本知识和基本思想,解决单片机的实际应用问题。3、掌握多位数码管动态扫描的显示原理。六、实验内容:1、实验要求实验原理图如图4-1所示(注图中4位数码管为共阴极数码管,型号为7seg-mpx4-cc-blue),要求在proteus仿真平台中,编程逐步实现:(1)、按下一次“加一”按钮,数码管能显示出加一后的结果,但加到10000时能自动从0开始“加一”。(2)、完成(1)的要求,同时能实现按一次“减一”按钮,数码管能显示出减一后的结果,但减到0后,仍显示为0。图4-1 计数显示实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图 (
22、2)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,逐步实现实验要求(1)和(2)。若达不到要求,则要修改程序,反复调试,直到成功。3、针对在实验中存在的显示范围、显示闪烁、显示实时性不好等问题,应分别如何改进、克服?七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验五.外部中断实验一、实验要求: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、进一步熟悉利用proteus
23、、keil uvision3等软件的使用方法。2、理解单片机的中断、中断优先级原理及其中断过程,掌握中断服务子程序的编写方法。3、进一步熟悉数码管的显示原理。六、实验内容:1、外部中断实验(1)、实验要求实验原理图如图5-1所示,图中数码管为共阳极,元器件型号为7seg-com-an-blue;数码管驱动应加上拉电阻如rp1。要求:当无外部中断(外部中断0)时,数码管按ag段依次点亮,不断循环显示;当有外部中断(按钮被按下,p3.2有下降沿电压)时,数码管显示状态改为“8”亮灭闪烁显示,亮灭闪烁显示8次后,返回主程序继续按段顺序点亮。图5-1外部中断电原理图(2)、实验步骤(a)、在prote
24、us平台中画出电原理图 (b)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件) (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,直到成功。2、中断优先级实验(1)、实验要求实验原理图如图5-2所示,图中三个数码管为共阳极,元器件型号为7seg-com-an-blue(grn/anode);数码管驱动应分别加上拉电阻。要求:单片机主程序控制p0口数码管(红色)循环显示18;外部中断0(int0)控制p2口数码管(蓝色)显示,中断一次将依次显示18这8个数据后返回;外部中断1(int1)控制p1口数码管(绿色)显
25、示,中断一次将依次显示18这8个数据后返回;int1为高优先级,int0为低优先级,外部中断均为下降沿触发方式。图5-2 中断优先级实验电原理图(2)、实验步骤(a)、在proteus平台中画出电原理图 (b)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件) (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,直到成功。 该仿真实验可以形象直观地演示单片机高、低两级优先级的工作原理:高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级,同一优先级不能相互中断。七、写出实验小结,内容包括实验心得(
26、收获)、不足之处和今后应注意的问题。实验六.单片机定时/计数实验一、实验要求: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、理解单片机的定时/计数原理,掌握定时/计数程序的编写方法。2、掌握定时/计数器在定时、计数、频率测量、脉冲宽度测量、产生信号、信号检测方面的应用。3、学会使用proteus中vsm虚拟示波器观察波形。六、实验内容:1、方波发生器实验(1)、实验要求 实验电原理图如图6-1所示,用单片机的定时/计数器产生一个周期为400s的方波信号。图6-1 方波发生器实验电原理图(2)、实验步骤
27、(a)、在proteus平台中画出电原理图。虚拟检测仪器的放置: 1)、vsm虚拟示波器 单击小工具栏中的按钮(虚拟仪器),在对象选择器列表中单击oscilloscope(示波器),再在isis编辑区中的适当位置单击,虚拟示波器主放置好了。如图6-1所示,最后将单片机的p3.5、p3.7分别与示波器的a、b信道相连。 2)、电压探针 选择电压探针,连接到要实时监测的电路上,以便仿真时观察该处的电压变化。 (b)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件)。 (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,
28、直到成功。 在仿真调试中若看不到虚拟示波器,则要分别单击“调试”-“vsm oscilloscope”将其打开,如图6-2所示,虚拟示波器有两个输入信道ch1和ch2,对应虚拟示波器符号图上的a和b;工作模式有三种:单通道、双通道和x-y。1)、单通道:ch1或ch2。此时dual和x-y灯均一亮,ch1、ch2哪个指示灯亮表示哪个通道工作。2)、双通道:dual灯亮、ch1或ch2灯亮。dual+ch1表示以ch1为触发;dual+ch12表示以ch2为触发。3)、x-y:(x-y)+ch1或(x-y)+ch2,表示以ch1或ch2的数据作为x轴及y轴的数据显示曲线。虚拟示波器的基本操作1)
29、、选择信道输入耦合模式:单击相应的ch1、ch2(左下角)的方波按钮,可在dc、gnd、ac各选项间循环切换。如图6-2所示,当前信道ch1、ch2都是直流耦合,相应的dc字符上方的指示灯都亮。2)、工作信道和触发信道选择:选择单击右上方两个方形按钮配合其右方指示灯ch1、ch2、dual、x-y完成。3)、选择和调整波形显示位置、时基(timebase)、幅值:可分别转动转盘旋钮y-pos1、y-pos2、y-gain1、y-gain2、timebase来完成。4)、用鼠标拖动,转动转盘旋钮完成设置。图6-2 方波发生器仿真运行图2、脉冲计数器实验(1)、实验要求 实验电原理图如图6-3所示
30、,实现在1s的时间内对外部输入的脉冲信号(从p3.4输入)计数,并将计数值实时地在四位bcd码数码管上显示。at89c51中有两个定时/计数器,其中定时/计数器1(t1)作定时器用,定时1s;定时/计数器0(t0)作计数器用;外部输入的脉冲信号由模拟数字时钟dclock产生;用虚拟的计数器counter timer进行计数;将单片机的计数结果和counter timer的计数结果进行比较,看结果是否相等。(2)、实验步骤(a)、在proteus平台中画出电原理图。1)、总线的画法 选择总线按钮 绘绘制总线:与普通电线的绘制方法一样,选择合适起点、终点单击。若终点在空白处,左双击结束连线。起点、
31、终点可以是总线引脚、己有的总线或是空白处。 电线与总线连接:把总线当做电线连接的一个终端,照常规连线即可。 电线标注:单击标签(label)按钮,单再需要标注的电线,在弹出线标签编辑框中的string一栏中输入标签名。2)、数码管由4个的带段译码器的数码管(型号为:7seg-bcd-grn)组成。从正面看带段译码器的数码管带段译码器的数码管时(管脚向下),从左到右各引脚的权码分别为8、4、2、1,即若输入1110时该数码管将显示“e”。3)、数字时钟dclock单击小工具栏中的按钮,在对象选择器中选择dclock(数字时钟),在需要添加信号的线或终端单击即可完成添加dclock输入信号,双击己
32、添加的图标,设置其时钟频率为50khz,如图6-4(a)所示。4)、vsm虚拟计数/计时器单击小工具栏中的按钮(虚拟仪器),在对象选择器列表中单击counter timer(计数/计时器),双击己添加的图标打开其属性编辑框,单击运行模式(operating mode)的下拉菜单,可选择计时、频率、计数模式,当前设置为频率工作方式,如图6-4(b)所示。(b)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件)。 (c)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试。若达不到要求,则要修改程序,反复调试,直到成功。 由于输入的频率是50khz,所以频率计上显
33、示的是50000如图6-3所示。同时数码管输出的计数值为c358h,也就是(th0)=0xc3,(tl0)=0x58,即为50000的十六进制数(百分误差,小于1/1000)。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。图6-3 脉冲计数器电原理图图6-4(a) 数字时钟设置图6-4(b) 计数/计时器设置实验七.串行通信-双机通信仿真实验一、实验要求: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、掌握单片机串行口方式2或3工作方式及编程方法。2、熟悉简单通信协议的规划。3
34、、进一步熟悉利用proteus、keil uvision3等软件进行单片机系统仿真设计的方法。六、实验内容:1、实验要求如图7-1所示,要求甲机(上方的单片机)4个按键的所代表的数据能传送到乙机(下方的单片机)并在乙机的数码管上显示,同时乙机4个按键所代表的数据能传送到甲机并在甲机的数码管上显示。图7-1 双机通信实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图。 (2)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件)。 (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,逐步实现实验要求(1)和(2)。若达不到要求,则要
35、修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。2、实验步骤(1)、在proteus平台中画出电原理图。 (2)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验八.键盘输入液晶显示实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3
36、等软件五、实验目的:1、理解、掌握lcd1602的显示原理及编程实现方法。2、掌握44键盘键盘工作原理及编程实现方法。3、熟悉多模块单片机综合运用系统的c51编程实现方法。六、实验内容:1、实验要求 电原理图如下图所示,lcd由1602及其相关电路组成,44键盘由16个开关及其相关电路组成,要求编程实现:每按下一按钮,lcd显示出对应的按键序号。图8-1 键盘输入液晶显示实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图。 (2)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达
37、不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。参考程序:31#include#includeunsigned char a,b,c,d,temp;bit flag=0;unsigned char code dis1=order is: ;unsigned char code dis21710=order1,order2,order3,order4,order5,order6,order7,order8,order9,order10,order11,order12,order13,order14,order15,order16
38、,no run;sbit rs=p10;sbit rw=p11;sbit ep=p12;bit lcd_bz() bit result; rs=0; rw=1; ep=1; _nop_(); _nop_(); _nop_(); _nop_(); result=(bit)(p0&0x80); ep=0; return(result);void lcd_wcmd(unsigned char cmd) while(lcd_bz(); rs=0; rw=0; ep=0; _nop_(); _nop_(); p0=cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep=1
39、; _nop_(); _nop_(); _nop_(); _nop_(); ep=0;void lcd_pos(unsigned char pos) lcd_wcmd(pos |0x80);void lcd_wdat(unsigned char dat) while(lcd_bz(); rs=1; rw=0; ep=0; p0=dat; _nop_(); _nop_(); _nop_(); _nop_(); ep=1; _nop_(); _nop_(); _nop_(); _nop_(); ep=0; void delay(unsigned char n) unsigned char i,j;
40、 for(i=0;in;i+) for(j=0;j7 ; x=x1; x=x|k ; return(x);void ks() p2=a; a=p2; a=(a)&0xf0;char key() a=0xf0; ks(); if(a) delay(10); a=0xf0; ks(); if(a) c=0xfe; b=0; while(c!=0xef) a=c; ks(); if(!a) b+; c=rl1(c); else a=a+b; break; flag=1; return(a); void bj() switch (a) case 0x10:temp=0;flag=1;break; ca
41、se 0x20:temp=1;flag=1;break; case 0x40:temp=2;flag=1;break; case 0x80:temp=3;flag=1;break; case 0x11:temp=4;flag=1;break; case 0x21:temp=5;flag=1;break; case 0x41:temp=6;flag=1;break; case 0x81:temp=7;flag=1;break; case 0x12:temp=8;flag=1;break; case 0x22:temp=9;flag=1;break; case 0x42:temp=10;flag=
42、1;break; case 0x82:temp=11;flag=1;break; case 0x13:temp=12;flag=1;break; case 0x23:temp=13;flag=1;break; case 0x43:temp=14;flag=1;break; case 0x83:temp=15;flag=1;break; default : if(flag=0) temp=16; else temp=temp;break; main() flag=0; while(1) d=a; a=key(); bj(); lcd_init(); display(); 实验九.基于单片机的按键
43、发声实验一、实验要求: 必做二、实验类型: 设计三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、理解发声原理。2、掌握单片机控制发声的方法。3、进一步熟悉利用proteus、keil uvision3等软件进行单片机系统仿真设计的方法。六、实验内容:1、实验要求 如图9-1所示,用at89c51单片机控制3个按键分别发出do、re、mi 3种声音。图9-1 按键发声实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图,其中发声器(喇叭)的型号为:speaker。 (2)、在wave6000平台中进行编程、编译,生成
44、目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验十.串行通信-串并转换仿真实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、掌握单片机串行口方式0工作方式及编程方法。2、掌握利用串行口扩展i/o口的方法。3、进一步熟悉利用proteus、wave6000等软件进行单片机系统仿真设计的方法。六、实验内容:1、实验要求
45、如图10-1所示,要求每隔1秒在数码管上依次显示“0”“9”这10个数字,且一直循环显示。图10-1 串并转换实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图,其中串并转换元器件的型号为:74ls164。 (2)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验十一.串行通信-多机通信仿真实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点
46、与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、掌握单片机串行口方式3工作方式及编程方法。2、熟悉数据的传送格式、通信协议的规划与制定。3、进一步熟悉利用proteus、keil uvision3等软件进行单片机系统仿真设计的方法。六、实验内容:1、实验要求图11-1 点对多点多机通信实验电原理图如图11-1所示,要求主机(最上方的单片机)以轮询的方式依次和从机1(中间的单片机)、从机2(最下方的单片机)通信,即主机和两个从机组成主从的通信方式,从机1上4个按键所代表的数据能在主机4位数码管的前两位实时显示出来,从机2上4个按键所代表的数据也能在主机4位数
47、码管的后两位实时显示出来。2、实验步骤(1)、在proteus平台中画出电原理图。 (2)、在wave6000平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验十二.双机并行通信仿真实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、掌握利用并行口传输数据的方法。2、掌握数据的传送格式、联络信
48、号的的规划与通信协议的制定。3、进一步熟悉利用proteus、keil uvision3等软件进行单片机系统仿真设计的方法。六、实验内容:1、实验要求如图12-1所示,要求主机(最上方的单片机)以轮询的方式依次和从机1(中间的单片机)、从机2(最下方的单片机)通信,即主机和两个从机组成主从的通信方式,从机1上4个按键所代表的数据能在主机4位数码管的前两位实时显示出来,从机2上4个按键所代表的数据也能在主机4位数码管的后两位实时显示出来。图12-1 双机并行通信实验电原理图2、实验步骤(1)、在proteus平台中画出电原理图。 (2)、在keil uvision3平台中进行编程、编译,生成目标文件(.hex文件) (3)、在proteus平台中加载目标文件(.hex文件)并进行仿真调试,若达不到要求,则要修改程序,反复调试,直到成功。七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。实验十三.串行并行通信仿真实验一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点与环境:机房,proteus7.4、keil uvision3等软件五、实验目的:1、掌握利用串行口、并行口传输数据的方法。2、掌握数据的传送格式、联络信号的的规划与中规模通信协议的制定。3、理解、掌握通信检错、纠错的方法。4、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家用陶瓷转让协议书
- 转让承包鱼塘协议书
- 乡村购房协议书范本
- 执业药师解聘协议书
- 正畸患者退费协议书
- 老人同居协议书范文
- 强制土地回收协议书
- 征收土地协议书撤销
- 外汇置换协议书范本
- 开办民营医院协议书
- 第四章铅酸蓄电池
- GA 1517-2018金银珠宝营业场所安全防范要求
- 项目质量管理机构结构框图
- 保险公司首转对团队的意义方法课件
- TAVI(经皮导管主动脉瓣植入术)术后护理
- 6.3.1 平面向量基本定理 课件(共15张PPT)
- 建筑消防设施巡查记录
- 混凝土护栏检查记录表
- DBJ04∕T 258-2016 建筑地基基础勘察设计规范
- 社会团体民办非清算审计报告模板
- 建筑工程质量检测收费项目及标准表67262
评论
0/150
提交评论