APP下载

基于《单片机控制及应用》课程理实一体化教学中易错易混操作的分析与研究

2020-01-16蒲灵巧徐华李殿钢

电子技术与软件工程 2019年22期
关键词:数码管易错端口

文/蒲灵巧 徐华 李殿钢

1 概念

1.1 Keil C介绍

本文以MCS-51 单片机为载体,选用Keil uVision4 软件作为编译器。采用51 系列兼容单片机C 语言软件开发系统,因其开发速度、数据处理、可移植性、等有明显的优势,因而易学易用。

1.2 Proteus仿真软件介绍

仿真:是利用计算机和相关软件对电子电路进行设计、分析、调试和测试等操作。在实际教学中,为了避免理论教学为主以及试验箱上的电路已经固定学生只能验证实验而缺乏自主设计的灵活性等枯燥的教学形式,我们选择Proteus 虚拟仿真软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

1.3 理实一体

理实一体化教学法:理实一体化教学法即理论实践一体化教学法。突破以往理论与实践相脱节的现象,它强调充分发挥教师的主导作用,通过设定教学任务和教学目标,让师生双方边教、边学、边做,全程构建素质和技能培养框架,丰富课堂教学和实践教学环节,提高教学质量。同时便于学生结合专业知识在轨道交通领域进一步发展打下良好基础。

2 软硬件设计中常出现的易错易混操作

图1:数字钟电路图

在教学实施环节中,主要通过精心设计的33 个项目把知识点模块化、重难点分散化,同时通过软件设计、硬件设计、软硬件联调仿真等手段让学生在学中做,在做中练,在练中消化知识以期能达到学习目的。现就教学中出现的易错易混操作总结如下:

2.1 Keil uVision4易错易混操作

(1)目标未创建;

(2)添加C 程序至源组报错;

(3)编译程序报错;

(4)可执行文件Hex 文件未生成;

(5)保存文件时C 程序覆盖项目文件。

2.2 Proteus仿真软件ISIS易错易混操作

(1)元件型号不匹配或参数设置不合理;

(2)终端模式与子电路模式混淆;

(3)未能成功加载hex 文件。

2.3 软硬件联调易错易混操作

(1)程序设计与硬件设计不匹配,尤其是单片机端口的选择不一致;

(2)仿真现象失真或错误;

(3)移动文件夹后再次仿真时HEX 文件路径报错。

3 软硬件设计中易错易混操作的分析及解决方案

3.1 KeiluVision4易错易混操作分析及解决方案

3.1.1 目标未创建

(1)不会或忘记创建newproject;针对这类错误只要注意KeiluVision4 的操作步骤即可。

(2)新建uVision 项目数与需完成的项目数量不匹配;这类错误主要发生在在规定时间内完成多个项目时,更改错误时只需做到一个项目匹配一个uuVision 项目即可。

(3)程序编译时有错误;这类错误只要针对提示错误信息以KeilC 编程规则逐一调试、更改即可。

3.1.2 添加C 程序至源组报错

(1)忘记添加C 程序;在操作时多加留意补添加C 程序即可。

(2)找不到C 程序;这类错误主要是因为txt 文件类型未更改而所致,在新建完项目文件后,进入到程序编辑窗格,“文件”菜单中的“新建”命令,默认文件类型是txt,须更改文件类型为“*.c”,这样才可能在“添加文件到组‘源组’‘”对话框中找到C 程序。

(3)多次添加C 程序出错;在“添加文件到组‘源组1’”对话框中一个工程项目只能添加一次C 程序,再次添加会提示“*.c 已经在‘源组1’中存在,文件无法添加到目标”,处理此类报错时只需关闭对话框即可。

3.1.3 编译程序报错

如果对C 语言掌握熟练程度不够,常常会出现一些低级错误。

(1)头文件出错,MCS-51 系列单片机的头文件只有两个“reg51.h”和“at89x51.h”;

(2)端口P 不大写,在软件设计时,务必记得将单片机的端口P 大写;

(3)函数名前后书写不一致,在编程时函数名在符合语法的前提下,尽量简单贴切需要实现的功能;

(4)变量的使用前后不一致;

(5)标点符号不当,很多时候忘记加“;”,同时对“=”和“==”作用分不清。

需要特别强调的是:keil c 特有的语法一定要强制性记忆牢固,注意与C 语言程序设计的区别,例如:keil c 不能识别中文字符,即使录入中文字符,程序员是不能看见的,但在编译时常常报“unprintable character”,这种情况只需添加注释符号才能看见。

3.1.4 可执行文件Hex 文件未生成,但hex 文件是链接软硬件的桥梁

(1)未勾选“产生HEX 文件(X)”复选框;解决此类问题的操作步骤如下:“为目标‘目标1’设置选项“对话框中——”输出“标签文——创建可执行文件——产生HEX 文件(X)复选框;

(2)只编译而没生成可执行文件hex。当程序编写完成时,容易忘记点击“编译文件并生成可执行文件”按钮,导致软件的准备工序并未完成。

(3)程序有错不能生成hex 文件。当我们编译C 程序时,必须将程序调试编译无误时才可产生可执行文件。

3.1.5 保存文件时C 程序覆盖项目文件

这种错误是因没有理解“项目文件”和“C源程序”的意义而导致的。

3.2 Proteus仿真软件ISIS易错易混操作

