加载中…
加载中…
加载中…
加载中…
加载中…
标签:
知识/探索 |
价格:120元。
QQ:58674624
还有中科院英语复习资料两套。据说把这些题弄明白就可能通过英语考试。
价格可议。QQ:58674624
(本来是我想考的,由于某种原因不能考了,只好卖了,保证真实性!)
| 分类: 心情驿站 |
| 分类: AVR单片机学习 |
| 分类: AVR单片机学习 |
//定时器用于外部计数
//用按键来产生外部的信号变化,下降沿计数
//ICC-AVR application builder:2007-6-12
//Target:M16
//crystal:1M
//用途:演示定时器的计数功能
//a~dp接PA0~PA7
//PB0接一个独立按键
/***************************************/
#include <iom16v.h>
#include <macros.h>
const unsigned char
seg7_data[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0~F and
shut
void port_init(void)
{
PORTA=0xFF;
PORTB=0x01;
PORTC=0x00;
PORTD=0x00;
}
//TIMER0 initialize-prescale:Fall
| 分类: AVR单片机学习 |
| 分类: AVR单片机学习 |
//此程序为AVR外部中断,时钟中断,串行通信,IIC综合实例 #include <iom16v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int #pragma interrupt_handler int2:19//外部中断2 #pragma interrupt_handler timer0_ovf_isr:10//时钟中断 #pragma interrupt_handler rec:12//串口接收中断 void delay(uint ticks);//延时 unsigned char const Tab[]={0x14,0x9F,0x38,0x1A,0x93,0x52,0x50,0x1F, 0x10,0x12,0x11,0xD0,0x74,0x98,0x70,0x71}; //数码管显示代码 unsigned int count=0;//软件记数 void main() { uchar Address,date; int x=0,j=0; init_devices(); //中断设置 CLI();//关总中断 //INT2设置 MCUCSR&=~0x40;//下降沿触发 GIFR|=0x20;//清INT2标志 GICR|=0x20;//开INT2中断 //定时设置 TCCR0 = 0x00; //stop TCNT0 = 0x83; //set count OCR0 = 0x7D; //set compare //TCCR0 = 0x03; //start timer TIMSK = 0x01; //timer interrupt sources //串口设置,波特率:9600 UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(UR
| 分类: AVR单片机学习 |
A.中断设计注意点:
1.具备Bootloader功能的AVR,其中断向量区可以在Flash程序存储器空间最低位置和Bootloader区的头部来回迁移,这主要用于配合Bootloader程序的应用。如果不使用Bootloader功能,一般不要中断向量区进行迁移。
2.Flash较小的AVR芯片,其一个中断向量占据1个字的空间,用于放置一条相对转移RJMP指令(范围-2K~+2K字),跳到中断服务程序。对于不使用的中断,在中断向量区中应放置1条中断返回指令RETI,增强程序的抗干扰性。
3.ATmega128的Flash空间为64K字节,因此它的一个中断向量占据2个字的空间,用于放置一条绝对转移JMP指令(指令长度为2个字),跳到中断服务程序。对于不使用的中断,在中断向量区中应连续放置2条中断返回指令RETI
| 分类: AVR单片机学习 |
2.MCU挂起,表示MCU“暂停”工作,即暂时停止取指令、响应中断等,待前一个硬件操作完成后再继续执行后续的指令操作。
3.当MCU对RWW区域进行页读取、写入或擦除时,一旦指令发出后,操作将由硬件自动完成(例如由硬件将RWW区中的一页32字读到临时缓冲页中),这个操作过程需要占用一定的时间,在这段时间内,MCU可以读取NRWW区中的指令并执行。这与“一边读写RWW区域,一边干别的什么事”是不同的概念。这同当AVR的硬件在做AD转换,或URAT正在接收一个字节数据时,MCU也同时执行一条指令是类似的。下面给一个例子:
a.从UART口读入32个字,存入RAM(程序在NRWW区域的B区中)
b.使用循环将32个字写入临时缓冲页中(程序在NRWW区域的B区中)
c.将00000101写入SPMCR寄存器,并执行SPM指令实施对RWW区中的页写入(程序在NRWW区域的B区中)
d1.等待3.7ms,待页写入操作完成(程序