AVR复习资料整理.docx

合集下载

AVR学习笔记

AVR学习笔记

AVR学习笔记前言:学习一块单片机,我们要几项准备工作:1.开发软件(熟悉开发软件操作流程,基本上开发软件都差不多的,学会了一款,再学其它的就会很顺手了(新建工程、新建设计文件、把源文件加到工程里面、最后设置一些参数)2.编程语言(这个就不用说了,先学语法规则,能够熟练掌握到自己写的代码没有语法错误,然后再逐步把自己的想法驾驭到编程语言上)3.硬件(硬件包括的范围很广,不仅包括你所要学的单片机还有单片机的外围电路所用到的器件),最好要学一款仿真软件。

我们始终要记住学单片机绝对不可以纸上谈兵,一定要实践,就是把自己所写的代码下载到板上,看看实际效果。

开发板可以买,也可以自己做!我喜欢自己做。

实验一:点亮发光二极管1.avr单片机的i/o端口1)学习单片机的主要任务就是了解、掌握单片机i/o端口的功能,以及如何正确设计这些端口与外围电路的连接,从而能够组成一个嵌入式系统,并编程、管理和运用他们完成各种各样的任务。

2)atmega16有4个8位的双向i/o端口pa、pb、pc、pd,他们对外对应32个i/o引脚,每一位都可以独立地用于逻辑信号的输入和输出。

在5v工作电压下,输出高点平时,每个引脚可输出达20ma的驱动电流;而输出低电平时,每个引脚可吸收最大为40ma的电流,可以直接驱动发光二极管(一般的发光二极管的驱动电流为10ma)和小型继电器等小功率器件。

avr大部分的i/o端口都具备双重功能(有的还有第三功能)。

其中第一功能是作为数字通用i/o接口使用,而复用的功能可分别与片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的i/o口,如定时器、计数器、串行接口、模拟比较器、捕捉器、usart、spi等。

3)avr单片机的每组i/o口都搭载存有三个8为寄存器,分别就是:方向掌控寄存器ddrx、数据寄存器portx、输出插槽寄存器pinx(x=a/b/c/d).i/o口的工作方式和整体表现特征由这三个i/o寄存器掌控。

第二章 AVR系列单片机的结构、时序及指令系统

第二章 AVR系列单片机的结构、时序及指令系统

• • Bit 7 – I: 全局中断使能 • I 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。 如果I 清零,则不论单独中断标志置位与否,都不会产生中断。任意一个 中断发生后I 清零,而执行RETI指令后I 恢复置位以使能中断。I 也可以通 过SEI 和CLI 指令来置位和清零。 • • Bit 6 – T: 位拷贝存储 • 位拷贝指令BLD 和BST 利用T 作为目的或源地址。BST 把寄存器的某一 位拷贝到T,而BLD 把T 拷贝到寄存器的某一位。 • • Bit 5 – H: 半进位标志 • 半进位标志H 表示算术操作发生了半进位。此标志对于BCD 运算非常有 用。 • • Bit 4 – S: 符号位, S = N ⊕ V • S 为负数标志N 与2 的补码溢出标志V 的异或。 • • Bit 3 – V: 2 的补码溢出标志 • 支持2 的补码运算。 • • Bit 2 – N: 负数标志 • 表明算术或逻辑操作结果为负。 • • Bit 1 – Z: 零标志 • 表明算术或逻辑操作结果为零。 • • Bit 0 – C: 进位标志 • 表明算术或逻辑操作发生了进(1)运算逻辑单元 )运算逻辑单元ALU • 顾名思义,运算逻辑单元ALU 的作用是进行运算,包括算 术运算和逻辑运算。AVR ALU 与32 个通用工作寄存器直 接相连。寄存器与寄存器之间、寄存器与立即数之间的 ALU 运算只需要一个时钟周期。ALU 操作分为3 类:算 术、逻辑和位操作。此外还提供了支持无/ 有符号数和分 数乘法的乘法器,一次乘法操作的时间为2个指令周期, 而51系列单片机里面,做一次乘法运算需要4个指令周期。 • (2)状态寄存器 ) • 状态寄存器包含了最近执行的算术指令的结果信息。这些 信息可以用来改变程序流程以实现条件操作(如表2-1所 示)。如指令集所述,所有ALU 运算都将影响状态寄存器 的内容。这样,在许多情况下就不需要专门的比较指令了, 从而使系统运行更快速,代码效率更高。在进入中断服务 程序时状态寄存器不会自动保存,中断返回时也不会自动 恢复。这些工作需要软件来处理。

AVR学习笔记

AVR学习笔记

一、AVR单片机位操作
(1)置位。

要将R的第3位置1,其他位不变,可以这样做:R |= (1<<3),其中“1<<3”
的结果是“0b00001000”,R |= (1<<3)也就是R=R|0b00001000,任何数和0相或不变,任何数和1相或为1,这样达到对R的第3位置1,但不影响其他位的目的。

(2)清位。

要将R的第2位清0,其他位不变,可以这样做:R &= -(1<<2),其中“-(1<<2)”
的结果是“0b11111011”,R&=-(1<<2)也就是R=R&0b11111011,任何数和1相与不变,任何数和0相与为0,这样达到对R的第2位清0,但不影响其他位的目的。

(3)获得某一位的状态。

(R>>4) & 1,是获得R第4位的状态,“R>>4”是将R右移4位,将R的第4位移至第0位,即最后1位,再和1相与,也就是和0b00000001相与,保留R最后1位的值,以此得到第4位的状态值。

二、AVR单片机中断向量表
三、AVR单片机引脚图。

AVR 学习

AVR 学习

第一章通用I/O端口的结构与应用1 AVR单片机I/O口引脚配置表设计电路时,如果良好利用AVR内部的I/O口上拉电阻,可节省外部的上拉电阻。

注:I/O口在使用时还需注意一组端口的电流综合不能超过一定限额,具体数值请查询数据手册。

例:#include <avr/io.h> //AVR-LIBC总控头文件Unsigned char port_value; //定义一个无符号字符型变量DDRD = 0xFF; //设置PD0~PD7均为输出端口PORTD = 0xA3; //在PD端口输出0xA3(0b10100011)DDRD = 0x00; //设置PD0~PD7均为输入端口port_value = PIND; //读入PD端口状态到变量port_value2 端口的位操作在以一个完整字节操作PC口相关寄存器是,ATmega48单片机会自动屏蔽对于“不存在”的PC6、PC7的操作,免除了我们使用位操作。

在使用取反运算是,需要将其与“逻辑非”运算符“!”区别。

逻辑非操作只关心操作数是否为0,若为0就返回一个非0的值,取反操作则是对操作数执行“按位逐个取反”的操作。

在macros.h头文件中,定义了一个“#define BIT(x)(1<<(x))”宏,用该宏来操作位变量,编译后生成的代码质量更高。

如下例:#define PORTA0 0#define PORTA1 1#define PORTA2 2#define PORTA3 3#define PORTA4 4#define PORTA5 5#define PORTA6 6#define PORTA7 7在使用前,应在头文件加入“#include macros.h”定义。

如要将PORTA7清零,可以使用以下语句:PORTA&=~BIT(PORTA7);如果需要将PORTA7置位,可以使用以下语句:PORTA|=BIT(PORTA7);这样对I/O端口进行位操作,比较直观,且生成的代码能够充分利用AVR对I/O端口操作的位指令,生成高质量的代码。

AVR单片机1资料

AVR单片机1资料
AVR单片机应用技术
主讲:徐光柱 QQ:1006106948 Email:1006106948@ 办公室:电气信息楼614 实验地点:电气信息楼217
1
AVR单片机概述

总学时:40(24+16) 考核方式:笔试+平时 期末考试:70% 平时考勤:10% (旷课一次扣2分) 实验成绩:20%
本课程教学目标


掌握AVR单片机的体系结构、开发环境、 程序设计、产品制作的基础知识与核心 技术 初步培养利用AVR单片机进行项目开发 的能力
Contents
走近单片机
开发工具简介
思考与练习
工欲善其事 必先利其器



软件基础:c语言编程 CVAVR 、ICCAVR 、AVRStudio软件的使用 硬件基础:模拟、数字电路 单片机原理与应用 是一门软硬件相结合的课程
我们身边的单片机
何为单片机

一片半导体硅片集成 : 中央处理
单元( CPU )、存储器( ROM
和RAM)、I/O 接口等

硬件:体积小巧、功能完善

软件:通过编程,准确、迅速、
高效完成程序设计者规定的任务
Atmega16单片机封装图
直流电机调速系统
多点定时器
温度监测报警器
多路抢答器
计算机及其外设接口
认识单片机

主机进一步缩小,尺寸压缩到mm*mm级别,
由于尺寸的缩小,我们可以把接口也更改 一下,改为引脚放在迷你“主机”的两侧, 再给他取一个新的名字:“微型计算机” 或者单片机,英文叫: Micro Controller Unit (MCU)


认识单片机

单片机是一种集成电路芯片,具有完整计 算机的全部功能 单独完成现代工业控制所要求的智能化功 能,是一种在线实时控制的微型计算机

AVR学习笔记

AVR学习笔记

PC = progammer counter //程序计数器ACC = accumulate //累加器PSW = progammer status word //程序状态字SP = stack point //堆栈指针DPTR = data point register //数据指针寄存器IP = interrupt priority //中断优先级IE = interrupt enable // 中断使能TMOD = timer mode //定时器方式 (定时器/计数器控制寄存器)ALE = alter (变更,可能是)PSEN = progammer saving enable //程序存储器使能(选择外部程序存储器的意思) EA = enable all(允许所有中断)完整应该是 enable all interruptPROG = progamme (程序)SFR = special funtion register //特殊功能寄存器TCON = timer control //定时器控制PCON = power control //电源控制MSB = most significant bit//最高有效位LSB = last significant bit//最低有效位CY = carry //进位(标志)AC = assistant carry //辅助进位OV = overflow //溢出ORG = originally //起始来源DB = define byte //字节定义EQU = equal //等于DW = define word //字定义E = enable //使能OE = output enable //输出使能RD = read //读WR = write //写中断部分:INT0 = interrupt 0 //中断0INT1 = interrupt 1//中断1T0 = timer 0 //定时器0T1 = timer 1 //定时器1TF1 = timer1 flag //定时器1 标志 (其实是定时器1中断标志位)IE1 = interrupt exterior //(外部中断请求,可能是)IT1 = interrupt touch //(外部中断触发方式,可能是)ES = enable serial //串行使能ET = enable timer //定时器使能EX = enable exterior //外部使能(中断)PX = priority exterior //外部中断优先级PT = priority timer //定时器优先级PS = priority serial //串口优先级第一部分二极管发光的条件是正负极相差达1V以上。

AVR培训整理

AVR—产品培训及市场分析市场部:赵振华一、产品和市场分析AVR产品以高性能的8位MCU为主,我们就从8位MCU谈起。

MCU按照总线位数来说,可分为4位、8位、16位、32位和64位,由于制造工艺的改进,8位MCU与4位MCU的价格相差无几,8位MCU已成低端市场的主流。

32位MCU以基于ARM内核的产品为代表,是增长较快的市场。

根据赛迪顾问提供的数据,2006年我国MCU市场规模达到62.9亿PCS。

从MCU的进程和市场占有率来看,8位MCU仍然处在绝对主流的地位,发展速度相对稳定;而32位MCU的增长则明显提速。

作为世界领先的民用和商用电子产品制造中心,中国已成为全球最大的微控制器(MCU)产品应用市场。

8位MCU占据主流的原因在于其功能和价格的适中性,往下打压4位MCU的发展空间,往上挤占了16位MCU性能的覆盖范围。

1.1、8位MCU概述在8位MCU领域,可谓是百家争鸣,在一些知名品牌半导体厂家的方向指引下,越来越多的后来者加入到这个行业中,竞争已至白炽化。

在这些半导体厂家的行列中,可分为三个梯队:以ATMEL、MICROCHIP、FREESCALE 、RENESAS、PHILIPS为代表形成第一梯队,引领着这个行业的技术和方向;以WINBOND、HOLTEK、SONIX、ELAN为代表台湾品牌形成第二梯队,这一梯队中台系的品牌很多,多数为仿第一梯队的IC起家,然后加上自己一些特点,形成特有的风格,以比较低的单价取代和发展第一梯队的现有市场和客户;以STC、SYNCMOS、SIGMA MICRO等为代表形成第三梯队,特点是仿制第一、第二梯队的IC,在某些特定市场,以更低的单价取代第一、第二梯队的现有客户。

1.2、AVR竞争对手分析ATMEL的AVR产品,以其优良的性能和合理的价格,在近些年的形势一路走好,发展很迅速,受到越来越多用户的青睐。

AVR在国内的行业市场中,竞争对手主要是MICOCHIP、NEC和台系的第二梯队的品牌,第三梯队目前还没有能力对AVR形成威胁。

【精品】第2章AVR单片机的基本结构

AVR单片机的基本结构单片机是构成单片机嵌入式系统的核心器件。

本章首先将介绍一般单片机的基本结构和组成,使大家对单片机芯片的内部硬件有基本了解和认识。

掌握了单片机的基本结构和组成,对学习、了解任何一种类型单片机的工作原理,编写单片机的系统软件以及和设计外围电路都是非常重要的.AVR是美国ATMEL公司推出的一款采用RISC指令的8位高速单片机。

本章将以ATmega16为主线,介绍和讲述AVR单片机内核的基本结构、引脚功能、工作方式等.深入的理解和掌握AVR的基本结构,对后续章节的学习、以及对实际的应用AVR单片机都是非常重要的。

2.1单片机的基本组成2.1.1单片机的基本组成结构单片机嵌入式系统的核心部件是单片机,其结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一片具有特定功能的单芯片计算机-单片机。

一片典型单片机芯片内部的基本组成结构如图2-1所示。

从单片机的基本组成可以看出,在一片(单片机)芯片中,集成了构成一个计算机系统的最基本的单元:如CPU、程序(指令)存储器、数据存储器、各种类型的输入/输出接口等。

CPU同各基本单元通过芯片内的内部总线(包括数据总线、地址总线和控制总线)连接。

一般情况下,内部总线中的数据总线宽度(或指CPU的字长)也是标定该单片机等级的一个重要指标。

一般讲,低档单片机的内部数据总线宽度为4位(4位机),普通和中档单片机的内部数据总线宽度一般为8位(8位机),高档单片机内部数据总线宽度为16或32位。

内部数据总线宽度越宽,单片机的处理速度也相应的提高,功能也越强.2.1.2单片机基本单元与作用下面分别对单片机芯片中所集成的各个组成部分予以简要介绍.1.MCU单元(MicrocontrollerUnit)MCU单元部分包括了CPU、时钟系统、复位、总线控制逻辑等电路.CPU是按照面向测控对象、嵌入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。

avr教程11.doc

ATmega16 减少功耗的方法试图降低AVR 控制系统的功耗时需要考虑几个问题。

一般来说,要尽可能利用睡眠模式,并且使尽可能少的模块继续工作。

不需要的功能必须禁止。

下面的模块需要特殊考虑以达到尽可能低的功耗。

模数转换器使能时, ADC 在睡眠模式下继续工作。

为了降低功耗,在进入睡眠模式之前需要禁止ADC。

重新启动后的第一次转换为扩展的转换。

具体请参照P192“模数转换器”。

模拟比较器在空闲模式时,如果没有使用模拟比较器,可以将其关闭。

在ADC 噪声抑制模式下也是如此。

在其他睡眠模式模拟比较器是自动关闭的。

如果模拟比较器使用了内部电压基准源,则不论在什么睡眠模式下都需要关闭它。

否则内部电压基准源将一直使能。

请参见P189“模拟比较器”以了解如何配置模拟比较器。

掉电检测BOD如果系统没有利用掉电检测器BOD,这个模块也可以关闭。

如果熔丝位BODEN 被编程,从而使能了BOD 功能,它将在各种休眠模式下继续工作。

在深层次的休眠模式下,这个电流将占总电流的很大比重。

请参看P38“掉电检测”以了解如何配置BOD。

片内基准电压使用BOD、模拟比较器和ADC 时可能需要内部电压基准源。

若这些模块都禁止了,则基准源也可以禁止。

重新使能后用户必须等待基准源稳定之后才可以使用它。

如果基准源在休眠过程中是使能的,其输出立即可以使用。

请参见P40“片内基准电压”以了解基准源启动时间的细节。

看门狗定时器如果系统无需利用看门狗,这个模块也可以关闭。

若使能,则在任何休眠模式下都持续工作,从而消耗电流。

在深层次的睡眠模式下,这个电流将占总电流的很大比重。

请参看P40“看门狗定时器”以了解如何配置看门狗定时器。

端口引脚进入休眠模式时,所有的端口引脚都应该配置为只消耗最小的功耗。

最重要的是避免驱动电阻性负载。

在休眠模式下I/O 时钟clkI/O 和ADC 时钟clkADC 都被停止了,输入缓冲器也禁止了,从而保证输入电路不会消耗电流。

AVR复习资料

AVR单片机复习题第一章单片机前入式系统概述填空:1.单片机的基本组成结构包括: CPU 、程序存储器、数据存储器、输入/输出接口等部分,CPU与各基本单元通过内部地址总线、数据总线和控制总线相连接。

2.ATMEL公司生产的单片机有tinyAVR、megaAVR和XMEGA三大主要系列,tinyAVR属于低档产品,megaAVR属于中档产品,XMEGA属于高档产品。

3.按照应用方式的不同可将计算机分为通用计算机系统和嵌入式计算机系统。

4.嵌入式计算机系统具有面向控制对象设计、隐藏于应用系统中、控制现场可靠运行、优良的控制能力和低的能源消耗特征。

5.ATmega16单片机内部集成了32字节通用寄存器、64字节I/O寄存器、16KB程序寄存器、1KB数据存储器和512字节EEPROM数据存储器。

选择:1.A TMEL公司生产的单片机以三大系列为主,其中TinyAVR 属于(A)A.低档单片机 B.中档单片机C.高档单片机 D.普通单片机2.A TMEL公司生产的单片机以三大系列为主,其中megaAVR 属于(B)A.低档单片机 B.中档单片机C.高档单片机 D.普通单片机3.A TMEL公司生产的单片机以三大系列为主,其中XMAGA 属于(C)A.低档单片机 B.中档单片机C.高档单片机 D.普通单片机4.单片机的基本结构包括: CPU、程序存储器、( A )、输入/输出接口等部分。

A.数据存储器 B.FlashC.接口控制器 D.EEPROM5.单片机前入式系统的主要应用领域为:智能家居家电、智能机电一体化设备及产品、智能仪器仪表和( C )等。

A.农作物种植 B.工业现场C.测控系统 D.车辆自动驾驶简答:1.什么是ISP技术, 采用ISP技术的单片机有什么优点?2.什么是IAP技术, IAP与ISP的本质区别是什么?说明其主要用途。

3.什么是嵌入式系统?嵌入式系统由呢些主要特征?第二章 AVR单片机的基本结构填空:1.单片机的三总线结构是指:数据总线、地址总线和控制总线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AVR单片机复习知识点整理第一章:1.单片机最小系统包含电源、时钟、复位电路。

2. 单片机的基本组成结构包括:CPU、程序存储器、数据寄存器、输入,输出接口3. ATmega16包含16KB 程序存储器,1KB 数据存储器和 512字节EEPROM。

4. ATMEL TinyAVR低挡 megaAVR中档XMEGA高档5. 单片机的三总线结构是指:数据总线、地址总线、控制总线。

6. FLASH ROM支持用户多次擦除和写入代码,可以实现大于1万次的读写或写入。

单片机的数据存储器包含RAM和 EEPROM两大部分,其中 EEPROM是RAM的补充。

7. EEPROM擦写次数大于10万次,掉电后不丢失数据、通过系统程序可以随机修改。

8. ATmega16的DIP封装共有 40 引脚,其中共有 32个I/O 口线。

9.中断向量表在FLASH ROM的最前端,中断的向量地址越小,中断的优先高。

10. ATmega16的工作电压是 4.5~5.5V ,所能使用的最高晶振频率16MHZ 。

11. ATmega16可以使用内部晶振,晶振频率为1M 、2M 、4M、8M 赫兹。

12. ATmega16共有40 引脚,其中:第10引脚为VCC第31引脚为GNDAVCC引脚是30引脚是片内AD的电源输入引脚AREF引脚是32引是片内AD的参考电压第11,第31引脚是GND第13和12引脚是XTAL1.XTAL2,作用是片内反向放大器的输入终端复位引脚是9引脚,名称是RESET,当在该引脚上出现一个大于1.5us的低电平,单片机复位。

13.AVR指令长度16位称为一字,PC指针为13位,FLASH存储器是8KB。

AVR不能扩展外部程序存储器,这是因为程序寄存器满足片内8K字节的Flash程序存储器空间直接寻址的需要。

18. ATmega16配置系统时钟的熔丝位共有5个位,名称分别是CKOPT、CKSEL{3:0}。

