总算是把这些问题统统解决了~~
现在贴出来~~
一个哥帮了忙~~
不过以前的错误还是有好几点的~~
AT24C1024存储:
老规矩~~
显示上图~~
IAR7_1.c
//------------------------------------------------------------------------------
//IAR7_1.c
//向AT24C1024指定地址写入一个数据,然后从中读出来~~
#include"ioavr.h"
#include"lcdinit.h"
#include"at24c1024.h"
#include"delayics.h"
//------------------------------------------------------------------------------
uchar __flash title0[]="Write:";
uchar __flash title1[]="Read:";
uchar __flash test[]="_Justin";
//uchar __flash display[7]={0,0,0,0,0,0,0};
//------------------------------------------------------------------------------
//端口初始化函数
void port_init()
{
}
//------------------------------------------------------------------------------
//main
void main()
{
}
LCDInit.c
//------------------------------------------------------------------------------
//LCD1602的初始化程序—可调用函数—Atmega 16
#include"ioavr.h"
#include"intrinsics.h"
#include"delayics.h"
#include"bitics.h"
#include"lcdinit.h"
//------------------------------------------------------------------------------
//RS、RW、EN引脚输出高低电平的宏定义
#define lcd_rs_1
#define lcd_rs_0
#define lcd_rw_1
#define lcd_rw_0
#define lcd_en_1
#define lcd_en_0
//------------------------------------------------------------------------------
#define data_port PORTA
#define busy
//------------------------------------------------------------------------------
//检测LCD忙函数
void lcd_check_busy()
{
}
//------------------------------------------------------------------------------
//LCD写数据函数
void lcd_write_data(uchar dat)
{
}
//------------------------------------------------------------------------------
//LCD写指令函数
//其中flag的作用是为0不进行忙检测,为非0则进行忙检测
void
{
}
//------------------------------------------------------------------------------
//LCD初始化函数
//如果Proteus仿真不显示,那就更改初始化就哦了~~
void lcd_init()
{
}
//------------------------------------------------------------------------------
//LCD显示一个字节函数
void
{
}
//------------------------------------------------------------------------------
//LCD显示多个字节函数
void
{
}
AT24C1024.c
//------------------------------------------------------------------------------
//AT24C1024文件的函数,便于以后调用
#include"ioavr.h"
#include"intrinsics.h"
#include"bitics.h"
#include"delayics.h"
#include"lcdinit.h"
//------------------------------------------------------------------------------
typedef unsigned char uchar;
typedef unsigned int
#define TWINT 7
#define TWEA
#define TWSTA 5
#define TWSTO 4
#define TWEN
//------------------------------------------------------------------------------
//TWI状态定义:MT主方式传输;MR从方式传输
//这里就是与TWI状态寄存器进行比较的~~如果一致则继续,如果不一致则终止
//注意:状态寄存器一定要屏蔽掉预分频位
#define START 0x08
#define RE_START 0x10
#define MT_SLA_ACK 0x18
#define MT_SLA_NOACK 0x20
#define MT_DATA_ACK 0x28
#define MT_DATA_NOACK 0x30
#define MR_SLA_ACK 0x40
#define MR_SLA_NOACK 0x48
#define MR_DATA_ACK 0x50
#define MR_DATA_NOACK 0x58
//------------------------------------------------------------------------------
//常用TWI模式操作(主模式写和主模式读)
#define twi_start()
#define twi_stop()
#define twi_wait()
#define twi_test_ack()
#define twi_send_ack()
#define twi_send_noack()
#define twi()
#define twi_write_char(x)
//------------------------------------------------------------------------------
//TWI初始化函数
//这个函数我试过~~如果不进行具体的设置可以要也可以不要~~不过也是初始化的一个过程~~所以写出来~~
void twi_init()
{
}
//------------------------------------------------------------------------------
//向器件指定地址按页写函数(这里你可以选择你要写入的个数num~~)
//写入成功,返回1;不成功,返回0,使用后必须结束总线
uchar mcu_send_string(uchar add,uchar rom_add_h,uchar rom_add_l,uchar __flash *s,uchar num)
{
}
//------------------------------------------------------------------------------
//从器件指定地址读多个字节(这里你可以选择你要读出的个数num~~)
//写入成功返回1,不成功返回0
uchar mcu_receive_string(uchar add,uchar rom_add_h,uchar rom_add_l,uchar *s,uchar num)
{
}