【1】题目要求

新建工程,以I/O模式编写代码,在CT107D单片机综合训练平台上,实现以下功能:

1、将IIC总线的底层驱动代码文件正确移植到工程中。

2、系统上电后,从24C04存储器0x010x030x05这三个地址单元读取数据。

3、将0x01单元读出的数据进行加1操作,如果计算结果大于10,复位为0,然后将这个结果写回0x01单元。

4、将0x03单元读出的数据进行加2操作,如果计算结果大于20,复位为0,然后将这个结果写回0x03单元。

5、将0x05单元读出的数据进行加3操作,如果计算结果大于30,复位为0,然后将这个结果写回0x05单元。

6、将三个单元的当前数据从左到右依次显示在数码管上,各个数字之间用“-”分隔。

【小提示】:

IIC接口的基本原理,可见本博客:《【蓝桥杯单片机进阶强化-01】IIC总线接口技术基础》。

24C02的基本原理,可见本博客:《【蓝桥杯单片机进阶强化-03】24C02存储器的基本原理与应用》

【2】核心源码参考

/*==================蓝桥杯单片机特训==================
【进阶03】:24C02的基本读写操作
**平  台:CT107D单片机综合实训平台
**模  式:IO模式
**底层驱动文件:2022年竞赛资源数据包提供的文件
**设  计:欧浩源(小蜜蜂老师,ohy3686@qq.com)
**时  间:2022-04-01
**更多详见:www.xmf393.com
====================================================*/#include "reg52.h"
#include "iic.h"//定义动态显示中单个数码管点亮时长
#define TSMG    500
//-------共阳数码管的段码编码表(无小数点)--------
//0 1 2 3 4 5 6 7 8 9 A B C D E F - .
unsigned char code SMG_NoDot[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};//定义3个计数变量
unsigned char dat1 = 0, dat2 = 0, dat3 = 0;/*====锁存器设置和数码管显示的代码参考前面的案例====*/
//===================读取值显示函数===================
void DisplaySMG_24C02()
{//数码管右起第0位DisplaySMG_Bit(7,SMG_NoDot[dat3  % 10]);//数码管右起第1位DisplaySMG_Bit(6,SMG_NoDot[dat3 / 10]);        //数码管右起第2位DisplaySMG_Bit(5,SMG_NoDot[16]);              //数码管右起第3位DisplaySMG_Bit(4,SMG_NoDot[dat2   % 10]);//数码管右起第4位DisplaySMG_Bit(3,SMG_NoDot[dat2 / 10]);        //数码管右起第5位DisplaySMG_Bit(2,SMG_NoDot[16]);              //数码管右起第6位DisplaySMG_Bit(1,SMG_NoDot[dat1 % 10]);               //数码管右起第7位DisplaySMG_Bit(0,SMG_NoDot[dat1 / 10]);
}
//================24C02单字节写入=================
void Write_24C02(unsigned char addr, unsigned char dat)
{IIC_Start();           //起始信号IIC_SendByte(0xa0);       //EEPROM的写设备地址IIC_WaitAck();            //等待从机应答IIC_SendByte(addr);     //内存单元地址IIC_WaitAck();          //等待从机应答IIC_SendByte(dat);      //内存写入数据IIC_WaitAck();          //等待从机应答IIC_Stop();             //停止信号
}
//================24C02单字节读取=================
unsigned char Read_24C02(unsigned char addr)
{unsigned char tmp;//首先,进行一个伪写操作IIC_Start();         //起始信号IIC_SendByte(0xa0);       //EEPROM的写设备地址IIC_WaitAck();            //等待从机应答IIC_SendByte(addr);     //内存单元地址IIC_WaitAck();          //等待从机应答//然后,开始字节读操作IIC_Start();         //起始信号IIC_SendByte(0xa1);       //EEPROM的读设备地址IIC_WaitAck();            //等待从机应答tmp = IIC_RecByte();   //读取内存中的数据IIC_SendAck(1);           //产生非应答信号IIC_Stop();                //停止信号return tmp;
}
//==============24C02数据读取与写入===============
void Read_Write_24C02()
{dat1 = Read_24C02(0x01);  //从24C02读取dat1dat2 = Read_24C02(0x03); //从24C02读取dat2dat3 = Read_24C02(0x05); //从24C02读取dat3dat1 = dat1 + 1;            //第1个计数变量+1dat2 = dat2 + 2;          //第2个计数变量+2dat3 = dat3 + 3;          //第3个计数变量+3if(dat1 > 10)dat1 = 0;if(dat2 > 20)dat2 = 0;if(dat3 > 30)dat3 = 0;Write_24C02(0x01, dat1);DelaySMG(1000);               //等待字节写入完成Write_24C02(0x03, dat2);DelaySMG(1000);               //等待时间不够会影响dat3写入Write_24C02(0x05, dat3);DelaySMG(1000);
}//===================系统初始化===================
void Init_sys()
{Set_HC573(0, 0x00);            //关闭所有锁存器Set_HC573(5, 0x00);            //关闭蜂鸣器和继电器Set_HC573(4, 0xff);          //关闭全部LED灯DisplaySMG_All(0xff);     //关闭全部数码管
}
//=======================主函数=======================
void main()
{Init_sys();                    //系统初始化Read_Write_24C02();          //读写24C02的三个单元的数据while(1){DisplaySMG_24C02();       //循环动态刷新数码管}
}

