ATMEGA16单片机班培训实例.doc

0560、ATMEGA16单片机班培训实例

收藏

资源目录
跳过导航链接。
0560、ATMEGA16单片机班培训实例.zip
0560、ATMEGA16单片机班培训实例
0560、ATMEGA16单片机班培训实例
压缩包内文档预览:(预览前20页/共24页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:6126944    类型:共享资源    大小:357.68KB    格式:ZIP    上传时间:2017-11-24 上传人:超****计 IP属地:浙江
4.8
积分
关 键 词:
atmega16 单片机 培训 实例
资源描述:
0560、ATMEGA16单片机班培训实例,atmega16,单片机,培训,实例
内容简介:
1AVR 单片机(ATmega16)培训宗旨:引导为主 培养编程思维时间分配(一学期):三分之一时间讲解;三分之二时间动手实验。具体时间:星期六晚上 6:009:00内容形式:1、软、硬件知识(一)讲解 2、实验经验3、常用程序(思维)分析1、专业讲座(请资深讲师)(二)讲座 2、课外讲座(如书记等)3、电影(专业性强的短片) (李世维讲座)1、硬件测试与软件使用(三)实验内容 2、汇编语言编程3、AVR 单片机内部资源的使用建议方法:先由指导老师讲解实验内容的原理、特点、应用、实践应用中的经验以及编程思维的分析,再由会员自己理解、自己验证、运用原理设计应用、调试程序。在会员动手的过程中,由摇篮的部长(三名)从旁指导。2实验一 软件和硬件的认识一、 实验目的:1、掌握硬件原理。2、初步掌握实验板的使用方法。3、熟悉软件工作界面。二、 实验仪器: ATmage16 实验板 一块PC 机 一台三、 实验内容及步骤:1、插上电源,按下开关。观察批示灯是否点亮。电源(可输入 712V)ATmega16 管脚图32、由原理可知 I/O 口的批示灯为低电平亮,在实验板上取地与 I/O 口相接,观察是否点亮。I/O 口 LED 显示与接口3、打开编程界面,点击各栏,认识各栏的用途。AVRICC IDE 软件的工作界面4、输入以下程序:#include int main(void)DDRA = 0xff; /* all outputs */DDRB = 0xff; /* all outputs */DDRC = 0xff; /*all outputs */DDRD = 0xff; /*all outputs */4PORTA = 0x00; /* 输出低电平 */PORTB = 0x00; /* 输出低电平 */PORTC = 0x00; /* 输出低电平 */PORTD = 0x00; /* 输出低电平 */while(1);观察 I/O 口的灯是否被点亮。实验二 I/O 口的输入与输出一、 实验目的:1、了解 IO 口的结构;2、熟悉 IO 口的特性;3、掌握 IO 口的控制。二、实验仪器:ATmage16 实验板 一块PC 机 一台三、 实验原理:作为通用数字 I/O 使用时,AVR 所有的 I/O 端口都具有真正的读- 修改- 写功能。这意味着用 SBI 或 CBI 指令改变某些管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻) 时不会改变其他管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接驱动 LED。所有的端口引脚都具有与电压无关的上拉电阻。并有保护二极管与VCC 和地相连,如 Figure23 所示。在控制 I/O 时,分别由方向寄存器 DDRX与数据寄存器 PORTX 控制 I/O 的状态,如下表。 Figure 23. I/O 引脚等效原理图5I/O 口 LED 显示与接口四、 实验内容及步骤:输入以下程序:这个程序为流水灯#include /*延时 usvoid delay_us(int t)dot-;while(t1);/*延时 msvoid delay_ms(unsigned int t)6while(t!=0)delay_us(1142);t-;int main(void)DDRA = 0xff; /* all outputs */DDRB = 0xff; /* all outputs */DDRC = 0xff; /*all outputs */DDRD = 0xff; /*all outputs */PORTA=0XFF;PORTB=0XFF;PORTC=0XFF;PORTD=0XFF;while(1)/*IO 口输出低电平有效,如:0X01 为十六进制数,二进制表示为00000001B,再取反PORTA=0X01; delay_ms(1000);/*延时 1 秒PORTA=0X02;delay_ms(1000);PORTA=0X04;delay_ms(1000);PORTA=0X08;delay_ms(1000);PORTA=0X10;delay_ms(1000);PORTA=0X20;delay_ms(1000);PORTA=0X40;delay_ms(1000);PORTA=0X80;delay_ms(1000);PORTA=0XFF;PORTB=0X01; delay_ms(1000);/*延时 1 秒PORTB=0X02;delay_ms(1000);PORTB=0X04;delay_ms(1000);PORTB=0X08;delay_ms(1000);7PORTB=0X10;delay_ms(1000);PORTB=0X20;delay_ms(1000);PORTB=0X40;delay_ms(1000);PORTB=0X80;delay_ms(1000);PORTB=0XFF;PORTC=0X01;delay_ms(1000);PORTC=0X02;delay_ms(1000);PORTC=0X04;delay_ms(1000);PORTC=0X08;delay_ms(1000);PORTC=0X10;delay_ms(1000);PORTC=0X20;delay_ms(1000);PORTC=0X40;delay_ms(1000);PORTC=0X80;delay_ms(1000);PORTC=0XFF;PORTD=0X01;delay_ms(1000);PORTD=0X02;delay_ms(1000);PORTD=0X04;delay_ms(1000);PORTD=0X08;delay_ms(1000);PORTD=0X10;delay_ms(1000);PORTD=0X20;delay_ms(1000);PORTD=0X40;delay_ms(1000);PORTD=0X80;delay_ms(1000);PORTD=0XFF;8观看现象是不是流水灯。实验三 外部中断一、 实验目的:1、了解外部中断的库函数;2、熟悉外部中断的特性;3、掌握外部中断的使用。二、实验仪器:ATmage16 实验板 一块PC 机 一台三、实验原理:外部中断通过引脚 INT0 与 INT1 或 PCINT23.0 触发。只要使能了中断,即使引脚 INT0 与 INT1 或 PCINT23.0 配置为输出,只要电平发生了合适的变化,中断也会触发。这个特点可以用来产生软件中断。 只要使能, PCINT23.16 引脚上的电平变化将触发外部中断 PCI2, PCINT14.8 引脚上的电平变化将触发外部中断 PCI1, PCINT7.0 将触发外部中断PCI0。PCMSK2、PCMSK1 与 PCMSK0 寄存器则用来检测是哪个引脚上的电平发生了变化。PCINT23.0 外部中断的检测是异步的。也就是说,和其他中断方式一样,这些中断也可以用来将器件从休眠模式唤醒。INT0 与 INT1 中断可以由下降沿、上升沿,或者是低电平触发。具体由外部中断控制寄存器 A EICRA 的设置来确定。当 INT0 或 INT1 中断使能且设定为电平触发时,只要引脚电平被拉低,中断就会产生。若要求 INT0 或 INT1 在信号下降沿或上升沿触发中断,则 I/O 时钟必须工作(请参见 P23”时钟系统及其分布 ” 了解更多信息) 。 INT0 与 INT1 的低电平中断检测是异步的。也就是说它可以用来将器件从休眠模式唤醒。在休眠过程( 除了空闲模式) 中 I/O 时钟是停止的。通过电平中断将 MCU 从掉电模式唤醒时,要保证低电平保持一定的时间以使 MCU 完成唤醒过程并触发中断。如果触发电平在启动时间结束前就消失, MCU 将被唤醒,但中断不会被触发。启动时间由熔丝位 SUT 与 CKSEL 决定。详见 P23” 系统时钟及其选项 ” 。外部中断控制寄存器 MCUCR 外部中断控制寄存器 A 包括决定中断触发方式的控制位。9位 1, 0 ISC01, ISC00: 中断触发方式控制 0 之位 1 与位 0 外部中断 0 由引脚 INT0 激发,如果 SREG 寄存器的 I 标志位和相应的中断屏蔽位置位的话。触发方式如 Table35 所示。在检测边沿前 MCU 首先采样 INT0 引脚上的电平。如果选择了边沿触发方式或电平变化触发方式,那么持续时间大于一个时钟周期的脉冲将触发中断,过短的脉冲则不能保证触发中断。如果选择低电平触发方式,那么低电平必须保持到当前指令执行完成。中断完成后回到被中断的位置。外部中断控制寄存器 MCUCR 外部中断控制寄存器 A 包括决定中断触发方式的控制位。通用中断控制寄存器 GICR,控制外部中断使能位,具体如下:10四 ICC 软件中断程序书写格式及 16 中断向量表1116 中断向量表五 实验步骤及内容:输入程序:本程序一开始是 IO 口中的 A 口以流水灯工作,一旦有外部中断请求,就是 B 口以流水灯工作,循环一次后回到被中断处继续运行。程序如下:#include #include /*延时 usvoid delay_us(int t)dot-;while(t1);/*延时 msvoid delay_ms(unsigned int t)while(t!=0)delay_us(1142);t-;12#pragma interrupt_handler INT_0:2 /外部中断 0 执行函数void INT_0 (void) PORTC=0XFF;PORTB=0X01;delay_ms(1000);PORTB=0X02;delay_ms(1000);PORTB=0X04;delay_ms(1000);PORTB=0X08;delay_ms(1000);PORTB=0X10;delay_ms(1000);PORTB=0X20;delay_ms(1000);PORTB=0X40;delay_ms(1000);PORTB=0X80;delay_ms(1000);PORTB=0XFF;void main(void)DDRA = 0xff; /*输出 */DDRB = 0xff; /*输出 */DDRC = 0xff; /*输出*/DDRD = 0xff; /*输出*/PORTA=0XFF;PORTB=0XFF;PORTC=0XFF;PORTD=0XFF; MCUCR=0X02; /定义外部中断 INT0 为下降沿产生中断请求GICR=0X40; /中断屏蔽寄存器开 INT0SEI(); /*开全局中断for (;) PORTA=0X01;delay_ms(1000);PORTA=0X02;delay_ms(1000);PORTA=0X04;delay_ms(1000);13PORTA=0X08;delay_ms(1000);PORTA=0X10;delay_ms(1000);PORTA=0X20;delay_ms(1000);PORTA=0X40;delay_ms(1000);PORTA=0X80;delay_ms(1000);实验四 数码 LED 实验一、 实验目的:1、了解数码管的原理;2、熟悉数码管的使用;3、掌握外部中断和数码管动态显示的应用。二 、 实验仪器:ATmage16 实验板 一块PC 机 一台三、 实验原理:数码管原理图如下:多个数码管的动态显示是利用人的眼睛在瞬间无法识别的原理来实现在,如电灯也是利用这个原理。四、 实验步骤及内容:这个程序是数码管动态显示,按 INT0 键加 1,一直到数码管显示为 9999 再重新计数。实验程序如下:#include #include 14int led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*显示符 0,1,2,3,4,5,6,7,8,9,unsigned int i;int g,s,b,q;/*延时 usvoid delay_us(int t)dot-;while(t1);/*延时 msvoid delay_ms(unsigned int t)while(t!=0)delay_us(1142);t-;#pragma interrupt_handler INT_0:2 /外部中断 0 执行函数void INT_0 (void) i+;delay_ms(15);/*键盘防抖动void main(void)DDRD = 0xff; /* all outputs */DDRC = 0xff; /* all outputs */DDRB = 0xff; /*all outputs */PORTB=0XFF;PORTC=0X00;PORTD=0XFF;MCUCR=0X02; /定义外部中断 INT0 为下降沿产生中断请求GICR=0X40; /中断屏蔽寄存器开 INT0SEI(); /*开全局中断for (;)/*显示按键次数 i f(i9999)i=0;g=i%10; /取个位,取余PORTC=0X01;PORTB=ledg;delay_ms(1);15s=i%100/10; /取十位PORTC=0X02;PORTB=leds;delay_ms(1);b=i%1000/100; /取百位PORTC=0X04;PORTB=ledb;delay_ms(1);q=i%10000/1000; / 取千位PORTC=0X08;PORTB=ledq;delay_ms(1);/* for (i=0;i#include /延时/void delay_us( int t) /usdot-;while(t1);void delay_ms(unsigned int t) /mswhile(t!=0)delay_us(1142);t-;unsigned char led= 0X3F,/*0*/ /七段译码表0X06,/*1*/0X5B,/*2*/0X4F,/*3*/0X66,/*4*/0X6D,/*5*/0X7D,/*6*/0X07,/*7*/0X7F,/*8*/0X6F,/*9*/0X77,/*A*/0X7C,/*b*/0X39,/*C*/0X5E,/*d*/0X79,/*E*/170X71,/*F*/; /显示符 0,1,2,3,4,5,6,7,8,9,unsigned char led_buff=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f; /显示缓冲区unsigned char scan_key(void) /不做按键释放检查的键盘扫描函数unsigned char i,temp;DDRD=0X0F; /设置 D 口的高四位为输入,低四位为输出PORTD=0XFf; /D 口输出高电平for(i=0;i#include #define VREF 4.950unsigned int V=0;float Vin=0;unsigned char led=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F; /0-9unsigned char led_putff=0X3F,0X3F,0X3F,0X3F;/*延时 usvoid delay_us(int t)dot-; while(t1);/*延时 msvoid delay_ms(unsigned int t)while(t!=0)delay_us(1142);t-;/
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:0560、ATMEGA16单片机班培训实例
链接地址:https://www.renrendoc.com/p-6126944.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!