单片机是ATmega48的,写了个24C02的程序,但是程序一直没能进去,麻烦大侠们帮忙看看哪里出了问题。

单片机是ATmega48的,写了个24C02的程序,但是程序一直没能进去,麻烦大侠们帮忙看看哪里出了问题。,第1张

你的程序有点少东西。

写程序一定要扎实。时序图要求先什么电平,再什么电平是有道理的。不能少

你的写程序,把端口改完方向就完事了。应该所SCL也写0呀

然后,每个端口电平变化以后,你要做延时呀。

还有读数据的时候,你怎么可以

read_byte |= 0x10 这接收到的数肯定会错。应该是0X01。

24C02有时序要求的,先写0XA0,再写或者读。这个时序呢?

最后,你在判断ACK的时候做了个死循环呀。万一哪一次有点时序问题。程序不就死掉了。连续读200次还读不到,表明读取有问题。这个时候也应该退出来。报错呀。在哪里把i=0不就死掉了。永远出不来了。

ATMEGA48PA-AU是一款基于AVR增强型RISC架构的低功耗CMOS 8位微控制器。通过在单个时钟周期内执行强大的指令,ATmega48A/PA/88A/PA/168A/PA/328/P 实现了接近 1 MIPS/MHz 的吞吐量,允许系统设计人员优化功耗与处理速度。

主要特诊:

• 高性能、低功耗 Atmel® AVR® 8 位微控制器

• 先进的 RISC 架构

– 131 条强大的指令 – 大多数单时钟周期执行

– 32 x 8 通用工作寄存器

– 完全静态 *** 作

– 20MHz 时高达 20 MIPS 的吞吐量

– 片上 2 周期乘法器

• 高耐用性非易失性内存段

– 4/8/16/32KBytes 系统内自编程闪存程序存储器

– 256/512/512/1KBytes EEPROM

– 512/1K/1K/2KBytes 内部 SRAM

– 写入/擦除周期:10,000 次闪存/100,000 次 EEPROM

– 数据保留:85°C 下 20 年/25°C 下 100 年(1)

– 具有独立锁定位的可选引导代码部分

通过片上引导程序进行系统内编程

真正的读写 *** 作

– 软件安全编程锁

• Atmel® QTouch® 库支持

– 电容式触摸按钮、滑块和滚轮

– QTouch 和 QMatrix® 采集

– 多达 64 个感应通道

• 外围功能

– 两个具有独立预分频器和比较模式的 8 位定时器/计数器

– 一个 16 位定时器/计数器,具有独立的预分频器、比较模式和捕捉模式

– 带独立振荡器的实时计数器

– 六个 PWM 通道

– 采用 TQFP 和 QFN/MLF 封装的 8 通道 10 位 ADC 温度测量

– 采用 PDIP 封装的 6 通道 10 位 ADC 温度测量

可编程串行 USART

– 主/从 SPI 串行接口

– 面向字节的 2 线串行接口(兼容飞利浦 I2C)

– 带有独立片上振荡器的可编程看门狗定时器

– 片上模拟比较器

– 引脚变化时的中断和唤醒

• 特殊的微控制器功能

– 上电复位和可编程欠压检测

– 内部校准振荡器

– 外部和内部中断源

– 六种睡眠模式:空闲、ADC 降噪、省电、掉电、待机和延长待机

• I/O 和包

– 23 条可编程 I/O 线

– 28 引脚 PDIP、32 引脚 TQFP、28 焊盘 QFN/MLF 和 32 焊盘 QFN/MLF

• 工作电压:

– 1.8 - 5.5V

• 温度范围:

–-40°C 至 85°C

• 速度等级:

– 0 - 4MHz@1.8 \- 5.5V, 0 - 10MHz@2.7 \- 5.5.V, 0 - 20MHz @ 4.5 - 5.5V

• 1MHz、1.8V、25°C 时的功耗

– 活动模式:0.2mA

– 掉电模式:0.1µA

– 省电模式:0.75µA(包括 32kHz RTC)

主要性能参数:

产品MCU

商标Microchip Technology / Atmel

宽度7 mm

封装Tray

核心AVR

系列ATmega48PA

长度7 mm

高度1 mm

制造商Microchip

商标名AVR

子类别Microcontrollers - MCU

ADC分辨率10 bit

产品种类8位微控制器 -MCU

产品类型8-bit Microcontrollers - MCU

单位重量72.800 mg

安装风格SMD/SMT

接口类型2-Wire, SPI, USART

处理器系列megaAVR

封装 / 箱体TQFP-32

湿度敏感性Yes

数据 RAM 大小512 B

数据 ROM 大小256 B

数据 Ram 类型SRAM

数据 Rom 类型EEPROM

工作电源电压1.8 V to 5.5 V

工厂包装数量250

平时用不上,关不关无所谓,一般在对程序跑飞时,系统工作状况将会不确定,如果机器因此进入不可控状态可能造成重大损失,看门狗内有一个类似定时器的寄存器,他负责记录周期时间(每隔一定周期,寄存器自动加一),一旦寄存器溢出(就是0xff以后又加一),系统就会自动将寄存器清零,重新计数。如果程序跑飞,系统不会清零,则在溢出后,看门狗复位单片机


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11082931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存