【注】:更多关于蓝桥杯单片机备赛内容,详见《蓝桥杯单片机设计与开发》小蜜蜂特训手册,本站可下载,相关更多蓝桥杯的案例完整源码及学习备赛笔记,欢迎进入“小蜜蜂笔记”公众号。

蓝桥杯单片机 | 特训案例【进阶03】24C02的基本读写操作相关推荐

  1. 蓝桥杯单片机 | 特训案例【进阶06】基于PCF8591的DAC模拟电压输出

    [1]题目要求 新建工程,以I/O模式编写代码,在CT107D单片机综合训练平台上,实现以下功能: 1.将IIC总线的底层驱动代码文件正确移植到工程中. 2.将J5配置BTN模式,把S4设置为独立按键 ...

  2. 蓝桥杯单片机串口通信学习提升笔记

    今日得以继续蓝桥杯国赛备赛之旅: 有道是 "不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥." 那我们该如何 让这位诗人纳兰 "再听乐府曲 ,畅解相思苦"呢 ...

  3. 蓝桥杯单片机——PCF8591 ADC/DAC模块

    本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备. 蓝桥杯单片机硬件基础 PCF8591电路图: PCF8591是具有IIC总线接口的8位A/D及D/A转换器,有4路A/D转换输入,1路D/A模拟输 ...

  4. 【蓝桥杯单片机进阶强化-04】PCF8591与24C02综合应用-智能照明自动控制器

    [1]题目要求 在蓝桥杯大赛"单片机设计与开发"的在CT107D综合训练平台上,利用竞赛提供的IIC底层驱动代码,设计程序,实现以下的功能: 1- 系统上电后,通过采样PCF859 ...

  5. 【蓝桥杯单片机进阶强化02】24C02存储器的基本原理与应用

    [蓝桥杯单片机进阶强化02]24C02存储器的基本原理与应用 内容来自B站小蜜蜂老师 一.24C02基础介绍 1.1 AT24C02功能概述 24C02是一个2K Bit的串行EEPROM存储器,内部 ...

  6. 【蓝桥杯单片机进阶强化-06】超声波测距的基本原理与实现

    [1]基本原理 超声波发射模块向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时. [2]计算公式 距离 = 声速 × ...

  7. 蓝桥杯单片机组——榨干选手资源包(芯片数据手册)

    文章目录 前言 DS18B20 原理图 1-Wire协议简介 赛场技巧 DS1302 原理图 SPI协议简介 赛场技巧 AT24C02 原理图 IIC协议简介 赛场技巧 PCF8591 原理图 赛场技 ...

  8. 蓝桥杯单片机第三届省赛自动售水机

    #蓝桥杯单片机省三自动售水机 提示:能力有限仅供参考 本人能力有限仅供新手使用,第一次发表博客难免有错误仅供参考. 提示:以下是本篇文章正文内容,下面案例可供参考 一.main.c 代码如下: #in ...

  9. 【蓝桥杯单片机11】单总线温度传感器DS18B20的基本操作

    [蓝桥杯单片机11]单总线温度传感器DS18B20的基本操作 广东职业技术学院 欧浩源 单总线数字温度传感器DS18B20几乎成了各类单片机甚至ARM实验板的标配模块来,在蓝桥杯的往届省赛和国赛中,这 ...

最新文章

  1. Google zerotouch方案介绍
  2. 关于Class之深入Class
  3. 学习css3中的动画
  4. Spark _23 _读取parquet文件创建DataFrame(二)
  5. Python核心编程(第九章)--文件和输入输出
  6. 1059 Prime Factors(25 分)
  7. 1-10:学习shell之进程
  8. Windows2012R2版本区别
  9. php向浏览器输出,使PHP即时输出结果到浏览器
  10. C编程语言中整型变量在内存中的存储形式介绍
  11. 编程基本功:学会抄,自然就会创新
  12. w10计算机用户名密码忘了,一招简单帮你解决win10系统电脑忘记开机密码
  13. 矛与盾:黑客攻防命令大曝光
  14. 智能健身房风靡全国,但有90%的人却掉进“伪智能”陷阱!
  15. (二)对导入的Excel某列进行合并、求和,删除重复行
  16. Photoshop 2021 22.4.3 精简版
  17. 民间借贷利息,最新计算方式
  18. ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理
  19. 默蓝网络通信TCP/HTTP测试工具介绍
  20. 帆软报表工程师FCRA试题及答案

热门文章

  1. WebRTC之NAT穿墙
  2. Linux grep搜索指定类型的文件,指定后缀名
  3. nginx伪静态(超级简单)
  4. K3金碟报错 部件’COMDLG32.OCX’或其附件之一不能正确注册
  5. 独立游戏demo-FoodStall3.0
  6. WPF教程三:布局之WrapPanel面板(转 )
  7. jmeter远程监控服务器的cpu
  8. Python Supervisord 进程管理工具
  9. linux无用文件_4个有趣(且半无用)的Linux玩具
  10. 插件实现了钉钉和企业微信推送消息