2015-6-2 16:55| 发布者: waveshare-admin| 查看: 5432| 评论: 0
AVR主控电路原理图(点击图片放大,不需要放大镜!) LED控制电路原理图(点击图片放大,不需要放大镜!)
下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!
//目标系统: 基于AVR单片机//应用软件: ICC AVR/*10101010101010101010101010101010101010101010101010101010101010101010----------------------------------------------------------------------实验内容:使用AVR的外部中断INT1检测PD3Key,如果有按键按下,则唤醒休眠的MCU,并使它的PB口的LED做加1指示。----------------------------------------------------------------------硬件连接: 将PB口的LED指示灯使能开关切换到"ON"状态。----------------------------------------------------------------------注意事项: (1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料” ----------------------------------------------------------------------10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>#include "D:\ICC_H\CmmICC.H"
#define DISP_DDR DDRB#define DISP_PORT PORTB#define IN_PD3 cbi(DDRD,3) //PD3#define SET_PD3 sbi(PORTD,3)#define GET_PD3 gbi(PIND,3)
/*--------------------------------------------------------------------程序名称:外部中断服务程序程序功能:注意事项:提示说明:输 入:返 回:--------------------------------------------------------------------*/#pragma interrupt_handler int1_isr:3void int1_isr(void){ GICR &= 0b01111111; // disable int1 interrupt DISP_PORT++; // 显示口指示加1,指示被按次数 delay50ms(4); GICR |= 0b10000000; // enable int1 interrupt}/*--------------------------------------------------------------------程序名称:外部中断初始化程序程序功能:注意事项:提示说明:输 入:返 回:--------------------------------------------------------------------*/void int1_init(){ IN_PD3; // set PD3/INT1 as input SET_PD3; // set PD3/INT1 as output,high level,avoid triggering MCUCR |= 0b11110011; // set PD3/INT1 as low level active GICR |= 0b10000000; // enable global interrupt SEI(); // enable external interrupt}/*--------------------------------------------------------------------程序名称:程序功能:注意事项:提示说明:输 入:返 回:--------------------------------------------------------------------*/void main(void){ DISP_DDR = 0xFF; DISP_PORT = 0x00; int1_init(); asm("sleep"); // set mcu as sleep modle while(1);}
开机后MCU处于SLEEP状态,之后按按键,LED作出了简单指示。
以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
评论
微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )
GMT+8, 2024-12-22 18:34 , Processed in 0.019325 second(s), 20 queries .