推荐阅读最新更新时间:2024-11-04 01:48
AVR单片机ATMEGA48的EEPROM操作例子
/***************************************************** CodeWizardAVR http://www.avrdiy.com Panxiaoyi 快速PWM,也可以叫单斜率PWM *****************************************************/ #include mega48.h unsigned char eeprom i=0; //把变量放保存在EEPROM上/赋值与否并不影响i的值 void main(void) { TCCR0A=0b10000011; //比较匹配时OC0A=0,计数到比较值时OC0A=1,TOP
[单片机]
ATmega48 通用寄存器
寄存器文件针对AVR增强型RISC指令集做了优化。为了获得需要的性能和灵活性,寄存器文件支持以下的输入/ 输出方案: ·输出一个 8 位操作数,输入一个 8 位结果 ·输出两个 8 位操作数,输入一个 8 位结果 ·输出两个 8 位操作数,输入一个 16 位结果 ·输出一个 16 位操作数,输入一个 16 位结果 Figure 4 为CPU 32 个通用工作寄存器的结构。 (点击图片放大) Figure 4. AVR CPU 通用工作寄存器 大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单个时钟周期。 如Figure 4 所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空
[单片机]
AVR单片机熔丝位设置
对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, Unprogrammed 表示熔丝状态为 1 (禁止); Programmed 表示熔丝状态为 0 (允许)。因此,配置熔丝位的过程实际上是 配置熔丝位成为未编程状态 1 或成为已编程状态 0 。 (2)在使用通过选择打钩 方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚 表示设置熔丝位状态为 0 还是为 1 。 (3)使用C
[单片机]
如何解决AVR单片机烧写过程中弄错熔丝位而造
在AVR单片机烧写的过程中,难免有弄错熔丝位的时候,结果是AVR单片机无法读写了!这时我们该怎么办呢,将昂贵的芯片丢掉,再用一块新的。其实这一般是没有必要的,写错熔丝位而导致单片机不能读写,一般不外乎(个人愚见)设设置错了时钟模式,比如说本来是用内部晶振的,结果弄成了外部晶振,而单片机的外部有没有接晶振,这时单片机没有了时钟信号,当然就没有办法在读写了,估计大家也猜到了怎么办了吧,是的,就是由外部提供时钟源。 有第一张图的时钟选择,我们就知道我们得准备多种时钟源: 高频石英/陶瓷晶振,这个直接接在 单片机 晶振位置就可以了,注意频率不要太高,4~5M的就可以了,不放心的话,接两个20P~30P的电容也行! 低频晶振,和
[单片机]
AVR单片机的熔丝位设置问题
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定。 1:未编程 0:编程 1、BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平 BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOU
[单片机]
AVR单片机的串口转FSK的通信模块设计
随着信息技术与网络技术的飞速发展,信息交互应用业务给人类生活带来更多的便利,信息终端表现出巨大的市场潜力。但是由于终端用户环境不同,用户信息交互方式可能不同,目前常用的有IP方式、FSK方式以及无线通信方式等。为了能够提高终端市场竞争力,减少系统开发成本投入,通信模块与终端程序独立设计是较为理想的解决方案。本文采用ATmega48芯片及CMX865芯片实现FSK通信模块,基于此模块,用户与业务平台之间进行FSK信息交互,相对于终端来说就是简单的串口通信。 1 ATmega48介绍 ATmega48是基于AVR增强型RISC(精简指令集)结构的高性能、低功耗的8位CMOS微控制器。微控制器具有可控制的上电复位和可编程的掉电检测
[单片机]
ATMega48的Bootloader的软件实用方法
AVR是Atmel公司推出的第一款真正意义上的RISC结构8位单片机,具有先进的指令集及单时钟周期指令执行时间,数据吞吐率可高达1MIPS,其性能明显优于其他类型8位单片机。
作为AVR主流产品,Mega系列的很多产品(Mega8/Megal6/Mega32/Mega8535等)在硬件上都支持Boot-loader功能。这样MCU可灵活运行BOOT区程序,实现在应用编程(IAP)及一些高级应用,如系统智能升级,密码校验自保护,远程系统更新等。但有很高性价比的Mega48在硬件上却不支持Bootloader功能。因此,本文针对Mega48首次提出两种软件实现Bootloader的方法:跳转保存法和倒置法。
1 ATMega
[单片机]
AVR单片机熔丝位问题
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定。 1:未编程 0:编程 1.BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平 BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOU
[单片机]