19.AVR单片机每组I/O都配置了3个8位的寄存器,分别是DDRx PORTx.PINx20.AVR单片机的DDRX寄存器的作用是控制I/O口的输入输出方式PORTX寄存器的作用是当I/O输入时,是否使用上拉电阻,内部输出时,设置I/O口输出电平DDRX的值设为1时,I/O口输出,设为0时,I/O口输入。

21.共阳数码管的公共级接VCC且每段的电压为5 时,数码管点亮。

22.共阴数码管的公共级接GND 且每段的电压为0 时,数码管点亮。

23.单片机初始化时,I/O口的状态是输入状态,不使用内部的上拉电阻。

24.数码管静态显示的优点是显示稳定,显示亮度高,程序简单(对)25.数码管动态显示的优点是占用的硬件资源小,耗电量小。

(对)26.数码管动态显示的缺点是稳定性差,程序设计复杂,MCU负担重。

(对)27.数码管静态显示的缺点是占用硬件资源多,耗电量大。

(对)程序说明题:#include <mega16.h>语句功能:添加#include < mega16.h >使程序可以使用特殊功能寄存器#include <delay.h>Void main(){Unsigned char position=0;PORTA=0xff;DDRA=0xff; 语句功能:将PA口工作设置为输出方式While(1){PORTA= ~(a<<position); 语句功能:将a左移position位If(++position>=8)position=0;Delay_ms(1000); 语句功能:延时1S}}1.程序中position变量的作用是?答:选择哪一位的发光二极管点亮2.说明程序功能。

答:循环点亮实现流水灯例6.4#include <mega16.h>#include <delay.h>flash char led_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F ,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};bit point_on = 0;void main(void){char i = 0;PORTA=0xFF;DDRA=0xFF; 语句功能:PA口工作为输出方式while (1){for (i=0;i<=15;i++){PORTA = led_7[i]; 语句功能:发送数码管段选if (point_on) PORTA |= 0x80;delay_ms(1000);}point_on = ~point_on;语句功能:小数点闪烁};}说明程序功能:数码管静态显示实验显示0~F,每个字符显示1S。

小数点间隔点亮中断:1.ATmega16中共含有21个中断源,有一个中断源是不可屏蔽中断称为向量号为12.单片机相应中断A的条件是:响应A中断:全局中断允许标示AND中断A允许标示AND中断A标示3个外部中断名称为 INTO 、INT1 、 INT2。

4.MCUCR寄存器是MCU控制寄存器用于设置INTO和INT1的中断触发方式。

5.GICR寄存器是用中断控制寄存器,用于设置外部中断的中断允许位。

6.GIFR寄存器是通用中断标示寄存器,用于设置外部中断的中断允许位。

当有满足中断条件的事件出现时,对应的中断标志位为1。

7. 中断标志位的清除方法是对其写18. 全局中断使能位是SREG寄存器中的第7位即 I位。

、I位(bit7)最高位:全局只能高端使能位,中断中控制开关。

该位置1时,打开总中断,置0时所有终端被禁止,CPU不响应任何中断请求。

**************************题目1**************************************/#include <iom16v.h>char led_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x 7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};char counter;interrupt [EXT_INT0]void ext_int0_isr(){if (++counter>=16)counter = 0;}void main(void){PORTA=0xFF;DDRA=0xFF;GICR|=0xC0; //允许INT0 INT1 中断MCUCR=0x0A; //语句功能 INT0,INT1下降沿触发发GIFR=0xC0; // 清除INT0,INT1中断标示位counter = 0; //#asm("sei") //语句功能使能全局中断while (1){PORTA = led_7[counter]; //语句功能显示计数单元};}说明程序功能:一个8段数码管显示0~F16个十六进制的数字,当系统上电时,显示0,当按1次按键,显示数字加1,依次类推,当第15次按键式时,显示“F”,第16次按键时,显示又从0开始,当按键按下,显示数值加12.ATmega16共有三个定时器,其中16位的定时器是T/C1,8位的定时器是T/C0,T/C23.AVR的8位定时器/计数器有4种工作方式4.TCNT0是定时器0的计数寄存器,作用是对定时器0的脉冲计数。

5.OCR0是定时器0的输出比较寄存器,作用是存放定时器0的比较匹配值6.T/C0的计数时钟源可以来自内部时钟和外部时钟两种。

