STC89C52与AT24C02按字节写(C51)

发布者:小悟空111最新更新时间:2016-09-29 来源: eefocus关键字:STC89C52  AT24C02  按字节写 手机看文章 扫描二维码
随时随地手机看文章
#include

#include
#define uchar unsigned char
uchar i,a;
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};   
sbit wp=P1^0;
sbit scl=P1^1;
sbit sda=P1^2;
sbit led=P2^0;

void delay()
{
 _nop_();
 _nop_();
 _nop_();
}

void de1s()   //误差 0us
{
    unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}

void d10ms()   //误差 0us
{
    unsigned char a,b,c;
    for(c=1;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);

void write(uchar t)
{
 for(i=0;i<8;i++)
 {
  sda=(bit)(t&0x80); //等价于RLC
  scl=1;
  scl=0;
  t<<=1;  
 }
 sda=1;
 scl=1;
 delay();  
 while(sda!=0);
 scl=0; 
}

void start()
{
 sda=1;
 scl=1;
 delay();
 sda=0;
 delay();
 scl=0;
}

void stop()
{
 sda=0;
 delay();
 scl=1;
 delay();
 sda=1;
 scl=0;
}

void wriic()
{
    uchar j;
 start();
 write(0xae);
 write(0x00);
 for(j=0;j<8;j++)
 {
  write(table[j]); 
 }
 stop();
}

uchar read()
{
 uchar n,rbyte=0;
 for(n=0;n<8;n++)
 {
     sda=1;
  scl=1;
  rbyte<<=1;
  rbyte|=(uchar)(sda);
  scl=0; 
 }
 sda=0;
 delay();
 scl=1;
 delay();
 scl=0;
 return(rbyte);
}

void reiic()
{
 start();
 write(0xae);
 write(0x00);
 start();
 write(0xaf);
 for(i=0;i<8;i++)
 {
   P0=read();
  de1s();
 }
 stop(); 
}

void main()
{
 wp=0;
 led=0;
 SP=0x50;
 wriic();
 d10ms();
 reiic();
 while(1);
}

关键字:STC89C52  AT24C02  按字节写 引用地址:STC89C52与AT24C02按字节写(C51)

上一篇:LCD12864的串口驱动(asm/c51)
下一篇:STC89C52R并行驱动LCD12864(asm/c51)

推荐阅读最新更新时间:2024-03-16 15:12

基于stc89c52单片机和gsm模块的电力变压器防盗系统设计
1 引言 在油田等地域分布辽阔的野外地区,输电线路和电力变压器因远离供电局经常面临被盗的危险,一旦输电线和电力变压器被盗,将会造成很大的经济损失,给电力系统的稳定运行和油田安全生产造成极大的隐患。随着gsm移动通信网络的迅速发展和用户的日益扩大,gsm的信号覆盖范围很广,盲区越来越少,现在gsm机站建设迅速,设计上已经覆盖了整个地区。为此,本文利用gsm通讯网络开发出的输电线路和变压器防盗系统,能有效地对偏远地区的输电线路和电力变压器的运行情况实时监控。 2 系统设计 本文主要描述了利用stc89c52单片机实现的基于gsm模块的电力变压器防盗系统,包括stc89c52单片机的功能特点、gsm短信模块工作原理、传感器工作原理。
[单片机]
基于<font color='red'>stc89c52</font>单片机和gsm模块的电力变压器防盗系统设计
51单片机-STC89C52系列学习第一篇之IO口学习
STC89C52系列单片机IO口有三种工作模式: 1、准双向口/弱上拉(标准8051输出模式) 2、开漏输出模式 3、输入模式 其中P1/P2/P3/P4上电复位后为传统的8051的IO口模式,而P0口上电后是开漏输出。 P0口作为IO口使用时需要加4.7K-10K的上拉电阻。 新增特殊功能寄存器的声明示例: sfr P4 = 0xe8; sbit P40 = 0xe8; sbit P41 = 0xe9; sbit P42 = 0xea; sbit P43 = 0xeb; sbit P44 = 0xec; sbit P45 = 0xed; sbit P46 = 0xee; 将寄存器P4的位全部置为1: P4 = 0xff; 单
[单片机]
基于stc89c52rc单片机的数字钟设计(数码管显示)
事情总是看着简单,做起来没那么容易。 这个程序我开始时是根据教程编的,有些地方不理解就匆匆略过……事实证明这是不可取的…… 写了百十来行以后编译,报错!就不会解决了。 这时才体会到基础是多么重要!!! 学习方法要科学,要知其然,更要知其所以然。 就像罗哥说的,从原理入手…… 感谢 刘鹏 百忙之中抽出时间指导,真是我的良师和益友。。。。。。。 ***************************************************** 把程序贴出来。大家学习学习。千万不要ctrl c,ctrl v。 全部代码下载地址:http://www.51hei.com/f/ssz.rar ******************
[单片机]
STC89C52单片机——串口发送程序1
/*----------------------------------------------- 名称:串口通信 编写:LZM 日期:2015.05 修改:无 内容:连接好串口波特率设置为9600,无奇偶校验 晶振11.0592MHz 接上串口,可以接收到自己发送的字符 ------------------------------------------------*/ #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 /****************************************************
[单片机]
<font color='red'>STC89C52</font>单片机——串口发送程序1
STC89C52单片机通过HC06蓝牙模块与Android手机通信
一环境: 1、任意单片机开发板即可(当时用的芯片STC90C516RD+),约定为下位机 2、无线蓝牙串口透传模块 HC-06从机 3、windows xp操作系统 4、Android智能手机(蓝牙串口通信助手软件),约定为上位机 二、连接的部分电路图(有集成板子的直接插上就可以了,但是要注意若单片机的TXD无上拉能力需要加上拉电阻) 上拉电阻的阻值有人问我,我当时用的是1K 。 三、下位机测试程序 (各位大神如果分数比较多可以赞助我一下,就1个积分) 程序地址(整个工程):http://download.csdn.net/detail/itas109/5430553
[单片机]
8051单片机(STC89C52)两个倒计时器异步计数
#include STC89C5xRC.H void delay()//用定时器0实现5ms精准定时 { TMOD = 0x01; TH0 = 0xEA; TL0 = 0x84;//65536 - 5000 = 60036 TF0 = 0;//置溢出标志位为0 TR0 = 1;//开启定时器0 while(TF0 == 0); TR0 = 0;//暂停定时器0 } void disp_digit(int d, int r) { unsigned char code DIG_CODE = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7
[单片机]
8051单片机(<font color='red'>STC89C52</font>)两个倒计时器异步计数
8051单片机(STC89C52)八灯从中间往两边亮
#include STC89C5xRC.h void delay()//提供时延 { int i,j; for(i=0;i 120;i++) for(j=0;j 120;j++) { ; } } int main() { while(1) { P2=0xFF;//八灯全灭 delay(); P2=0xE7; delay(); P2=0xC3; delay(); P2=0x81; delay(); P2=0; delay(); } } 设计思路: 1 1 1 1 1 1 1 1 //P2=0xFF 1 1 1 0 0 1 1 1 //P2=0xE
[单片机]
基于STC89C52/MAX1771的LED调光系统电路分析
LED的排列方式及LED光源的规范决定着基本的驱动器要求。   LED驱动器的主要功能就是在一定的工作条件范围下限制流过LED的电流,而无论输入及输出电压如何变化。最常用的是采用变压器来进行电气隔离。下文论述了LED照明设计需要考虑的调光因素。   正是因为调光的要求所以驱动LED面临着不少挑战,如正向电压会随着温度、电流的变化而变化,而不同个体、不同批次、不同供应商的LED正向电压也会有差异;另外,LED的“色点”也会随着电流及温度的变化而漂移。   下文LED采用多个串联的方式,供电电源为12V电,所以使用了一级升压电路。   1、系统组成   LED调光系统组成框图如图1.1所示。   图1.1L
[电源管理]
基于<font color='red'>STC89C52</font>/MAX1771的LED调光系统电路分析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved