北科大单片机实验报告 - 图文(9)

2020-04-18 02:45

} }

while (1) { readkey();

display(); // 显示扫描,执行时间12ms time[2] = 00; time[1] = 00; time[0] = 00; // 时间初值00:00:00 time_to_disbuffer(); if(KEY==1) {

if (++time_counter >= 40) {

time_counter = 0; point_on = ~point_on; if (++time[0] >= 60) {

time[0] = 0;

if (++time[1] >= 60) {

time[1] = 0;

if (++time[2] >= 24) time[2] = 0; } }

time_to_disbuffer();

} }

else if(readkey()==2) time_to_disbuffer();

delay_ms(13); // 延时13ms,可进行其它处理 }; }

(2)在按键的处理过程中,除了要进行消抖处理,还要判别按键的释放,如果不进行按键释放的判别,将会发生什么现象?

由于按键是机械结构,人手在按键的时候,由于抖动和按键触点的原因会产生多个上升沿和下降沿,导致单片机误认为按键受到了多次操作。因此要进行消抖处理和检测按键释放。

如果没有消抖处理,按键一次会响应多次。如果没有按键释放,单片机误认为已经完成一次按键操作便进行下一次,只要按键未放开就会一直当做有按键事件进行处理,因此也会响应多次。

32

七、遇到的问题及解决方法

1、一开始按键时示数并不是加一或者减一,纳闷为什么会这样,就检查源程序是不是出错了,后来就想起学数电时设计模拟电路时都要进行消抖处理,于是反应过来,程序中也要加入消抖处理的程序。

八、心得体会

通过实验,学习了对按键的查询读取方式,实现了显示的修改功能:按键控制数码管显示0 — 9,每按一次按键KEY1,数码管显示的数值加1;每按一次按键KEY2,数码管显示的数值减1。根据电路图,完成实物连接。

编写代码时要注意考虑按键消抖,软件方式消抖的基本原理是在软件中对按键进行两次测试确认,既在第一次检测到按键按下后,间隔10ms左右再次检测该按键是否按下,只有在两次都测到按键按下时才最终确认有键按下,从而消除了抖动的影响。除了要考虑按键消抖外,一般还要判别按键的释放,只有检测到按键释放以后,才能确定为一次完整的按键动作完成。

33

34

——INT1)

四、实验步骤

二、实验内容

一、实验目的

新建项目实现实验内容

实验六 外部中断实验

(1)了解中断的作用。

三、实验所用仪表及设备

硬件连接如图6-2所示。

(2)了解ATMega16中断系统和中断源。

硬件:PC机一台、AVR_StudyV1.1实验板

(4)掌握CodeVision AVR中断程序的编写。

(3)掌握ATMega16的外部中断的使用方法。

软件:CodeVision AVR集成开发软件、SLISP下载软件

值加1;每按一次按键KEY2,数码管显示的数值减1。(KEY1——INT0;KEY2

(2)外部中断唤醒CPU实验,使用外部中断0唤醒掉电模式下的CPU。

(1)按键控制数码管显示0 — 9,每按一次按键KEY1,数码管显示的数

35

图6-2

建议使用CodeVision AVR中的程序生成向导功能(CodeWizardAVR)来

帮助你建立中断程序的框架,图6-3为CVAVR中利用程序生成向导功能配置产生外部中断初始化部分的界面。

图6-3

外部中断初始化部分:使能INT0和INT1,都是下降沿产生中断。 // External Interrupt(s) initialization // INT0: On

// INT0 Mode: Falling Edge // INT1: On

// INT1 Mode: Falling Edge // INT2: Off GICR|=0xC0; MCUCR=0x0A; MCUCSR=0x00; GIFR=0xC0;

INT0中断服务函数:

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void) {

// Place your code here if(++count > 9) count = 0; }

INT1中断服务函数:

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void) {

36


北科大单片机实验报告 - 图文(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:防火墙试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: