时间:2024-05-04
王丽 王志凌 钟丽娜
摘 要:文中探讨了单片机课程教学中现存的共性问题,提出了基于Proteus的单片机项目式教学模式。通过实例分析,使用项目式教学方式有助于改进单片机课程的理论教学和实践教学,提高学生分析问题和实践能力,取得了良好的教学效果。
关键词:单片机;理实一体化;项目式教学;Proteus
中图分类号:G642 文献标识码:A 文章编号:2095-1302(2016)07-0-02
0 引 言
单片机课程是工科专业的主干课程,也是一门实践性很强的课程。单片机作为计算机应用技术的一大分支,在智能化产品开发过程中占据核心地位[1,2]。
为了更好地适应市场的需求,广大独立学院纷纷进行了课程的教学模式改革,以期形成更具活力、更高效的独立院校本科实践课程教学体系[3,4]。培养学生对课程学习的积极性和一定的独立实践、设计能力,要求我们处理好实践课程的理论教学与实践教学环节的关系。
单片机课程的传统教学模式是先理论教学,中后期进行实验教学。理论教学中以单片机的硬件结构为主线,讲授指令及指令系统。抽象的单片机芯片与空洞的指令系统的学习造成学生对课堂内容理解困难,更加无法高效地理解单片机应用系统的设计过程。实验教学多是进行验证性实验,学生遵循实验指导书进行简单的导线连接和程序验证,学生不会自行思考应用系统的设计环节,缺乏主动性。
此外,理论与实践的脱节教学方式也会使学生缺乏对单片机应用系统设计过程最直观的认识与工程体验。最终导致单片机课程具有“难入门”、“内容繁杂、枯燥”等特点。
本文基于单片机课程教学现状的分析,提出基于“项目方式”的理实一体化教学模式在课程教学过程中的应用。使学生能在“学中做”和在“做中学”,师生双方也是边教边做,二者相辅相成,激发学生的学习积极性。整个教学过程以实际的项目内容与设计过程为基线,利用Proteus软件为工具,进行项目内容的硬件原理与软件设计。学生对项目内容及方案先自主调研,较好地理解单片机的内部结构,掌握单片机应用系统的硬件电路设计与软件程序设计的技能,从而积累项目开发的经验。为以后的毕业设计、甚至就业打好基础。
1 项目应用实例
单片机课程学习的最终目的是单片机应用系统设计,包括硬件和软件两方面。即在教学过程中应将硬件原理与软件程序设计相结合。以51单片机中断综合实例来说明“项目式”教学方式在单片机教学中的应用。
1.1 单片机应用系统设计流程
单片机应用系统的设计主要包括硬件和软件设计两大部分。一般来说,用途不同,它们的硬件和软件结构差别就会很大,但是系统的设计方法和步骤基本相同[5]。
1.2 硬件电路设计
硬件电路主要包括单片机最小系统模块、存储器模块、按键模块和显示模块。项目内利用了单片机的中断技术、存储器扩展技术、串行口扩展技术、单片机输入输出接口技术。
本实例的Proteus电路原理图如图1所示。控制记录按键开关,利用中断技术将开关次数K值存入外扩存储器AT24C02C芯片,利用数码管同步显示K值。单片机P3.2引脚/外部中断源0(跳沿触发方式)连接记录按键开关,单片机P2.6和P2.7引脚模拟I2C总线与AT24C02C芯片通信。74LS47驱动七段数码管显示记录按键的开关次数。
当系统断电后,再次上电时,能记忆断电时按键次数,连续记录按键S按下的次数。单片机的P3.6引脚连接清零按键,能保证异步清除按键的历史记录次数,重新记录。
1.3 软件设计
本程序采用模块化设计,主要包括主程序模块、外部中断模块、存储器的I2C通信模块和显示模块。
1.3.1 主程序模块
主程序主要完成参数的初始化、开中断、判断按键开关与控制等。主程序设计流程图如图2所示。
具体的主程序如下:
#include
#include
typedef unsigned char uchar;
#define DAT_ADDR 0x03
uchar g_ucDat;//记录按键开关次数
sbit sda = P2^7;//AT24C02的數据总线
sbit scl = P2^6; //AT24C02的时钟总线
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit clear_key = P3^6;//清零按键
void main(void)
{
uchar temp = 0;
g_ucDat=0;
int0_init();//中断初始化
init_I2C();//I2C总线初始化
temp = read_I2C(DAT_ADDR);
if(temp == 0xFF)
{
temp = 0;
write_I2C(DAT_ADDR,temp);
delay_ms(10);
}
g_ucDat = temp;
while(1)
{
if(clear_key == 0)
{g_ucDat = 0;
}
temp = g_ucDat;
write_I2C(DAT_ADDR , temp);
display(temp);
}
}
1.3.2 中断模块
中断模块程序如下:
void int0_init(void)//中断系统初始化
{
EX0 =1;
IT0 =1;
EA=1;
}
void int0_tnter() interrupt 0
{
g_ucDat ++;
}
1.3.3 存储器AT2402C的I2C通信模块
51单片机没有专用的I2C总线接口控制器,采用软件模拟的方法实现与具有I2C总线接口的外围器件AT2402C连接,从而构成单片机应用系统。在51单片机模拟I2C总线通信时,需要调用一些子程序构建相应的时序。这些子程序包括总线初始化,典型信号时序模拟子程序,I2C总线模拟通用子程序。为简便起见,具体程序参考文献[5]。
1.3.4 显示模块
利用单片机P0口控制74LS47驱动两位数码管显示按键次数K值。其程序如下:
void display(uchar dat)
{
LED1 = 0;
LED2 = 1;
P0 = (dat%10);
delay_ms(1);
LED2 = 0;
LED1 = 1;
P0 = (dat/10);
delay_ms(1);
}
1.4 軟硬件结合仿真调试
生成HEX文件后,将其加入Proteus仿真系统的单片机中调试。接下来就可以通过调试菜单进行仿真与验证。
2 结 语
将理论与实践教学结合在项目内容中,师生边教边学,对培养学生的程序设计、硬件设计及综合知识应用起到积极的作用。其中Proteus将理论与实践相结合,使学生对单片机的认识更加直观,进一步激发了学生的学习兴趣,从而提高了教学质量。
参考文献
[1]任国臣,陈晓英,蓝和慧,等.单片机原理及接口技术实践教学改革与实践[J].辽宁工业大学学报(社会科学版),2014,16(5): 141-142.
[2]鲁俊生,万忠,万光毅.单片机可曾教学改革的实践和思考[J].实验室研究与探索,2004,23(3):54-56.
[3]张晶.精品课程建设的实践与思考[J].黑龙江高教研究,2006(1):143-146.
[4]林志贵,袁臣虎,李现国.单片机原理及接口技术课程教学改革新思路[J].电气电子教学学报,2007,29(2):16-19.
[5]王丽,张燕,王恒.单片机原理及应用[M].北京:国防工业出版社,2014.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!