单片机与可编程控制应用技术.docx
- 文档编号:17942008
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:76
- 大小:1.08MB
单片机与可编程控制应用技术.docx
《单片机与可编程控制应用技术.docx》由会员分享,可在线阅读,更多相关《单片机与可编程控制应用技术.docx(76页珍藏版)》请在冰点文库上搜索。
单片机与可编程控制应用技术
自动化技术类专业实训教材系列
《单片机与可编程控制应用技术》
实验实训讲义
赵永君王晖
班级
姓名
学号
济南铁道职业技术学院
目 录
第一篇单片机实验部分
实验一仿真软件的使用及数据传送指令…………………3
实验二算术运算指令………………………………………12
实验三控制转移和位操作指令……………………………15
实验四汇编语言程序设计
(一)…………………………16
实验五汇编语言程序设计
(二)…………………………18
第二篇单片机实训部分
实训项目一仿真器的认识与基本逻辑输出接口…………19
实训项目二基本逻辑输入接口---键盘接口………………22
实训项目三数码管显示器接口技术………………………25
实训项目四交通灯模拟实训………………………………28
实训项目五中断与定时程序………………………………31
实训项目六基本I/O扩展技术……………………………32
实训项目七8255I/O扩展电路…………………………33
实训项目八蜂鸣器驱动实验………………………………34
第三篇可编程控制器实验部分
第一章实验装置概述………………………………………………36
第二章FXGPWIN编程软件使用说明………………………………38
第三章实验实训内容
实验一PLC认识性实验……………………………………………49
实验二PLC定时器和计数器的使用………………………………51
实验三基本指令实验……………………………………………53
实验四步进顺控指令……………………………………………57
实验五电机控制……………………………………………60
实验六PLC功能指令的使用………………………………………63
第四篇可编程控制器实训部分
实训一天塔之光/数字显示…………………………………………65
实训二交通信号灯的自动与手动控制……………………………67
实训三多种液体混合装置…………………………………………69
实训四邮件分检机…………………………………………71
实训五3层3站简易电梯的控制……………………………………74
第一篇单片机实验部分
实验一仿真软件的使用及数据传送指令
实验目的:
1、熟悉仿真软件CodeCruiserfor51中文版的使用方法。
2、验证数据传送指令的操作。
预习内容:
数据传送指令
实验指导:
一、认识了解仿真软件:
1、进入仿真程序
启动电脑,点击开始—程序—找到仿真软件CodeCruiserfor51中文版,点击软件仿真进入软件仿真程序,如下图所示:
就会进入如下的窗口:
在初始页面上点取消进入软件仿真的主页面:
2、新建一个项目
在如上所示的窗口处点击项目菜单/新建,新建一个项目,项目的默认扩展名是.mpj,不需要作任何更改。
如果已经建立了项目,则采用项目菜单的打开命令,
新建一个项目以后会弹出一个新的窗口,如图
不需要加任何改变,直接点确认。
3、编辑源文件
按照如下所示,点文件菜单,点击新建命令,建立新的源文件
在弹出的编辑窗口中输入程序如下所示
输入程序时,所有标点符号,均应该在英文状态下输入。
在程序输入完毕以后,点击存盘图标或者文件菜单的保存命令。
特别注意:
在输入保存文件名的时候一定要输入扩展名即:
.asm
4、将源文件添加到项目中:
从项目菜单中选择添加源文件命令,从弹出的‘将源文件添加到项目中对话框’中选择刚刚保存过的的源文件然后单击打开按钮。
注意在找到源文件时候要事先确定文件类型,即将文件类型改变为.asm
5、项目的编译与下载
从项目菜单选择编译命令编译所在的项目,其结果显示在如下的输出窗口的编译面板中,如果编译过程出现了错误,将会以红色行表示出错的详细信息。
双击该行可以在源文件中快速定位。
以便于修改源程序。
每次程序修改后,都必须编译,然后点击重新下载快捷按钮,或者用项目菜单下的重新下载命令。
6、准备仿真运行程序
将程序跳转至当前需要运行的指令所在地:
在源程序窗口,将光标放至需要运行的程序处,点击鼠标右键,选择跳转至光标处,在程序首行,会出现程序指针,状态栏显示程序指针内容PC=XXXX,如下图:
7、查看汇编窗口
从查看菜单选择查看汇编窗口,就可以查看该程序的汇编结果,也就是可以看到汇编语言源程序和机器代码,以及机器代码所在地址。
如下图:
8、单步执行
通过工具条中的步入按钮,或者调试命令中的步入命令,单步执行程序,每按一下单步执行,执行一条指令,程序指针下移一行,PC值不断增加。
9、观察执行结果
程序执行为改变相关寄存器的结果,可以用查看菜单中的调试窗口观察相关存储器寄存器的状态,验证程序执行过程中的变化和执行结果。
如下图所示:
常见的是存储器窗口,用来观察内部RAM、外部RAM、和程序存储器ROM,还有寄存器窗窗口,用来观察特殊功能寄存器的状态。
10、窗口的平铺和层叠
在打开多个窗口时,如想同时观察多个窗口的信息,可以采用窗口菜单中的平铺窗口和层叠窗口命令,排列窗口。
11、传送指令验证试验
a)利用刚才学习的内容新建一个项目,输入以下源程序进行调试,观察程序执行过程中相关寄存器的变化。
MOV30H,#38H(30H)=
MOV38H,#40H(38H)=
MOV40H,#48H(40H)=
MOV48H,#90H(48H)=
MOVA,40H(A)=
MOVR0,A(R0)=
MOVP1,#0F0H(P1)=
MOV@R0,30H(R0)=(48H)=
MOVDPTR,#3848H(DPH)=(DPL)=
MOV40H,38H(40H)=
MOVR0,30H(R0)=
MOVP0,R0(P0)=
MOV18H,#30H(18H)=
MOVA,@R0(A)=
MOVP2,P1(P2)=
b)建立一个新的项目,编写程序,将外部RAM2000H单元内容传送一个数据#78H,并把这个数据传送到外部RAM3000H单元。
思考题:
1、寄存器寻址和寄存器间接寻址的区别是什么?
2、访问外部RAM应该采用什么寻址方式?
实验二算术传送指令
实验目的:
1、进一步了解仿真软件的使用方法
2、学习算术运算指令
预习复习内容:
1、复习实验一仿真软件的使用方法
2、复习算术运算指令相关知识
实验内容
一、仿真软件使用
1、将存储器、寄存器内容赋初值和改变寄存器内容。
在程序调试时,有时候需要给某些寄存器设置初始值,如将外部RAM2000H单元设为34H,将A的内容设为80H。
方法如下:
通过查看菜单打开寄存器窗口,将需要改变的专用寄存器后面的数值反亮,然后输入新的数值,点击窗口其他地方,寄存器内容得以改变。
如图所示:
SP内容被改变为47H,DPL内容被改变为44H。
通过查看菜单打开存储器窗口,选择片内数据存储器或者片外数据存储器,在旁边的地址栏输入要改变的单元地址值,点击GO,快速定位到对应的单元区域,将光标移到需要改变的单元前,输入新的数值,对应存储单元被改变为新的值。
如下图所示:
外部数据存储器2000、2001、2002单元内容分别被改变为33H,44H,55H。
2、调试方法:
全速运行到光标处
除了单步执行以外,如果在调试中,想从一个程序段的开始运行到最后,或者靠后一点的位置,观察最终运行结果,可以执行以下操作:
将光标移动到需要执行的程序段的首行,点鼠标右键,选择跳转到光标位置,将程序指针设置到程序段的首行,然后,把光标移动到需要连续执行到的位置,点鼠标右键,选择运行到光标处命令。
程序就可以从程序段的首行,连续执行到光标处。
如图所示:
二、算术运算指令
建立一个新的项目,并输入以下源程序,运行程序,并观察运行结果。
双字节加法程序:
被加数,存放在内部RAM20H、21H单元(低位在前),加数存放在内部RAM30H、31H单元(低位在前),得到的和存放在40、41、42单元(低位在前)。
ORG1000H
MOVA,20H
ADDA,30H
MOV40H,A
MOVA,21H
ADDCA31H
MOV41H,A
MOVA,#00H
ADDCA,#00H
MOV42H,A
END
利用上面的方法,将加数、被加数分别设置为8B39H、97EAH,并运行程序,求出运行结果。
(42H41H40H)=
思考题:
1、回答实验内容1中如下程序段的作用。
MOVA,#00H
ADDC A,#00H
MOV42H,A
2、编写一个三字节加法程序,加数在32H31H33H单元,被加数在42H41H40H单元,和放在53H52H51H50H单元。
3、编写一段双字节减法程序,求0D54CH—873AH,结果存放在30H,31H单元(低位在前)。
实验三:
控制转移和位操作指令
实验目的:
1、进一步熟悉软件使用方法
2、学习控制转移和位操作指令
实验内容:
一、建一个项目,编写程序,将内部RAM30H单元到3FH单元的数据传送到内部RAM40H-4FH单元。
编写好程序后将30-3FH单元设置一个任意的初始值,验证是否能完成传送功能。
二、新建一个项目,画出流程图,编写程序,将内部RAM30H单元开始存放20H个数据的内容传送至外部RAM4000FH单元开始的数据区。
编好程序后,在内部RAM设置一些数据,执行程序,验证程序结果。
三、建立新的项目,画出流程图,编写程序,判断内部RAM30H单元的有符号数是正数还是负数,如果是正数则将p1.0输出为1,如果是负数,则将P1.1输出1。
编写完毕后,在30H单元输入一个数据,执行程序,查看程序执行过程,体会有条件转移的功能。
思考题:
如果想把实验中的第三题判断逻辑改为根据30H单元的奇偶性判断,程序应该如何改动。
实验四汇编语言程序设计
(一)
实验目的:
练习常见的简单的分支、转移、循环程序结构的设计方法。
练习常见的程序调试方法。
练习伪指令的使用。
实验内容:
一、下载目标文件
在进行项目编译的时候会产生二进制代码的目标文件,如果已经建立项目,并编译通过,下次再启动的时候想继续调试,可以用下载目标文件的方法。
在启动的时候仿真软件会自动弹出下载文件窗口。
如果想新建项目,就取消,如果想继续进行已编译的项目的调试,就找到该项目的目标文件,然后确定。
还可以通过项目菜单的重新下载,进入下载窗口。
二、复位、仿真、设置断点、停止
1、复位:
功能是将PC回到0000H,程序回到程序存储器的初始位置。
点击调试工具条上复位按钮,完成复位。
2、仿真:
点击调试工具条的仿真按钮,进入全速执行状态,直到点击停止按钮,或者遇到断点。
3、设置断点:
如果在程序调试过程中想在某个地方停止,可以在该处设置断点。
这样,在全速调试的时候,就可以在断点处停止。
4、停止:
在仿真开始后,想终止仿真,可以点击调试工具条的停止按钮。
三、建立新项目,编写程序进行程序调试练习
训练项目一:
编写程序,查找内部RAM的20H-50H单元中是否有0AAH这个数,如果有,将51H单元置为01H,如果没有,将51H单元置为00H。
输入程序完毕后,在20H-50H单元输入随意数据,可以安排一个单元内容为0AAH,或者都不为0AAH,进行仿真,观察结果。
训练项目二:
在内部RAM30-5FH单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60H单元。
编写完程序以后,在这些单元输入一些数据,运行程序,观察实验结果。
思考题:
程序中用的伪指令在汇编窗口能不能找到相应的代码。
实验五:
汇编语言程序设计
(二)
实验目的:
学习汇编语言程序设计方法
熟悉程序调试技巧
预习内容:
伪指令
实验内容:
1、循环程序编写与调试
建立新项目,画出流程图,编写程序,查找内部RAM中的20H-50H单元中出现00H的次数,并将结果存入51H单元。
程序编写完毕后,在20H-50H随意输入一些数据,执行程序,观察程序执行过程和结果。
2、数值比较程序
比较两个ASCII码字符串的内容是否相等,字符串的长度存放于内部RAM41H单元,第一个字符串的首地址是42H,第二个字符串的首地址是52H。
如果两个字符串相等,则置内部RAM40H单元为00H,否则置内部RAM40单元为0FFH。
要求画出流程图,编写程序,进行调试。
程序编好后,在42H-4FH输入一组数据,在52H-5FH输入一组数据,分两组数据相同和不同两种情况分别调试,观察执行过程和结果。
注意41H单元内容应小于0DH。
第二篇单片机实训部分
实训项目一:
仿真器认识与基本逻辑输出接口技术
所需实验器材:
仿真器、主板、综合I/O训练板
实训内容:
一、仿真器的使用
在单片机的开发中,一般利用仿真器进行仿真运行,以检验程序的正确性,在程序调试正确以后,才将目标文件以二进制代码的形式写入程序存储器。
仿真器在仿真调试中的功能就是代替单片机运行程序。
本实验中使用的是MICETEK公司的高性能的EASYPACK仿真器。
在使用仿真器之前,请确保仿真器电源正确连接,仿真器与PC机的数据电缆连接真确。
启动仿真程序:
在开始/程序/CodeCruiserFor51系列中文版中点击CodeCruiserFor51,即进入仿真程序主界面。
其界面与实验部分的软件仿真是相同的,基本操作也是相同的。
将仿真器的仿真头插在实验电路主板上就可以进行仿真实验了。
二、实验电路
在单片机系统设计时,经常需要按照某一个控制逻辑,在某一个输出口上输出0或者1的开关量。
在实验中,采用一个发光二极管来演示输出状态,如下图所示。
图1
当左侧由单片机的输出的信号为1时,LED导通,发光,当由单片机输出的信号为0时,LED截止,不发光。
实验中要求利用单片机的P1口的8条口线控制8个LED,根据程序实现对每一个LED的点亮或熄灭控制。
实验电路如下:
*:
其中黑色粗线就是实验中用到的软连接线
三、练习内容:
1、建立新的项目,编写程序,将第1、3、5、7号LED灯点亮,将2、4、6、8号等熄灭。
2、修改程序,将将2、4、6、8号LED灯点亮,将第1、3、5、7号LED灯熄灭
3、将1、2两部分联合起来。
首先单号灯亮双号灯灭,延时一段时间以后单号灯灭双号灯亮,构成循环,连续执行上述状态。
观察实验效果,并写出调试好的程序。
4、建立新的项目、编写程序,使8个LED灯轮流依次点亮,其它灯熄灭,产生流水灯效果。
请写出程序清单。
5、建立新项目,编写程序,轮流依次点亮8个LED灯,等8个灯全亮以后,再依次将8个LED灯熄灭,并构成循环重复上面的过程,产生霓虹灯效果。
请写出程序清单。
实训项目二、基本逻辑输入接口----键盘接口
所需器材:
仿真器、试验主板、综合I/O板
实训内容:
一、键盘与开关电路
1、轻触无自锁按键与单片机的接口电路
如下图所示,按键经电阻与VCC相连,另一端接地,当有按键按下时,P1.X为低电平,否则为高电平。
试验板中一共设计了8个这样的按键。
2、双掷拨动开关与单片机的接口电路
如下图所示,中间是一双掷拨动开关,一端通过电阻和VCC相连,另一端接地,当开关打到下档,P1.X为低电平,当开关打到上面,P1.X为高电平。
二、开关控制LED灯实训
按照下面的电路图,连接好实验电路,用4个开关,控制4个LED灯,输入输出均通过P1口进行,P1.0-P1.3用于输入开关状态,P1.4-P1.7用于控制LED灯。
建立新项目,编写程序,仿真运行。
完成上述功能。
将程序清单写在下面:
三、按键控制LED灯训练1
要求:
用8个无自锁按键控制8个LED灯,当按键按下时,LED灯亮,按键释放时,LED灯熄灭。
按键状态,由P0口输入,LED控制信号由P1口输出。
连接电路,建立新项目,编写程序完成上述功能。
四、按键控制LED灯训练2(键盘扫描程序)
用8个无自锁按键控制8个LED灯,按键状态,由P0口输入,LED控制信号由P1口输出。
要求每发现一次确认的完整的按键操作,即:
按下-确认按下-按键释放以后,相对应的LED状态翻转一次,由亮变灭,或由灭变亮,连接电路,建立新项目,编写程序完成上述功能。
N
Y
N
Y
N
Y
实训项目三数码管显示器接口技术
所需器材:
仿真器主板数码管和交通灯试验板
实训内容:
一、数码管简介
数码管是单片机系统中最常见的显示装置,通常称为7段数码管,或则是8段数码管(带小数点),根据结构分为共阴极和共阳极两种,本实验中用到的是共阴极数码管。
原理图如图所示
对于共阴极数码管,管脚A~DP,出现高电平的1信号,相对应的码段发光,通过控制A-DP上的信号,控制不同的码段发光,显示不同的数字,如0-9,A-F。
这就是数码管显示的原理。
二、数码管及单片机的接口电路
数码管与单片机的接口连线图如下所示,共阴极代码,由P1口输出。
P1.X连接到数码管的A-DP,根据P1口输出的数值不同,可以在数码管上显示出不同的数字。
注意,P1口送出的一定是共阴极代码。
三、数码管显示驱动程序
训练项目一、建立新的项目,编写程序,在数码管上显示一个数字“5”。
训练项目二、在上面程序上加以修改,在数码管上显示一个闪烁的数字“5”
训练项目三、利用伪指令将共阴极代码编制成数据表,存放于程序存储器中。
建立新的项目编写程序,利用查表指令,在数码管上显示连续变化的0-9十个数字。
参考程序流程:
Y
N
实训项目四交通灯模拟实训
实验器材:
仿真器主板交通等模拟板综合逻辑板
实训内容:
一、模拟交通灯电路
图中利用12个LED来模拟路口交通灯信号。
东西两组,南北两组,同一个方向的两组,控制逻辑应该是相同的。
12个LED接成共阴极接法,在相应的控制线上施加一高电平,则相应的LED发光,实现交通控制。
二、交通控制逻辑
简单的交通信号灯控制逻辑共有四个状态如下:
1、南北绿灯通行,东西红灯禁止;
2、南北黄灯限制,东西红灯禁止;
3、南北红灯禁止,东西绿灯通行;
4、南北红灯禁止,东西黄灯限制;
三、连线表和控制字
按照控制要求补全下表,并求出四种状态对应的控制字:
南北方向
东西方向
控制字
口线
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
LED
红
黄
绿
红
黄
绿
状态一
0
0
1
1
0
状态二
状态三
状态四
按照上表的对应关系,连接好实验电路。
*注意:
由于仿真器驱动能力有限,绿色LED驱动电流比较大,可能会出现绿灯不亮的情况,可以在电路上作以下改进,由单片机P1.0、P1.3送出的绿灯信号,不直接送LED,而是经过一个与门,来提高驱动能力,与门的另一个输入端接高电平。
连线图如上所示。
四、编程调试
建立新的项目,编写程序,在交通灯模拟板上输出交通灯信号。
实训项目五:
中断与定时程序
实验器材:
仿真器主板综合I/O版
实训内容:
一、编写一定时程序,利用8051定时器,实现10S的定时,要求采用程序查询方式。
时间到后,经P1.0输出高电平,驱动发光二极管发光。
二、编写一定时程序,利用8051定时器,采用中断方式结合程序查询,实现一个长定时20S,20S后驱动发光二极管发光,程序应该如何编写。
写出程序清单,仿真运行。
三、写一计数程序,实现计数10个,要求采用中断方式。
计数到后经P1.1输出高电平,驱动发光二极管发光。
计数脉冲由按键产生。
画出连线图,写出程序,编程调试。
四、8051外部中断INT0接收外部中断信号,当有中断请求时,响应中断,在中断服务程序中将P1.2置1,驱动发光二极管发光。
外部中断信号由按键模拟,采用边沿触发。
画出连线图,连接电路,编程调试。
实训项目六:
基本I/O扩展电路
实验器材:
仿真器主板综合I/O版综合逻辑板
实训内容:
一、74LS273和74LS244扩展并行I/O电路,连接好线路,编写程序,利用244输入键盘状态,经273输出,达到一个按键控制一个LED灯的效果。
(电路参考教材P128)
二、利用串行口扩展并行口,利用74LS164扩展并行口,驱动数码管显示连续变化的0-9数字。
画出电路图,连接线路,编写程序,仿真运行。
电路图参考教材P156,P189。
实训项目七:
8255I/O扩展电路
实验器材:
仿真器主板综合I/O版8255板
实训内容
一、利用8255,扩展并行口,讲PA口设为输入口,PB口设为输出口,PA口采集开关的状态,经PB口输出,驱动LED发光,每一个开关驱动一个对应的LED。
画出电路图,连接线路,编写程序,仿真运行。
电路与程序清单:
(电路图参考教材P137)
二、如果上题中,开关换成无自锁按键,每一个按键控制一个LED发光,程序应该如何修改。
三、在上题中,讲LED灯换成LED数码管,连接线路,对应八个按键,在LED数码管上分别显示1-8数字上。
编写程序,仿真运行。
实训项目八蜂鸣器驱动训练
实训器材:
仿真器实验主板综合I/O板
实训目的:
掌握短鸣型蜂鸣器的与单片机系统的应用
实训内容:
蜂鸣器分为短鸣型和长鸣型两种,长鸣型蜂鸣器使用起来比较简单,只要加上5V电压便可实现蜂鸣,但是长鸣型蜂鸣器音调单一不可改变。
短鸣型蜂鸣器如果单一的加上+5V,是不产生蜂鸣信号的,只有给蜂鸣器加上脉冲信号,并且脉冲信号的频率和蜂鸣器的固有频率相近时,蜂鸣器才发出明显的声音信号。
在一定范围内改变蜂鸣器的控制脉冲频率,可以改变蜂鸣器的音调。
实验电路如下
连接好电路以后,利用定时器编写一方波发生器,在P1.X输出,方波频率可调。
参考程序:
org0000h
sjmp0030h
START:
MOVR7,#08H
T0INI:
MOVTMOD,#01H
MOVTH0,#00H,
MOVTL0,#00H
SETBTR0
JNBTF0,$
CLRTF0
DJNZR7T0INI
CPLP1.X
SJMPSTART
编好程序以后,编译运行,观察实验结果。
蜂鸣器是否出现响声。
如果蜂鸣器声音太小,或者没有声音。
可以调整R7的值,通过多次增加或者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 可编程 控制 应用技术