3.2.1 参数设置不合理或元件型号不匹配

(1)电阻参数设置不合理;电阻阻值默认10kΩ,但一般用220Ω、330Ω 较多,在使用时需根据项目设计的要求设置合适的参数;

(2)元件型号不匹配;例如:在采用数码管作显示设备时,应注意数码管的两种连接方式:共阴极和共阳极。软件设计采用共阴极时,硬件设计时应选用“7SEG——MPX1(““1”代表数码管的位数)——CC“,而电源应对应选择”“GROUND”;若在软件设计采用共阳极时,硬件设计时应选用“7SEG——MPX1(““1”代表数码管的位数)——CA“,而电源应对应选择”“POWER“;

3.2.2 终端模式选择失误

(1)电源选择失误;学生常把“终端模式”误用成“子电路模式”,可能因为两个靠的近,同时均有power 和ground,但符号不同。

(2)元件选择模式定向思维;在所做的项目中,我们常常用到“选择模式”、“元件模式”、“终端模式”等,但在电机调速控制章节学习时,大家继续惯性模式到元件库中去选取“OSCILLOSCOPE”、“countertimer”,可正确的是应选取新模式“虚拟仪器模式”。

3.2.3 未能成功加载hex 文件

(1)找不到hex 文件;第一种可能,未勾选“产生可执行文件hex”复选框;第二种可能,编译完成时未点击“创建hex 可执行文件”按钮;

图2:数字钟错误程序

图3:数字钟仿真效果图

(2)hex 文件位置乱放;需注意的是hex文件与项目文件的位置是一致的;

(3)不能多次加载hex 文件;在仿真时发现现象不对或不够完美时,需要再次编译程序生成hex 文件,可是再次加载时却告知“不能再次加载”检查电路设计是否合理,排查设备型号、设备参数等因素。

最后,在Proteus 仿真软件ISIS 操作中,还可能出现此类错误:

(1)电路设计时只把元件靠近其他设备但是不连线,导致最后看不见仿真现象;

(2)指法不对,导致关键词在拼写时总是出错。

3.3 软硬件联调易错易混操作

3.3.1 软件设计与硬件设计不匹配

(1)数码管的软硬件不匹配;

(2)P0 端口传输数据时,上拉电阻未添加;P0 端口在做数据传输端口时,它输入信号的强弱与其他端口差别不大,但作为输出端口时,信号非常微弱,必须添加上拉电阻使输出端为高电平。

(3)软硬件设计端口不匹配;

3.3.2 仿真现象失真或错误

(1)C 程序未添加至源组;在其他操作一切正常的情况下,未添加程序,不能实现对硬件的控制,也不能看到预期仿真效果,只要添加完成后,重新生成hex 文件,并加载至硬件即可。

(2)多显、漏显信息;这类错误是因为程序的显示函数出问题,需反复修改并编译。

(3)完全无现象,端口不读数据;此类错误一般是因为元件连接不合理或是断路,有时难免因参数设置不合理导致。

(4)main()函数报错;这种情况因为变量或中断初始化出现错误,有时是函数拼写错误,有时是同一个项目有多个main()。

(5)彩灯闪烁过快或过慢,肉眼观察不出现象或等待时间过长;

这类错误主要是延迟函数的定义及调用出问题,可以通过修改实参的值来达到目的;同时,也有可能是延迟函数第一层for 循环后面跟了“;”导致错误。

3.3.3 移动文件夹路径报错

(1)移动文件后,仿真时报路径出错;加载hex 文件时如果使用的是绝对路径,那么移动文件后再次仿真时仍按原路径访问hex 文件所以报错,因为移动文件后路径已经发生了变化,此时需要注意的是在加载hex 文件时使用相对路径最好,方便项目的迁移。

(2)项目及文件命名;在软硬件设计时,一定按命名规则进行。

4 示例解析

现以数字钟的实现为例简要验证解决方案的可行性。数字钟电路图如图1所示,数字钟错误程序如图2所示,数字钟仿真效果图如图3所示。

针对数字钟的显示项目在仿真电路连接时易错易混操作可能有:

(1)排阻RP1 的电源引脚连接出错;

(2)P0 端口不加上拉电阻或排阻;

(3)数码管错选为“7SEG---MPX8---CC”,而本程序设置的是共阳极(CA)数码管。

5 研究结果在教学中的使用前后效果对比

本研究在校内开设有《单片机控制及应用》课程的班级中得到推广,目前已取得比较显著的成绩。以前未使用该方案的班级成绩(调研人数157 人)及格率48.9%,平均分54.82 分,最高86 分,最低分8 分;而使用该方案的班级成绩(调研人数353 人)及格率88.69%,平均分71.24 分,最高分98 分,最低分15 分。从对比结果看来,对教学效果的提升已经起到了非常重要的作用。

6 结束语

本次研究对校内多个系部、班级以及不同层次的学生做了调研,花费了大量的人力;也有很多同行给予我们鼓励与支持,本项目组成员对此表示衷心的感谢,并将研究成果形成此文与大家分享,若有不足之处,望批评指正!

猜你喜欢

数码管易错端口
攻克“不等式与不等式组”易错点
立体几何易错警示
三角函数中防不胜防的易错点
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
端口阻塞与优先级
初识电脑端口
8端口IO-Link参考设计套件加快开发速度