- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. .
Word格式
C51_AT24C02读写程序:
/*
void start() //开始信号
void stop() //停止信号
void Ack() //发确认信号
void NoAck() //发无确认信号
void init()//初始化信号,拉高SDA和SCL两条总线
bit write_byte(uchar date)//写一字节,将 date 写入AT24C02 中
uchar read_byte()//读一字节,从 AT24C02 中读一字节
bit busy() //应答查询,stop()后,启动AT24C02内部写周期 ,启动查询
//初始化EEPROM子程序内容为0XFF,nPage(0~31)
void Init_Flash(uchar nPage) //8 bytes/1 page init 0xFF
void write_add(uchar address,uchar date)//向 AT24C02 中写数据
//从AT24C02中给定的地址nAddr起,将存放在以指针nContent开头的存储空间中的nLen个字节数据,连续写入AT24C02
void write_flash(uchar *nContent,uchar nAddr, uchar nLen)
uchar read_add(uchar address)//从 AT24C02 中读出数据
//从AT24C02中给定的地址nAddr起,读取nLen个字节数据存放在以指针nContent开头的存储空间。
void read_flash(uchar *nContent,uchar nAddr, uchar nLen)
*/
/*
单片机P2口接74HC138(三八译码器)P2.3--74HC138:/EI、P2.2--74HC138:A2、P2.1--74HC138:A1、P2.0--74HC138:A0
译码器输出 Y0,Y1、Y2、Y3、Y4、Y5、Y6、Y7均低电平有效,分别选通1~8个数码管。包括2个四位一体数码管LG3641BH,共2x4=8个数码管。
数码管数据口为P0口。数码管为共阳4位一体数码管。
功能:
译码器输出为1——8个数码管的段选信号,轮流选择1——8数码管。
void display(uchar *nContent,uchar nLen)功能:在8段数码管上显示nLen个字符,这些字符存储在指针nContent开头的往下的内容中。
显示原理:
1、送出要显示的段数
2、P2译码,选择要显示的位
3、延时1——2ms,时间不能太长,否则会闪烁,也不能太短,否则会很暗。
4、取消段选,消隐!
若要显示多段,重复以上4步!
*/
#include reg51.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
sbit L8 =P1^7;
sbit P2_3 =P2^3; // 74HC138--/EI
sbit P2_2 =P2^2; // 74HC138--A2
sbit P2_1 =P2^1; // 74HC138--A1
sbit P2_0 =P2^0; // 74HC138--A0
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e
}; // 共阳数码管0——F
sbit sda=P1^2;
sbit scl=P1^0;
uchar a;
void delay()//延时函数
{ ;; }
void start() //开始信号
{
sda=1;
_nop_();
scl=1;
_nop_();
sda=0;
_nop_();
}
void stop() //停止信号
{
sda=0;
_nop_();
scl=1;
_nop_();
sda=1;
_nop_();
}
void Ack() //发确认信号
{
scl = 0;
_nop_();
sda = 0;
_nop_();
scl = 1;
_nop_();
scl = 0;
_nop_();
}
void NoAck() //发无确认信号
{
scl = 0;
_nop_();
sda = 1;
_nop_();
scl = 1;
_nop_();
scl = 0;
_nop_();
}
//void resp
文档评论(0)