高职单片机教学研究二.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

?

?

高职单片机教学研究二

?

?

季红梅

【摘要】教育教学须因材施教,面对高职学生群体,应运用怎样的教学方法才能达到最佳教学效果呢?根据自己多年教学体会,认为高职课堂教学,既不能等同于高中教学,也不能完全照搬高校教学。它必须具有高职的特色,其课堂教学既要注重知识性,更要注重趣味性,理论够用,技能为主,通过学生跟着老师做、学生学着自己做、理论教学做总结的方式,通过实践体会理解掌握单片机的功能应用技能。

【关键词】高职教学;单片机应用;中断应用

1.引言

当前各类高职技能大赛项目的机器人控制、非接触识别等等科目,单片机的中断应用属于必用项目。如何设计中断知识的教学,使得学生学得不累,搞得明白,用的順手,就是作为授课老师研究的问题。

2.中断原理

首先,如何导入中断概念?设计以生活中的案例引导理解。

如果我们想要同时做烧一壶水与看电脑播放电视剧二件事,请设计一下实施方案…

方案1:先烧开水,再看电视剧

方案2:同时进行,但是可能忘记烧水,导致事故

方案3:中断机制,同时进行,使用带响的水壶,水烧开时中断看电视剧,可以暂停,然后处理好开水之后再重新继续看电视剧…

前面学习的定时器案例里面用按键切换几种LED表示的方式,有时反应及时有时会反应不及时,原因是主程序循环没有及时到达按键检测的位置,所以需要等待。如果采用中断方式,按键按下即可响应。

其次,需要了解中断事件的特点。中断程序主要处理及时性要求高的事件,所以应该设计的短平快。否则就失去了中断应用应有的效果。

其三,中断设计理念:

将主程序中的一部分功能,提取出来,放到中断处理程序中。在主程序中初始化时初次开放中断…

条件满足触发进入中断处理程序,进入立即关闭中断(初学者不建议使用多次中断嵌套);中断处理程序中主要完成一些计数判断功能,然后根据判断信息,设置标志或计数,退出时重新开放中断。中断程序设计尽量短平快…

主程序循环检查标志条件进行相对应的处理…

3.中断方式

中断分为硬中断和软中断,硬中断就是有硬件操作导致触发的中断,比如说按键按下去产生一个信号触发中断程序工作;软中断是有程序在特定的条件下发出信号触发中断,比如说定时器计数达到上限溢出引起中断。

在前节定时器的学习基础,理解了中断的理念,设计中断程序就变得非常轻松步骤化了:

①中断的初始化

②开中断(多数放在初始化里,也可以放在需要的任何位置,根据需要开放或关闭)

③中断服务程序框架(中断名称查中断向量地址表)

#pragmavector=中断名称_VECTOR

__interruptvoidEINT_ISR(void)

{EA=0;//关闭全局中断

//中断处理功能程序start

……中断功能实现程序

//中断处理功能程序end

EA=1;//重新开放全局中断}

4.中断综合应用案例

①硬中断案例1(按键外中断),按键控制LED跑马灯开始或停止

#includeioCC2530.h//引用头文件,包含对CC2530的寄存器、中断向量等的定义

//定义led灯端口和按键

…(参见高职单片机教学研究一)

unsignedintKeyTouchtimes=0;//定义变量记录按键次数

unsignedintKeyflag=0;//定义变量记录按键单2次,单次启动,双次停止

/*函数名称:init功能:初始化系统IO,外中断寄存器*/

voidinit()

{//LED灯端口和按键初始化(参见高职单片机教学研究一)

PICTL=~0x02;//配置P1口的中断边沿为上升沿产生中断

P1IEN|=0x04;//使能P1.2中断

IEN2|=0x10;//使能P1口中断

EA=1;//使能全局中断}

/*函数名称:EINT_ISR功能:外部中断服务函数*/

#pragmavector=P1INT_VECTOR

__interruptvoidEINT_ISR(void)

{EA=0;//关闭全局中断

//中断处理功能程序start

if(P1IFG0x04)//若是P1.2产生的中断

{

/*等待用户释放按键,并消抖*/

while(SW1==0);//低电平有效

delay(100);//延时程序略

while(SW1==0);

if(Keyflag==0)//根据按键,设计单双次标志

{Keyflag=1;}

else

{Keyflag=0;}

P1IFG=~0x04;//清除P1.2中断标志

}

//中断处理功能程序end

EA=1;//重新开放全局中断}

/*函数名称:main功能:main函数入口*/

voidmain(void)

{init(

文档评论(0)

183****9774 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档