7.T/C0的计数时钟源的选择由 TCCRO中的CS02,CS01,CS00三个位确定。

8.T/C0工作在普通模式时,初值由TCNTO设置,满值255。

CTC模式时,初值为0,满值为OCRO设置。

快速PWM模式时,初值为0,满值 OXFF在正向比较匹配输出模式下,当TCNT0与OCRO比较匹配时,清零OC0;当TCNTO从OXFF到OXOO时,置为OC0 。

11.T/C0工作在相位修正PWM模式时,初值为0,满值OXFF在正向比较匹配输出模式下,当 TCNT0的计数值与OCRO的值比较匹配时,清零OC0;当TCNTO的值与OCRO相同时,置为OC01.定时器0快速PWM模式的频率是(A)A、f=fclk /256NB、f=fclk /510NC、f=fclk /2N(OCR0+1)D、f=fclk /2N(满-初+1)2.定时器0相位PWM模式的频率是(B)A、f=fclk /256NB、f=fclk /510NC、f=fclk /2N(OCR0+1)D、f=fclk /2N(满-初+1)3.定时器0普通模式的频率是( D )A、f=fclk /256NB、f=fclk /510NC、f=fclk /2N(OCR0+1)D、f=fclk /2N(满-初+1)4.定时器0的CTC模式的频率是(C)A、f=fclk /256NB、f=fclk /510NC、f=fclk /2N(OCR0+1)D、f=fclk /2N(满-初+1)判断:1.定时器0的计数寄存器是TCNT0,比较匹配寄存器是OCR0。

(对)4.定时器1的计数寄存器是TCNT1A,TCNT1B。

(对)5.当TCNT0的值和OCR0的值匹配时,提出比较匹配中断(对)8.PWM方波的参数有频率、占空比和相位,其中频率和占空比是主要参数。

(对)10.定时器可以有两个时钟来源,一个是外部时钟,一个是内部时钟。

(对)12.定时器做外部时钟来源时,N的取值只有1。

(对)13.定时器做内部时钟来源时,N的取值有1,2,4,8。

(对)第二部分汇编语言1.ATmega16共有131条指令,按功能可分为5大类:•算术和逻辑运算指令(28条);•比较和跳转指令(36条);•数据传送指令(35条);•位操作和位测试指令(28条);•MCU控制指令(4条)。

2.$和0x均是十六进制的表示方法。

3.INC Rd;Rd←Rd + 1 0≤d≤31•寄存器Rd 的内容加1,结果送目的寄存器Rd 中。

该操作不改变SREG 中的C 标志,所以允许INC 指令在多倍字长计算中用作循环计数•当对无符号数操作时,仅BREQ(相等跳转)和BRNE(不相等跳转)指令有效(即跟所期望的一样)。

当对二进制补码值操作时,所有的带符号跳转指令都有效注意:没有带进位立即数加法指令!•Example:lp:cp r24,r19;单步执行到此行,开始时在调试窗口的对应寄存器输入数据;第一次操作设:(r24)=$AA,(r19)=$55;第二次操作设:(r14)=$11, (r19)=$55brsh lp1 ;(r24)≥(r19)则转lp1, (r24)小于(r19)顺执rjmp lp2 ;lp1:sub r24,r19 ;(r24)相减(r19)brne lp ;(r24)不为0 转,为0 顺执lp2:adiw r24,$11 ;立即数加,要求d∈{24,26,28,30}, 0≤K≤63rjmp lp ;反复测试Example:sub r0,r2; 单步执行到此行,在调试窗口的对应寄存器输入数据;并打开状态寄存器SREG 观察窗口;(r0)=$aa,(r2)=$aa;(r0)=$77,(r2)=$80lp: tst r0; 测试寄存器r0 是否是零或是负,breq lp1 ;如果零标志(Z)位为1,则跳转,为0 顺执dec r0;-1rjmp lp ; 再测试lp1:inc r0;+1rjmp lp ;再测试1、寄存器逻辑异或EOR – Exclusive OR•EOR Rd,Rr ; Rd ← Rd⊕Rr , 0 ≤ d ≤ 31, 0 ≤ r ≤ 31, PC ← PC + 1•完成寄存器Rd 与寄存器Rr 的内容逻辑异或操作,结果进目的寄存器Rd 中。

相关文档
最新文档