版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目二:ATmege16中断与定时/计数器一、项目内容:(1)、使用外部中断,实现按键控制LED亮灯(2)、利用定时/计数器1实现电子时钟的设计与制作(3)、利用定时/计数器1实现频率与占空比可调的PWM波形输出二、项目目标:(1)、掌握中断概念(2)、掌握中断向量(3)、掌握外部中断的使用(4)、掌握定时/计数器1的使用(5)、进一步熟悉C语言的编程技巧三、项目任务:1、按键控制的LED闪烁(1)、任务内容:根据外部中断的特点设计按键控制LED闪烁的电原理图根据原理图使用万能板制作电路编程实现按键控制LED闪烁(2)、任务目标:掌握外部中断寄存器的设置进一步掌握I/O 口的使用(3)程序设计
2、#include iom16v.h /ICC AVR环境下的ATmega16库函数 定义了所有的寄存器及其 位的标号#include macros.h”/*个* 个个个个个个个个函数功能:延时1ms(4M晶振,0.25微秒的指令执行周期)入口参数:无函数说明:(3Xcnt_j+2)Xcnt_i=(3X33+2)X40*0.25=1010(微秒),可以近似认为是 1 毫 秒 * / 个个个个个个个个/void Delay_1_ms(void)unsigned char cnt_i,cnt_j;for(cnt_i=0;cnt_i40;cnt_i+)for(cnt_j=0;cnt_j33;cnt_j
3、+)*函数功能:延时若干毫秒入口参数:n_ms 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/*void Delay_n_ms(unsigned int n_ms)unsigned int cnt_i;for(cnt_i=0;cnt_in_ms;cnt_i+)Delay_1_ms();#pragma interrupt_handler INT0_isr:0 x02INT0_isr() /中断后从右向左显示unsigned char cnt_i;SEI();/全局中断使能while(
4、1)for(cnt_i=0;cnt_i8;cnt_i+)PORTA=(10;cnt_i)PORTA=(1(cnt_i-1);Delay_n_ms(200);main() CLI();/关中断DDRA=0 xff;/方向输出PORTA=0 xFF;/电平设置DDRD=0 x00;/方向输入PORTD=0 xFF;GICR| = (1INT0);/使能外部中断请求0MCUCR| = (1ISC01);/外部中断请下降沿触发SEI();/全局中断使能zy();(4)、仿真图-YELLOW-YELLOW12 T3-YELLOWDED-yellow9T38!37.365m343T-YELLOW3 4a-
5、YELLOW,8RESETPC0/SCLPC1/SDAXTAL1PC2/TCKXTAL2PC3/TMSPC4/TDOPA0/ADC0PC5/TDIPA1/ADC1PC6/TOSC1PA2/ADC2PC7/TOSC2PA3/ADC3PA4/ADC4PD0/RXDPA5/ADC5PD1/TXDPA6/ADC6PD2/INT0PA7/ADC7PD3/INT1PD4/OC1BPB0/T0/XCKPD5/OC1APB1/T1PD6/ICP1PB2/AIN0/INT2PD7/OC2PB3郁1/OC0PB4/SSPB5/MOSIPB6/MISOPB7/SCKAREFAVCCATMEGA16-29V14T16
6、7T18T192TF-30-YELLOWPROGRAM=1.HEXLED-YELLOW(5)、原理图(6)、电路板图2、电子时钟的设计与制作、任务内容:利用定时/计数器1溢出中断设计并制作一个电子时钟电子时钟显示的时间可以用按键进行设置、任务目标:掌握定时/计数相关寄存器的设置掌握定时/计数1中相关寄存器使用进一步掌握1602字符点阵液晶显示模块的使用进一步掌握独立式键盘的使用、程序设计#includeiom16v.h#includemacros.h#define LCM_RS_1 PORTB|=(10)#define LCM_RS_0 PORTB&=(10)#define LCM_RW_1
7、PORTB|=(11)#define LCM_RW_0 PORTB&=(11)#define LCM_E_1 PORTB|=(12)#define LCM_E_0 PORTB&=(12)unsigned char Sys_Time_Hou=23,Sys_Time_Min=59,Sys_Time_Sec=55;unsigned char LCM_Num_Table = 0,1,2,3,4,5,6,7,8,9;void Delay_1_us(void)NOP();NOP();NOP();NOP();void Delay_n_us(unsigned int n_us)unsigned int cnt
8、_i;for(cnt_i=0;cnt_in_us;cnt_i+)Delay_1_us();void Delay_1_ms(void)unsigned char cnt_i,cnt_j;for (cnt_i=0;cnt_i40;cnt_i+)for(cnt_j=0;cnt_j33;cnt_j+)void Delay_n_ms(unsigned int n_ms)unsigned int cnt_i;for(cnt_i=0;cnt_i=0 x80);DDRA=0 xFF;LCM_RS_0;LCM_RW_0;LCM_E_1;PORTA=cmd_dat;Delay_n_us(1);LCM_E_0;vo
9、id LCM_Wr_DAT(unsigned char dis_dat)while (LCM_Re_BAC()=0 x80);DDRA=0 xFF;LCM_RS_1;LCM_RW_0;LCM_E_1;PORTA=dis_dat;Delay_n_us(1);LCM_E_0;Delay_n_us(40);void LCM_1602_Init(void)LCM_Wr_CMD(0 x38); Delay_n_ms(5);LCM_Wr_CMD(0 x38);Delay_n_ms(5);LCM_Wr_CMD(0 x38);Delay_n_ms(5);LCM_Wr_CMD(0 x0c);Delay_n_ms
10、(5);LCM_Wr_CMD(0 x06);Delay_n_ms(5);LCM_Wr_CMD(0 x01);Delay_n_ms(5);void LCM_Show_Time(unsigned char time_hou, unsigned char time_min, unsigned chartime_sec)unsigned char hou_shi,hou_ge,min_shi,min_ge,sec_shi,sec_ge;hou_shi=time_hou/10;hou_ge=time_hou%10;min_shi=time_min/10;min_ge=time_min%10;sec_sh
11、i=time_sec/10;sec_ge=time_sec%10;LCM_Wr_CMD(0 x80);LCM_Wr_DAT(B);LCM_Wr_DAT(e);LCM_Wr_DAT(i);LCM_Wr_DAT();LCM_Wr_DAT(j);LCM_Wr_DAT(i);LCM_Wr_DAT(n);LCM_Wr_DAT(g);LCM_Wr_DAT();LCM_Wr_DAT(t);LCM_Wr_DAT(i);LCM_Wr_DAT(m);LCM_Wr_DAT(e);LCM_Wr_DAT(:);LCM_Wr_CMD(0 xc0);LCM_Wr_DAT(LCM_Num_Tablehou_shi);LCM_
12、Wr_DAT(LCM_Num_Tablehou_ge);LCM_Wr_DAT(:);LCM_Wr_DAT(LCM_Num_Tablemin_shi);LCM_Wr_DAT(LCM_Num_Tablemin_ge);LCM_Wr_DAT(:);LCM_Wr_DAT(LCM_Num_Tablesec_shi);LCM_Wr_DAT(LCM_Num_Tablesec_ge);unsigned char Get_Key_Val()unsigned char key_val;key_val=PIND;doDelay_n_ms(4);while (key_val=PIND);switch(key_val)
13、case 0 xfe:key_val=1;break;case 0 xfd:key_val=2;break;case 0 xfb:key_val=3;break;case 0 xf7:key_val=4;break;case 0 x7f:key_val=8;break;case 0 xbf:key_val=7;break;case 0 xdf:key_val=6;break;case 0 xef:key_val=5;break;default:key_val=0;break;return key_val;void Time1_1sOVR_Init(void)TCCR1B=0 x00;TCNT1
14、H=0 xF0;TCNT1L=0 xBE;TIMSK=0 x04;TCCR1A=0 x00;TCCR1B=0 x05;#pragma interrupt_handler Timer1_1sOVF_Isr:9void Timer1_1sOVF_Isr(void)TCNT1H=0 xF0;TCNT1L=0 xBE;Sys_Time_Sec+;if(Sys_Time_Sec=60)Sys_Time_Sec=0;Sys_Time_Min+;if(Sys_Time_Min=60)Sys_Time_Min=0;Sys_Time_Hou+;if(Sys_Time_Hou=24)Sys_Time_Hou=0;
15、LCM_Show_Time(Sys_Time_Hou,Sys_Time_Min,Sys_Time_Sec);void main(void)unsigned char key_ value;CLI();DDRA=0 xFF;PORTA=0 xFF;DDRB=0 xFF;PORTB=0 xFF;DDRD=0 x00;PORTD=0 xFF;LCM_1602_Init();Time1_1sOVR_Init();SEI(); LCM_Show_Time(Sys_Time_Hou,Sys_Time_Min,Sys_Time_Sec);while(1)key_value=Get_Key_Val();swi
16、tch(key_value)case 1:Sys_Time_Hou+;if(Sys_Time_Hou=24)Sys_Time_Hou=0;break;case 2:Sys_Time_Min+;if(Sys_Time_Min=60)Sys_Time_Min=0;break;(4)、仿真图LCD1LM016LI Be i J i nS V i he = 05141 2 34 5 678901114RESET12 13XTAL1XTAL240 39 3837 .36 35u 34m33PA0/ADC0PA1/ADC1PA2/ADC2PA3/ADC3PA4/ADC4PA5/ADC5PA6/ADC6PA
17、7/ADC7TT.8PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN17OC0 PB4/SS PB5/MOSI PB6/MISOPB7/SCKPD0/RXDPD1/TXDPD2/INT0PD3/INT1PD4/OC1BPD5/OC1APD6/ICP1PD7/OC2PC0/SCLPC1/SDAPC2/TCKPC3/TMSPC4/TDOPC5/TDIPC6/TOSC1PC7/TOSC23230ATMEGA16AREFAVCC(5)、原理图1602-)O 口aTCim 寸 gg t,臼由三口曰曰口口曰曰口1on寸6O8CH寸2X23242S26如353031323334
18、3,35373?40PAPAMPAFAPAPA盘 g M 嵩脂吨必01 rM rra 4 6 T &JCSDPEPEPEFEPEPBPE邕阻酬-IFDXTAT.4L25CT.4L1PDOPD1PD2PD3PD4PD5PDS(6)、电路板图3、频率与占空比可调的PWM波、任务内容:编程产生一列频率与占空比可调的PWM波,并在显示器上显示出来、任务目标:掌握定时/计数器1比较匹配输出模式寄存器设置掌握快速PWM工作模式、程序设计#include iom16v.h /ICC AVR环境下的ATmega16库函数 定义了所有的寄存器及其 位的标号#include macros.h”#define System_MCU_F 4000000/*个* *TC1初始化*快速 PWM 频率:Fpwm=Fsystem/(NX (1+TOP) 个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个 /void Timer1_PWM_Init(unsigned int f_pwm,unsigned char oc1a_duty,unsigned char oc1b_duty) DDRD|=0 x30;/停止TC1工作TCCR1B=0 x00;频率设置ICR1=(unsigne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省公务员2025年公共基础冲刺卷
- 初中生演讲稿200字左右
- 高中语文必修上册【同步练习 含答案】-第三单元 念奴娇·赤壁怀古 永遇乐·京口北固亭怀 古声声慢(寻寻觅觅)
- 2025年考核办多选试题及答案
- 山西省2025年公务员行测专项训练冲刺卷
- 2025年初中历史七年级上学期知识梳理卷
- 2025年地盘考试题及答案
- 2025年数字摄影测量试题及答案
- 第二章 声现象 第2节 声音的特性 学案 人教版(2024)八年级上册
- 2025年初中一年级化学上学期物质鉴别卷
- 电工考证专栏2025年低压电工复审考试题库精细讲解(1)附答案
- 物流搬运劳务合同范本
- 隧道工程施工质量常见问题及解决方案
- 2025-2026学年苏教版三年级科学上册期中达标测试卷(三)含答案与解析
- 2025年党校条例试题及答案详解
- 2025年国家能源集团企业文化考试题库及答案
- 看一次禁毒电影活动方案
- 2025太原迎泽区社区劳动保障协理员和城镇最低生活保障协理员招聘考试模拟试题及答案解析
- 消防公司企业简介
- 艾滋病免疫重建不全临床诊疗专家共识
- 优生优育进社区知识培训课件
评论
0/150
提交评论