Keil仿真技术在单片机实训教学中的应用

2018年3月浙江国际海运职业技术学院学报Mar.2018
第 14 卷第 1期 JOURNAL OFZHEJIANG INTERNATIONAL MARITIME COLLEGE V〇1.14 No.l Keil仿真技术在单片机实训教学中的应用
徐鹏
(浙江国际海运职业技术学院,浙江舟山316021)
摘要:针对在单片机实训教学过程中硬件资源的不足,提出了用软件仿真的方式代替部分实验环节的方 法。采用Keil自带的仿真功能,在虚拟环境中实现对单片机程序的调试,具体对单片机I/O 口、相关变量和程序 的仿真,并采用实际开发工具进行验证。结果表明,Keil自带的仿真功能可以实现大多数单片机实验板的硬件 仿真实验,硬件要求降低。
关键词:单片机;调试;Keil;仿真
中图分类号:TP391.9 文献标志码:A
Application of Keil Simulation Technology in Teaching of MCU
Xu Peng
(Zhejiang International Maritime College,Zhoushan316021, China)
Abstract:In view of the shortage of hardware resources in the process of training and teaching of MCU,a method of replacing part of the experiment with software simulation is proposed.In the virtual environment Keil comes with its own simulation capabilities.It can achieve the debugging of the microcontroller program simulation, such as specific microcontroller I/O port,related variables and programs simulation,which can be verified by the actual development tools.The experimental results show that the simulation function of Keil can realize the hardware simulation of most MCU experimental boards,greatly reduce the hardware requirements.
Key words:Microcontroller;debugging;Keil;simulation
〇引言
物联网的迅速发展改变着社会的生活方式,采用 的核心器件为微控制器,具有体积小、实施控制能力强 的特点,最为常见的为51类型单片机,目前已成为电 子信息行业进行数据采集、处理、通信和控制的重要器 件。单片机课程作为电子、电气等大类专业综合性基 础课程,实践环节较多,经过几轮课程改革已实现从理 论教学到理实一体化的转变,但是在实际教学工程中发现两个主要问题:(1)教学任务内的实验课时数往往 不能满足学生的实际需求,同时在课后学习没有单片 机学习板,看不到实
验效果,降低学生学习积极性;(2) 实训室里单片机学习板质量的参差不齐造成学生在 选择板子的过程中浪费较多的时间和精力。
为了有效解决上述问题,采用部分实验软件仿真 的教学模式,这种虚拟实训环境增强了实践教学的便 利性,同时省去了大量的单片机学习板的维护工作,
作者简介:徐鹏(1988-),男,浙江舟山人,助教,硕士。
也保证学生在课外学习资源多样性,开阔学生的课外 学习活动空间[1]。1
开发工具软件介绍
Select Device for Target "T
Keil 软件是目前最流行的51单片机开发工具之
一,操作界面简洁,同时提供丰富的库函数和功能强
大的集成开发调试工具p ]。程序在Keil 界面进行编 写,调试无误后进行编译,在零错误零警告的情况下 创建生成HEX 文件,再通过STC -ISP 软件将HEX 文 件烧录到单片机中[3]。
在单片机实训教学过 程中米用最新的
Keil
MDK 5,较之前版本区别大,由 MDK  Core  和 Software Packs 两部分组成,根据需
lrx要更新设备支持包和中间件 更新包,也可以进行单独管 理,如图1左侧矩形框所示,根据需要下载ARM 系列和
STM 系列的软件支持包。图1软件安装包选择界面
由于Keil 常用作程序编写工具,忽略其自带的 调试仿真功能会造成资源浪费,因此可采用Keil 软
件仿真的功能,解决在单片机实训教学过程中硬件设 备的不足。2
实例分析件仿真效果一致。
图3
LED 点売界面
2.2变量值仿真
在单片机程序调试过程中,需要知道某些变量值
的具体变化,这也是目前硬件仿真不容易做到,但可 以通过Keil 软件自带的watch 窗口观察变量的值,程 序如下:
#include <reg 52.h >
sbit  ADDRO  = P 1"0;
sbit  ADDR 1 =P in ; sbit  ADDR 2 = P 1^2; sbit  ADDR 3 = P 1^3; sbit  ENLED  = P 1^4; void  LedFlash 〇;
void  Delay(unsigned  int  ms ); unsigned  int  j ,k ; void  main 〇
{
ADDR 3 =1;
2.1 I /O 端口仿真
单片机的本 质是对I /O 端口 的控制,如对P 2 口的8位进行控 制,实现P 2 =
0X 2A 控制功能, 即第1、3、5位为高电平,因为电
图2
I/O  口调试界面
位高低概念抽象,无法用肉眼观察,需要一些特征量 表示。首先进行Keil 的仿真,在编写完程序通过编译 后点击菜单栏中的Debug ,选择Start /Stop 选项,进人 仿真界面,选择Peripherals 中的P 2 口,如图2所亦, 带“V ”表示输出高电平。
完成软件仿真后采用单片机实验板进行验证,实 验现象如图3粗黑框所示,在图底部从右到左分别为 第0位至第7位,其中第0、2、4、6、7位
LED 灯亮,这
是由于在单片机学习板内部硬件结构中,LED 正极 接+5V ,负极接I /O 引脚,因此高电平使LED 灭,低电 平使LED 亮,逻辑关系正好相反,从而说明跟Keil 软
ADDR 2 =1; ADDR 1 =1; ADDR 0 =0; ENLED  = 0; while (l )
{
LedFlash 〇;
Delay (lOOO );
void  LedFlash ()
{
static  unsigned  char  i =0;
P 2 =-(0x 01«i ); i ++; if (i >=8)橡皮弹
{
i
=0;
void  Delay(unsigned  int  ms )
{
for (j =ms ;j <=ms ;j ++)
for (k =0;k <=113;k ++);
}
程序实现的是流水灯功能,LED 的亮灭与变量i 相关,因此需要观察变量i 的变化,如图4中右下角 矩形框所东,变量i 的值为4,相应的“Parallel  Port  2”
图4变量i 调试界面
图6
P 2 口逻辑分析图(_
)
Logic Anc
| |
Min Time Max O s
| 152.4Time Grid Zoom Min/Max Update Screei
< |079s | 2s
I  In llOutll Al I | Auto 11 Undo | | Stop || Gear
p o rt 2p o rt 2mL L
J
1
U
p o rt 2L
阳光天井
E
n
1
p o rt 2J
u
p o rt 2L
E
L
p o rt 2J
□J
p o rt 2
L
u
p o rt 2
J 〇J
u
1.085142 s
17.065142 s|
2.3 Delay 函数仿真
在调试过程中,除了单步调试外,还 常常对特定语句进 行调试,常结合Keil 软件的断点功能,如 图5中第24行左边 红点所示,点击仿真
软件中的快速执行部分,程序就会运行到第23行,再 点击单步运行就会运行第24行,该功能在实际调试 过程中非常实用。
结合断点功能进行Delay 函数的延时测试,这是 因为在几乎所有程序中都会采用Delay 函数进行,由 于采用for 语句,具体的延时时间并不能通过计算准 确算出,但可以通过Keil 软件的仿真功能可以准确 测出for 语句延时时间,根据上述程序再结合Keil 软 件中的逻辑分析仪功能,可以清楚地看到P 2每个位 的具体变化。在图6中可以看到,在“Min /Max ”处显示 11111110,即 P 2=0XFE ,显示的时间为 7.065142s ,再 将红竖直线放置如图7中,在“Max /Time ”处显示 11111101,表示正好经过一个周期,显示的时间为 15.06514s ,则一位变化的时间为(15.06514 - 7.065142)/8=0.99999975s ,接近 Is 。
图7
P 2 口逻辑分析图(二)
在完成
Keil 仿
真后,采用型号为
LA 1010的逻辑分析
仪进行实验。逻辑分 析仪是一种新型测 量工具,常用来测量 数字量变化,与示 波器相比,各有优
缺点,而在通信方面的分析中,逻辑分析仪比示波器 功能更为强大,本实验采用逻辑分析仪对P 2 口进行 信号抓取,单片机与逻辑分析仪的连接如图8所示。
在完成硬件连接后,打开已安装的配套软件,点 击界面中的启动,得到如图9中的界面,容易观察到 与图6的仿真界面相似。
图9逻辑分析仪波形分析图
16
ADDR2 =1;17ADDR1 =1;18ADDR0 =0;19
ENLED = 0;20
21
22
2324 251 26}
while (1)
};
LedFlashO ;
Delay(1000);
图5断点调试界面
图8
逻辑分析仪与单片机连接图
采用逻辑分析仪自带的功能对电平测量分析,以P2.1为例,如图10竖线所示,测得P2.1在某一时段 低电平持续的时间,在软件的右侧可得间隔时间IT1-
T2I为0.9993324,如图11所示。结合以上分析可得 Keil仿真误差为0.67%,从而说明Keil软件仿真具有 一■定的实践指导意义。
▼腿■5T
周期:###
占空比:###
麵:###
11:-480.0ns
12:999.3319436m s
fTl-T2|:999.3324236m s
图10低电平测量图 图11低电平持续时间图
2.4程序逻辑调试
在单片机学习过程中,除了硬件知识外,大部分 是进行软件部分的调试。程序的执行并不是从上往 下执行,具有一定的逻辑性。上述程序代码量虽少,但是框架完整。通过单步调试可以进一步理解程序 执行过程,如图12所示,当程序执行到24行之前,按 下单步调试,程序自动到Delay函数,并执行函数 里面的for语言,如图13所示。
19ENLED = 0;
20
21while (1)
22{鸟笼灯
_23 LedFlashO;
K>241Delav(lOOO);
25 };
26}
97
图12延时函数调试
相册加工设备3结论
37)
38 void Delay (unsigned int ms)
39
40 {
41|
42
人流量统计43}
44
45
for(j=ms;j<=nis;j++)
for(k=0;k<=113;k++);
图13延时函数内部语句
通过对单片机I/O 口的软件仿真和硬件验证,表 明Keil自带的仿真功能可以部分代替硬件实验;通 过对Delay函数软件仿真和硬件测试,得到1S时间 的误差为0.67%;通过仿真软件对程序的单步调试,可以帮助学生更好地理解程序执行过程。
Keil仿真技术克服了硬件平台的短板,弥补单片 机学习板不足的缺点,有助于学生加深对理论知识的 理解,从而提高了单片机实训课的教学效果。
参考文献:
[1] 伍冯洁,谢陈跃,谢斌.Proteus与Keil在单片机
开放性实验中的应用[J].电子测量技术,2008, 31,
(6):100-107,
[2] 姚雪梅,陈永前.Proteus和Keil模拟交通灯的实践
教学[J].实验室研究与探索,2016, 35(11):107-136.
[3] 刘德全.智能交通信号机系统电路设计与仿真[J].
实验技术与管理,
2014(10):107-111.

本文发布于:2024-09-23 11:14:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/272040.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:单片机   调试   软件   学习
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议