INTO和INT1两个外部中断同时出现
- 格式:doc
- 大小:20.50 KB
- 文档页数:2
AVR单片机考试题及答案第一章(较易)填空:1. 单片机的基本组成结构包括: CPU 、、数据寄存器、输入接口,输出接口五大部分。
2. 哈佛结构是指,计算机由五大部分构成,五大部分分别是:运算器、控制器、存储器、输入设备、输出设备。
3. ATmega16包含 16KB 程序存储器,1KB 数据存储器和512字节的EEPROM。
4. ATMEL公司生产的单片机以三大系列为主,分别是:tinyAVR、megaAVR、XMEGA。
5. ATMEL公司生产的TinyAVR是属于低挡单片机。
6. ATMEL公司生产的megaAVR是属于中档单片机。
7. ATMEL公司生产的XMEGA是属于高档单片机。
选择:1. ATMEL公司生产的单片机以三大系列为主,其中TinyAVR是属于( A )A、低档单片机B、中档单片机C、高档单片机D、普通单片机2. ATMEL公司生产的单片机以三大系列为主,其中megaAVR是属于( B )A、低档单片机B、中档单片机C、高档单片机D、普通单片机3. ATMEL公司生产的单片机以三大系列为主,其中XMEGA是属于( C )A、低档单片机B、中档单片机C、高档单片机D、普通单片机4. 单片机的基本组成结构包括:CPU、程序存储器、、输入接口、输出接口五大部分( B )A、EEPROMB、数据存储器C、ROMD、堆栈第一章(较易)问答:1.什么是ISP技术,采用ISP技术的单片机有什么优点?2.说明单片机的RAM,FlashROM,EEPROM用途和特点?第二章()填空:1.单片机的三总线结构是指:数据总线、地址总线、控制总线。
2. ATmega16包含 16KB FLASH ROM, 1KB RAM和 512字节的EEPROM。
3. FLASH ROM支持用户多次擦除和写入代码,可以实现大于1万次的写入 (填读写或写入)。
4. 单片机的数据存储器包含 RAM 和 EEPROM 两大部分,其中 EEPROM 是RAM 的补充。
选择题1.内部RAM中的位寻址区定义的位是给(A) 位操作准备的(B) 移位操作准备的(C) 控制转移操作准备的(D) 以上都对2. 89C51与87C51的区别在于(A) 内部程序存储器的类型不同(B) 内部数据存储器的类型不同(C) 内部程序存储器的容量不同(D) 内部数据存储器的容量不同3.以下运算中对溢出标志OV没有影响或不受OV影响的运算是(A) 逻辑运算 (B) 符号数加减法运算(C) 乘法运算 (D) 除法运算4.单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为16位,因此其寻址范围是(A) 4 KB (B) 64 KB (C) 8 KB (D) 128 KB5.PC的值是(A) 当前指令前一条指令的地址(B) 当前正在执行指令的地址(C) 下一条指令的地址(D) 控制器中指令寄存器的地址6. 提高单片机的晶振频率,则机器周期()A、不变B、变长 C 、变短 D、不定7. 将累加器中的数据送到片外RAM40H,可执行指令( )(A) MOVX 40H,A(B) MOV R6,#40H MOV @R6,A(C) MOV R0,#40H (D) MOV R6,#40HMOVX @R0,A MOVX @R6,A8. 下列符号中只有( )是正确的MCS-51指令。
(A) PUSH R0 (B) PUSH 40H(C) POP @R0 (D) POP #40H9. 对程序存储区数据传送,应采用助记符为( )(A) MOV (B) MOVX (C) MOVC(D) PUSH10. 下列转移范围是2KB的控制转移指令是( )(A) SJMP rel (B)LJMP addr16 (C) AJMP addr11(D) JMP @A+DPTR11. 关于指针DPTR,下列说法正确的是()A.DPTR是CPU和外部存储器进行数据传送的唯一桥梁B.DPTR是一个16位寄存器C.DPTR不可寻址D.DPTR是由DPH和DPL两个8位寄存器组成的 E.DPTR的地址83H 12.当PSW=10H时,R6的字节地址为( )。
例2 利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms 的方波,采用中断方式,设系统时钟频率为12 MHz。
解:1、计算计数初值X:由于晶振为12 MHz,所以机器周期Tcy为1 s。
所以:N=t/ Tcy =10×10-3 / 1×10-6=10000X=65536-10000=55536=D8F0H即应将D8H送入TH0中,F0H送入TL0中2、求T0的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;ORG 0000HLJMP MAIN ;跳转到主程序ORG 000BH ;T0的中断入口地址LJMP DVT0 ;转向中断服务程序ORG 0100HMAIN:MOV TMOD,#01H ;置T0工作于方式1MOV TH0,#0D8H ;装入计数初值MOV TL0,#0F0HSETB ET0 ;T0开中断SETB EA ;CPU开中断SETB TR0 ;启动T0SJMP $ ;等待中断DVT0:CPL P1.0 ;P1.0取反输出MOV TH0,#0D8H ;重新装入计数值MOV TL0,#0F0HRETI ;中断返回END•2、串行口方式1的发送和接收例7-4:89C51串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,采用奇校验方式,要求传送的波特率为1200b/s。
编写有关的通信程序。
解:7位ASCII码加1位奇校验共8位数据,故可采用串行口方式1。
89C51单片机的奇偶校验位P是当累加器A中1的数目为奇数时,P=1。
如果直接把P 的值放入ASCII码的最高位,恰好成了偶校验,与要求不符。
因此,要把P的值取反以后放入ASCII码最高位,才是要求的奇校验。
•2、串行口方式1的发送和接收•双工通信要求收、发能同时进行。
收、发操作主要是在串行接口进行,CPU只是把数据从接收缓冲器读出和把数据写入发送缓冲器。
3.1 AT89C51系列单片机介绍3.1.1 AT89C51系列基本组成及特性AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。
而这种单片机对开发设备的要求很低,开发时间也大大缩短。
AT89C51基本功能描述如下:AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。
只要程序长度小于4k, 四个I/O口全部提供给用户。
可用5V电压编程,而且写入时间仅10毫秒, 仅为8751/87C51 的擦除时间的百分之一,与8751/87C51的12V电压擦写相比, 不易损坏器件, 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
AT89C51 芯片提供三级程序存储器锁定加密,提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。
另外,AT89C51 还具有MCS-51系列单片机的所有优点。
128×8 位内部RAM, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。
AT89C51有间歇、掉电两种工作模式。
间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU可根据工作情况适时地进入睡眠状态, 内部RAM和所有特殊的寄存器值将保持不变。
单片机外部中断详解及程序单片机在自主运行的时候一般是在执行一个死循环程序,在没有外界干扰(输入信号)的时候它基本处于一个封闭状态。
比如一个电子时钟,它会按时、分、秒的规律来自主运行并通过输出设备(如液晶显示屏)把时间显示出来。
在不需要对它进行调校的时候它不需要外部干预,自主封闭地运行。
如果这个时钟足够准确而又不掉电的话,它可能一直处于这种封闭运行状态。
但事情往往不会如此简单,在时钟刚刚上电、或时钟需要重新校准、甚至时钟被带到了不同的时区的时候,就需要重新调校时钟,这时就要求时钟就必须具有调校功能。
因此单片机系统往往又不会是一个单纯的封闭系统,它有些时候恰恰需要外部的干预,这也就是外部中断产生的根本原由。
实际上在第二个示例演示中,就已经举过有按键输入的例子了,只不过当时使用的方法并不是外部中断,而是用程序查询的方式。
下面就用外部中断的方法来改写一下第二个示例中,通过按键来更改闪烁速度的例子(第二个例子)。
电路结构和接线不变,仅把程序改为下面的形式。
#include ;unsigned int t=500; //定义一个全局变量t,并设定初始值为500次//===========延时子函数,在8MHz晶振时约1ms=============void delay_ms(unsigned int k){unsigned int i,j;for(i=0;i<k;i++){for(j=0;j<1140;j++);}}//============主函数==================================void main( void ){DDRB = 0xFF; //设置端口B为输出方向PORTB = 0xFF; //设置端口B的输出为全高电平DDRD = 0x00; //设置端口D为输入方向PORTD = 0xFF; //设定端口D为内部上拉方式,无信号输入时处于高电平状态MCUCR = 0x0A; //设定INT0、INT1为下降沿触发GICR = 0xC0; //使能INT0、INT1中断SREG = 0x80; //使能总中断while(1){PORTB = 0x55; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个msPORTB = 0xAA; //让接在端口B上的LED显示01010101 delay_ms(t); //延时t个ms}}//============中断函数(外部0)==========================#pragma vector = INT0_vect__interrupt void INT0_Server(void){t = 100; //设定t的值为100次}//============中断函数(外部1)==========================#pragma vector = INT1_vect__interrupt void INT1_Server(void){t = 500; //设定t的值为500次}把上述程序进行编译并下载到单片机中,可以看到结果与第二个示例中的完全一致。
单片机C语言程序设计:INT0 中断计数来源:21ic作者:关键字:INT0单片机C语言程序设计/* 名称:INT0 中断计数说明:每次按下计数键时触发INT0 中断,中断程序累加计数,计数值显示在 3 只数码管上,按下清零键时数码管清零*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int//0~9 的段码uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f ,0x6f,0x00};//计数值分解后各个待显示的数位uchar DSY_Buffer[]={0,0,0};uchar Count=0;sbit Clear_Key=P3^6;//数码管上显示计数值void Show_Count_ON_DSY(){DSY_Buffer[2]=Count/100; //获取3 个数DSY_Buffer[1]=Count%100/10;DSY_Buffer[0]=Count%10;if(DSY_Buffer[2]==0) //高位为0 时不显示{DSY_Buffer[2]=0x0a;if(DSY_Buffer[1]==0) //高位为0,若第二位为0 同样不显示DSY_Buffer[1]=0x0a;}P0=DSY_CODE[DSY_Buffer[0]];P1=DSY_CODE[DSY_Buffer[1]];P2=DSY_CODE[DSY_Buffer[2]];}//主程序void main(){P0=0x00;P1=0x00;P2=0x00;IE=0x81; //允许INT0 中断IT0=1; //下降沿触发while(1){if(Clear_Key==0) Count=0; //清0Show_Count_ON_DSY();}}//INT0 中断函数void EX_INT0() interrupt 0{Count++; 计数值递增}单片机C语言程序设计:INT0 及 INT1 中断计数来源:21ic作者:关键字:INT0INT1单片机C语言/* 名称:INT0 及INT1 中断计数说明:每次按下第 1 个计数键时,第 1 组计数值累加并显示在右边3 只数码管上,每次按下第 2 个计数键时,第2 组计数值累加并显示在左边3 只数码管上,后两个按键分别清零。
一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
智能晾衣架的设计与实现摘要随着社会的不断进展和进步,智能化的产品在不断的涌入我们的家庭生活,给人们的生活起居带来便利,但是晾衣工具还是处于比较原始的层次几乎没有什么改变,渐渐与我们的生活脱节。
对于现在城市里的大多数人们每天忙于工作,白天几乎都不在家中,当天气改变时不能准时将衣物收回。
关于这个问题,本文对智能晾衣架系统进行研究,运用DHT11温湿度传感器,光敏电阻采集到的号传输给系统处理核心单片机AT89S52,根据当时的温湿度和光线的强弱推断晾衣架是否要收回。
当空气中的相对湿度超过设定值(认为要下雨或者已经下雨)或光线变暗到一定值(认为已经天黑)时,系统会发出报警提示仆人收衣服并延时,无人应答后系统会自动发出脉冲号给电机,从而控制机械部分自动收回晾衣架。
关键词:智能AT89S52 DHT11AbstractWith the constant development and social progress, intelligent products in thecontinuous influx ofour family life, to the people's daily life more convenient, but airing tool or in a primitive level almost nochange, gradually and our life away. For now the city where most people are busy with their work everyday, hardly ever at home, when weather changes will be unable to recover. About this question, theintelligent clothes hanger system is studied, using the DHT11 temperature and humidity sensor, 5547photosensitive resistance signals transmitted to the system processing core chip AT89S52, according tothe time of the temperature and humidity and light intensity to judge whether to take back the clotheshanger. When the air relative humidity exceeds a set value ( think it's going to rain or rain ) or the dark toa certain value ( that had been dark ), the system will send out alarm host received clothes and delay, noresponse after the system will automatically send a pulsesignal to a stepping motor, so as to control themechanical parts automatically retract the clothes hanger.Key AT89S52 DHT11目录前言现在人们的糊口追求个性化、自动化,家装要求的档次愈来愈高,糊口家居兽性化、智能化的要求使智能控制技术在智能家居电子产品中获得了广泛的使用,它不仅优化了人们的糊口体式格局和居住情况,并且便利了人们有效的安排时间和节省各种能源。
一、填空:1. 单片机的基本组成结构包括: CPU 、数据寄存器、输入接口,输出接口五大部分。
2. 哈佛结构是指,计算机由五大部分构成,五大部分分别是:运算器、控制器、存储器、输入设备、输出设备。
3. ATmega16包含 16KB 程序存储器,1KB 数据存储器和512字节的EEPROM。
4. ATMEL公司生产的单片机以三大系列为主,分别是:tinyAVR、megaAVR、XMEGA。
5. ATMEL公司生产的TinyAVR是属于低挡单片机。
6. ATMEL公司生产的megaAVR是属于中档单片机。
7. ATMEL公司生产的XMEGA是属于高档单片机。
1.什么是ISP技术,采用ISP技术的单片机有什么优点?2.说明单片机的RAM,FlashROM,EEPROM用途和特点?第二章()填空:1.单片机的三总线结构是指:数据总线、地址总线、控制总线。
2. ATmega16包含 16KB FLASH ROM, 1KB RAM和 512字节的EEPROM。
3. FLASH ROM支持用户多次擦除和写入代码,可以实现大于1万次的写入 (填读写或写入)。
4. 单片机的数据存储器包含 RAM 和 EEPROM 两大部分,其中 EEPROM 是RAM 的补充。
5. ATmega16中含有 512字节的EEPROM。
它的擦写次数是大于10万次,具有掉电后不丢失数据、通过系统程序可以随机修改。
6. ATmega16的PDIP封装共有 40 引脚,其中共有 32个 I/O 口线。
ATmega16的TQFP封装共有 44 引脚,其中共有 32个 I/O 口线。
7. ATmega16的数据存储器中共有 32个8位通用工作寄存器,有 6个寄存器可以合并成为 3个 16位的寄存器。
8. 在ATmega16的通用寄存器组中,有 3个 16位的寄存器。
名称分别为: X寄存器、 Y寄存器、 Z寄存器。
9. ATmega16的中断向量表在FLASH ROM的最前端,中断的向量地址越小,中断的优先级越高。
INTO和INT1两个外部中断同时出现
ORG 0000H ;程序执行开始地址
LJMP MAIN ;跳到MAIN执行
ORG 0003H ;外中断0中断入口地址
LJMP EXT0 ;跳到EXTO执行
ORG 0013H ;外中断1中断入口地址
LJMP EXT1 ;跳到EXT1执行
MAIN: MOV SP,#60H ;将堆栈指针SP栈底设在60H
MOV IE,#10000101B ;中断允许寄存器IE控制中断源的总开放或禁止
以及对每个中断的中断开放/禁止状态。
开总中断
开关(EA=1)、开外部中断0开关(EX0=1)和
开外部中断1开关(EX1=1)
MOV IP,#00000100B ;中断优先级控制寄存器IP,设置外部中断1中断
为最高优先级
MOV TCON,#00000000B ;TCON控制寄存器,IT0=0 ,IT1=0时为电平触发。
MOV A,#00 ;传送立即数00到累加器A中
LOOP: MOV P1,A ;将A中的数送到P1口输出
ACALL TIME ;调用延时子程序TIME延时1S
CPL A ;累加器A中内容取反
LJMP LOOP ;无条件长跳转到LOOP处。
;当接在P3.2开关按钮按下时,中止当前正在执行程序,而立即进入EXT0中断服务程序。
EXT0: PUSH ACC ;中断现场保护,将累加器A内容放入栈(61H
单元)内
PUSH PSW ;中断现场保护,将程序状态字寄存器PSW内容
放入栈(62H单元)内
;RS1、RS0工作寄存器组指针,用以选择指令当前工作的寄存器组(组1)。
SETB RS0 ;RS0置1
CLR RS1 ;RS1清零0
MOV R3,#03 ;将立即数3送入R3工作寄存器中
LOOP1: MOV A,#0FFH ;传送立即数FF到累加器A中
CLR C ;将进位标志C清零。
MOV R2,#08 ;将立即数8送入R2工作寄存器中
MOV R4,#07 ;将立即数7送入R4工作寄存器中
LOOP2: RLC A ;A中的数带进位循环左移。
MOV P1,A ;将A中的数送到P1口输出
ACALL TIME ;调用延时子程序TIME延时1S
DJNZ R2,LOOP2 ;R2—1≠0跳至LOOP2执行;为零则往下执行。
LOOP3: RRC A ;A中的数带进位循环右移。
MOV P1,A ;将A中的数送到P1口输出
ACALL TIME ;调用延时子程序TIME延时1S
DJNZ R4,LOOP3 ;R4—1≠0跳至LOOP3执行;为零则往下执行。
DJNZ R3,LOOP1 ;R3—1≠0跳至LOOP1执行;为零则往下执行。
POP PSW ;恢复状态字(出栈)遵循“后入先出”原则
POP ACC ;恢复累加器
RETI ;中断返回
;当接在P3.3开关按钮按下时,中止当前正在执行程序,而立即进入EXT1中断服务程序。
;当EXT0中断服务程序正在执行时,若按下P3.3开关,中止EXT0中断程序,进入EXT1中断服务程序。
(外部中断1比外部中断0优先)
EXT1: PUSH ACC ;中断现场保护
PUSH PSW
;RS1、RS0工作寄存器组指针,用以选择指令当前工作的寄存器组(组2)。
SETB RS1 ;RS1置1
CLR RS0 ;RS0置0
MOV R3,#03
LOOP4: MOV A,#0FCH
MOV R2,#06
MOV R4,#06
LOOP5: RL A
MOV P1,A
ACALL TIME
DJNZ R2,LOOP5
LOOP6: RR A
MOV P1,A
ACALL TIME
DJNZ R4,LOOP6
DJNZ R3,LOOP4
POP PSW
POP ACC
RETI
TIME: MOV R5,#200
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END。