存储器读写c语言程序,单片机IIC接口存储器AT24C04的读写和显示程序(详细注释)...
//-----------------------------------------------------------------
// 名称: I2C接口存储器AT24C04读写与显示(4片)
//-----------------------------------------------------------------
// 说明: 按下K1-K4按键时,前两个分别向第1,2片AT24C04中写入400个随机字节
// 后2个按键分别写第3,4片AT24C04,先写入200个0x01,再写入200个0x02
// 写入后接着读取并显示.(400个字节的地址范围: 0x0000~0x018F)
//
//-----------------------------------------------------------------
#define INT8U unsigned char
#define INT16U unsigned int
#include
#include
#include
#include
sbit K1 = P3^3; //四个操作按键定义
sbit K2 = P3^4;
sbit K3 = P3^5;
sbit K4 = P3^6;
INT16U r = 0; //满20个字节换行控制变量
//AT24C04相关函数
extern void Random_Write(INT8U Dev_Addr,INT16U mem_addr,INT8U dat);
extern INT8U Random_Read(INT8U Dev_Addr,INT16U mem_addr);
extern void Sequential_Read(INT8U Dev_Addr,INT16U mem_addr,INT16U N);
//-----------------------------------------------------------------
// 延时函数
//-----------------------------------------------------------------
void delay_ms(INT16U x) {INT8U t; while(x--) for(t = 0; t<120; t++);}
//-----------------------------------------------------------------
// 向串口发送1字节
//-----------------------------------------------------------------
void PutChar(INT8U c) { SBUF = c; while( TI == 0 ); TI = 0;}
//-----------------------------------------------------------------
// 向串口发送字符串
//-----------------------------------------------------------------
void PutStr(INT8U *s) { while(*s) PutChar(*s++); }
//-----------------------------------------------------------------
// sprintf对%2X格式支持不稳定,编译时有时可以输出正确结果,有时则不正常
// sprintf(s,"%02X ",(INT8U)Random_Read(0xA0,i)); PutStr(s);
// 故改用下面的函数实现十六进制形式显示所读取的字节
//-----------------------------------------------------------------
void Show_HEX(INT8U dat)
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT16U i; char s[] = "NO.X\r\n";
INT8U n = 0, ChipNo = 0;
//串口配置
SCON = 0x40; TMOD = 0x20; PCON = 0;
TH1 = 0xFD; TL0 = 0xFD;
TI = 0; TR1 = 1;
srand(30); //随机种子
PutStr("\r\n>>> Press K1~K4, Write/Read No.1~4 AT24C04...\r\n ");
while(1)
{ if ((P3 & 0xF0) != 0xF0) //P3端口高4位按键状态检测
{
} else { delay_ms(10); continue; }
PutStr("\r\n\r\n>>> Write IIC, Waiting.........\r\n\r\n ");
//提示当前读取的AT24C04芯片号1~4(由0~3加1得到)
s[3] = ChipNo + '1'; PutStr(s);
switch (ChipNo)
{ case 0: case 1: //K1,K2分别向第1,2片写入400个随机字节
case 2: case 3: //K3,K4分别写第3,4片,写入200个0x01,0x02
}
PutStr("\r\n\r\n>>> Reading From IIC...........\r\n\r\n");
r = 0; //满20个字节换行显示控制变量归0
//从指定的AT24C04中读取400字节并发送串口显示,下面两种读取方法中,
//随机寻址单字节读取共400字节将明显慢于顺序连续读取400字节
}
}
存储器读写c语言程序,单片机IIC接口存储器AT24C04的读写和显示程序(详细注释)...相关推荐
- 51单片机 IIC OLED屏幕驱动+Proteus仿真+实物验证示例程序
51单片机 IIC OLED屏幕驱动+Proteus仿真+实物验证示例程序 Proteus仿真效果 注意点击运行仿真后,图像刷新出来比较慢. 示例主程序 #include "REG51.h& ...
- 格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序“[25024] Console1.exe”已退出,返回值为 0 (0x0)。
格子玻尔兹曼方法书中,计算机代码(Fortran语言)FDM的输出结果是什么,为什么显示程序"[25024] Console1.exe"已退出,返回值为 0 (0x0).
- 51单片机生成C语言矩形波,单片机产生方波、锯齿波、三角波程序
单片机 产生方波.锯齿波.三角波程序 #include#define uchar unsigned char #define uint unsigned int unsigned char x=0,m ...
- 单片机三角波c语言程序,单片机产生方波、锯齿波、三角波程序
单片机产生方波.锯齿波.三角波程序 #include #define uchar unsigned char #define uint unsigned int unsigned char x=0,m ...
- 用四位led数码管作显示器的篮球比赛24秒计时器求c语言代码,单片机编程控制LED七段数码管作显示的篮球赛计时计分系统...
本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统.系统应具有赛程定时设置,赛程时间暂停,及时刷新甲.乙双方的成绩以及赛后成绩暂存等功能. 内容包括:显示.键盘.时钟等内容设计 ...
- 51单片机独立按键数码管可调时钟显示程序
/************************************************************************** 独立按键数码管时钟显示程序 ********** ...
- c语言期中项目实战二—简易扫雷,思路分析加代码详细注释
c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...
- kiel实现c语言编程,单片机实验1(Kiel-软件的使用和C程序调试)教学文案(18页)-原创力文档...
单片机原理与接口技术实验 实验一:Kiel 软件的使用和C程序调试一.实验目的: 1.通过实验学会用C语言进行程序的设计. 2.学会应用keil-uvision集成调试软件对C语言程序进行调试.掌握C ...
- PH值检测C语言程序,单片机PH值检测鱼缸自动换水系统程序
/******************** (C) COPYRIGHT 2015 Silicone shell electronic studio ************************** ...
最新文章
- 从Github一开源项目ADSEC【学习域渗透攻防基础】
- Hadoop 2.4.1+HBase 0.98.6.1 分布式安装
- BootStrap 学习笔记(一)
- 10通信端口感叹号_工程现场通信总线布线、压接规范
- java 分析java死锁_有益的CountDownLatch和棘手的Java死锁
- 实现二维码-完整三种编码流程加代码解析(javascript)
- TensorFlow实现卷积、池化操作
- salt把返回写入到mysql
- asp.net整体运行机制详解
- python模块_python模块介绍
- 用计算机弹出记事本,为何电脑开机会弹出desktop的记事本出来的
- Qt 打印文档(PDF)
- TapTap推广统计逻辑
- 怎么把记事本内容导出python_怎么把记事本内容导出python
- Python的面向对象、模块和包
- “(CRON) info (No MTA installed, discarding output)”
- 阿丹学理财之财富认知
- OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)
- 使用svg创建动态水印内容
- Windows 安装MySQL 8.0 超详细教程(mysql 8.0.30)
热门文章
- 常用于应届生面试的24道面试题
- 视频流媒体服务器EasyNVR直播平台如何搭建幼儿园网络监控系统?
- 2021第五届蓝帽杯初赛部分题目wp
- 再探 set/map
- 农场一头母牛,母牛每年生产一头小母牛,小母牛5年后可以产母牛,n年后有多少头牛。递归思维解法
- x-studio(Lua调试器,粒子编辑器,UI编辑器,代码编辑器,csb恢复工具)
- IDS反病毒与APT的具体介绍
- expand linux,Expand和Unexpand命令在Linux下的使用示例
- 数学建模美赛写作指导20篇(七)-美赛优缺点英文表达
- 将Chrome插件Momentum背景图片设为桌面壁纸