微控制器技术综合设计和提高设计质量探讨
2013-09-06艾红
艾 红
(北京信息科技大学 自动化学院,北京 100192)
北京信息科技大学自动化专业是北京市特色专业建设项目和国家级特色专业建设项目。单片机课程是电子信息类专业的重要专业基础课,具有综合性和实践性的特点,为了帮助学生掌握程序设计的思想和方法,加强所学知识的应用,了解和掌握单片机应用系统的软硬件设计过程和方法,学校在单片机课程学习之后,安排了一周半微控制器技术综合设计,以培养学生的实践能力,培养学生根据课题需要查阅文献资料的能力,学会方案论证和比较,拓宽知识面,初步掌握工程设计的基本方法;让学生学会软、硬件设计和调试方法,培养学生综合运用所学专业知识,增强分析问题和解决问题的能力[1-2]。
1 综合设计主要内容和选题
主要内容与要求:(1)学生围绕要解决的问题查阅相关的文献资料,并进行分析、研究,确定技术路线和实施方案;(2)了解与课题相关的硬件元器件数据手册,能够按照综合设计任务书的要求撰写综合设计报告,能正确反映综合设计的成果;(3)要求综合设计报告写作规范,写出自己的设计内容和思路,分析调试中遇到的问题以及解决方法;(4)用Microsoft Office Visio软件画流程图和硬件连线图,要求加注释,说明程序构思,使程序可读性好;(5)提交一篇完整的分析和综合设计报告。通过综合设计环节以及对综合设计报告书写的严格要求,培养学生严谨的学习态度,为毕业论文的撰写做好准备。
综合设计让学生掌握单片机内部功能模块的应用,增进对单片机的感性认识,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通信等,实现键盘显示、电机控制应用等。认真准备综合设计的选题,能吸引学生。选题既要难度适当,结合实验设备具有可操作性,又要有一定的实用性,体现出设计的特点,而且要概括较多应用内容。为了使学生都有收获,带领学生先从基本内容入手,如:利用动态显示方式实现在数码管上稳定显示123456;通过单片机的I/O口控制步进电机运转实现正转和反转;利用单片机控制直流电机掌握脉宽调制直流调速的方法;通过调节脉冲宽度改变占空比,从而改变输出,达到改变直流电机转速的目的。通过综合设计的基本内容使学生能够看到数码管的显示和步进电机正传与反转、直流电机转速改变,逐步提高学生学习兴趣。在完成基本内容的基础上,对不同班级设计了不同难度的选题,如基于单片机的作息时间控制钟、基于单片机的交通灯控制、数据采集显示系统设计、音乐播放系统设计、点阵LED广告屏设计、字符型LCD显示设计、比赛记分牌设计、电梯控制系统简易模型设计、“叮咚”门铃设计、数字电压表设计、生产车间流水线自动控制模拟、停车场车位控制、自动售货机设计、智力竞赛抢答器、篮球比赛计分器、简易秒表设计、具有闹钟功能的电子时钟设计、按键控制选播音乐、温度显示系统设计等[3-5]。
2 接触式IC卡读写设计
IC卡是一种简单易用的存储卡,在综合设计中采用AT24C01存储芯片的IC卡进行读/写操作。程序设计实现将数组中的内容写入IC卡,再读出放到单片机地址为30H开始的对应的存储器空间中。查看存储器中的数据,看与原始数据是否一致,验证IC卡进行读/写操作功能,例如将学号存入IC卡中,读出IC卡信息并送数码管或者液晶屏显示。如果读出错误,则指示灯亮[6-7]。接触式IC卡读写软件流程图如图1所示。
接触式IC卡与CPU采用I2C总线通信形式。I2C总线只用2条线,不需要片选线,SCL是时钟线,SDA是数据线。I2C总线上传送的每一个字节均为8位,并且高位在前。首先由起始信号启动I2C总线,其后为寻址字节,寻址字节由高7位地址和最低一位方向位组成,方向位表明主控器的操作方式,为读操作或写操作,其后的数据传输字节数是没有限制的。每传送一个字节后都必须跟随一个应答位或非应答位,在全部数据传送结束后主控制器发送终止信号。I2C总线上每传输一个数据位,必须产生一个时钟脉冲。SDA线上的数据必须在时钟线SCL的高电平周期保持稳定,数据线的电平状态只有在SCL线的时钟信号是低电平时才能改变。
图1 接触式IC卡读写设计软件流程图
图2中程序是将WData数组中的8个数据写入到IC卡中,再从IC卡中读出送到单片机内部数据,存储器地址为30H~37H。图2中表明写入到IC卡中的数据与从IC卡读出的数据一致。
图2 IC卡读写程序显示结果
3 应用Proteus提高综合设计质量
为了提高综合设计质量,在无需单片机硬件的条件下,用Proteus仿真软件搭建系统简单易行,避免了在实际中用硬件搭建系统的一些缺点,而且成本低廉。将Proteus仿真软件引入综合设计,可以改变传统的综合设计模式,节省了设计时间和经费,可以实现软硬件联调,提高了综合设计效率,而且设计结果也很逼真[8-9],提高学生完成综合设计内容的兴趣和主动性,培养学生的创新性和实践能力。
简易电梯系统的设计用5个键(或开关)代表1~5层,点阵显示器显示当前层数。例如电梯停在2层时,按下开关5,点阵显示器滑动显示3、4、5,并保持显示5,再按下开关1,点阵显示器依次滑动显示4、3、2、1,并保持显示1,电梯系统设计如图3所示。数字电压表设计实现了A/D采集电压值在数码管上的显示。当调节电位器时,数码管上显示1~5V电压,数字电压表设计显示如图4所示。
图3 简易电梯系统设计
图4 数字电压表设计
4 学生潜能挖掘和综合设计成果
综合设计环节既是对课堂教学的检验,也是学生提升自己能力的关键环节。通过综合设计,缩短了从理论知识到实际应用的过程。学生看到自己设计的作品能够完成一定功能,如定时时间准时,灯在闪烁,数码管能够显示正确数字,并不断变化数值,按键立刻有响应,体会出中断与查询工作方式的区别;有的学生看到灯在每隔一定时间从左向右移动,会认真地看很长时间,由此体会到自己联调软硬件有正确结果后的快乐。合理有效的综合设计方法与设备环境,有助于提高学生学习的主动性,锻炼学生的动手能力,增加成就感[10]。综合设计LCD显示和LED点阵显示如图5和图6所示。图5中显示了学生的学号,图6中显示汉字。综合设计中还要求学生实现汉字从上到下移动显示,从左到右移动显示。汉字内容和字数可以随意选择设计。LCD显示和LED点阵显示的2个综合设计题目受到学生的普遍欢迎,经过调试成功后的汉字点阵显示结果的演示,学生对日常生活中的点阵显示有了深刻的理解,更加喜欢自己的专业。
图5 LCD液晶显示
图6 点阵LED显示设计
5 具有闹钟功能的电子时钟设计
综合设计有基本内容和提高内容。提高内容中的有一个题目是具有闹钟功能的电子时钟设计。设计要求是:时、分、秒的初始状态是零,随即开始走时。按“A”键1次,小时加“1”,按“B”键1次,分钟加“1”,按“C”键1次,秒加“1”。每逢1:00、2:00、3:00、……时通过音响报时,1:00响一声,2:00响二声,3:00响三声。按下“K”键后,闹钟标志灯亮,表示此时正在设置闹钟;设置完毕再次按下“K”键,恢复正常显示;当定时闹钟到点时,指示灯亮,蜂鸣器响。
学生综合设计报告中描述了电子时钟设计的实现过程。通过中断保证走时准确,通过状态控制变量dd控制时钟状态和闹钟状态的切换,每次按K键后dd取反,dd=1时是时钟状态,dd=0时是闹钟状态,分别用6个键对时、分、秒进行操作。整点时间到后通过蜂鸣器进行报时。学生做这些程序设计需要很大的耐心,不可能一步将题目要求功能都调试出来,只能根据要求先实现基本功能。例如根据具有闹钟功能的电子时钟功能要求,将其分为4个小的题目来做,第一步先实现时钟的功能;第二步在第一步基础上加入键盘调节,使其通过按键来控制显示;第三步加入定时响;第四步完成闹钟功能。通过这个过程,一步一步深入,可以很快发现每一步中出现的错误,并及时修改,避免当程序长了以后无从找错的困难。微控制器技术综合设计中的题目涉及面多,与平时做的实验内容相比,在难度上有很大地提高。提高内容就是学生自己在一步步调试程序了。
6 结束语
微控制器技术综合设计使学生可以熟练地运用Keil软件编写并调试程序,用Proteus软件画原理图,实现软件仿真,可以成功实现键盘和显示功能。学生在综合设计的体会中这样写到:通过综合设计这段时间的锻炼,可以明显感觉到对于程序的理解和编程方面的提高;每当一个自己编写的程序实现要求时,成就感油然而生,对单片机产生了更加浓厚的兴趣;当调试遇到问题时经过教师的帮助及自己的坚持不懈,最终完成了题目的要求,自己也十分开心,自信倍增。总之,通过综合应用Proteus软件以及应用硬件电路LCD显示和LED点阵显示等,精心设计题目,可以提高微控制器技术综合设计的质量,使学生受益匪浅[11-12]。
(References)
[1]李学礼,林海峰.基于Proteus软件的单片机实验室建设[J].单片机与嵌入式系统应用,2005(9):5-6.
[2]周灵彬,张靖武.Proteus的单片机教学与应用仿真[J].单片机与嵌入式系统应用,2008(1):76-77.
[3]邵峰.单片机课程的仿真演示教学初探[J].安徽广播电视大学学报,2008(4):125-126.
[4]肖隽亚,张聚伟,付主木.智能仪表课程教学研究与探索[J].中国现代教育装备,2010(21):113-114.
[5]葛浩.Proteus在单片机课程设计中的应用研究[J].科技创新导报,2009(13):135.
[6]吴必瑞.从大学生电子设计竞赛谈单片机课程教学改革[J].中国现代教育装备,2011(7):107-108.
[7]梁强,郑一周.51单片机课程设计教学的思考与实践[J].科技信息,2009(19):542.
[8]秦晓梅,陈育斌,杨建华.单片机综合设计实验课程的建设与开发[J].实验技术与管理,2004,21(2):114-115.
[9]贡雪梅.项目教学法在单片机原理课程设计中的应用[J].实验技术与管理,2009,26(7):115-116.
[10]肖伸平,凌云,何小宁.单片机应用技术课程实践化教学改革的探索[J].实验技术与管理,2006,23(12):104-105.
[11]苏变玲,朱志平,袁卫.基于Proteus的单片机仿真教学的研究[J].实验室研究与探索,2009,28(4):75-76.
[12]宋跃,余炽业,张志坚.单片机精品课程的实践教学改革[J].实验室研究与探索,2009,28(3):83-84.