?? main.c
字號(hào):
#define uchar unsigned char //定義一下方便使用
#define uint unsigned int
#define ulong unsigned long
#include <reg52.h> //包括一個(gè)52標(biāo)準(zhǔn)內(nèi)核的頭文件
//本課試驗(yàn)寫入一個(gè)字節(jié)到24c02中
char code dx516[3] _at_ 0x003b;//這是為了仿真設(shè)置的
#define WriteDeviceAddress 0xa0 //定義器件在IIC總線中的地址
#define ReadDviceAddress 0xa1
sbit SCL=P2^7;
sbit SDA=P2^6;
sbit P10=P1^0;
//定時(shí)函數(shù)
void DelayMs(uint number)
{
uchar temp;
for(;number!=0;number--)
{
for(temp=112;temp!=0;temp--) ;
}
}
//開(kāi)始總線
void Start()
{
SDA=1;
SCL=1;
SDA=0;
SCL=0;
}
//結(jié)束總線
void Stop()
{
SCL=0;
SDA=0;
SCL=1;
SDA=1;
}
//測(cè)試ACK
bit TestAck()
{
bit ErrorBit;
SDA=1;
SCL=1;
ErrorBit=SDA;
SCL=0;
return(ErrorBit);
}
//寫入8個(gè)bit到24c02
Write8Bit(uchar input)
{
uchar temp;
for(temp=8;temp!=0;temp--)
{
SDA=(bit)(input&0x80);
SCL=1;
SCL=0;
input=input<<1;
}
}
//寫入一個(gè)字節(jié)到24c02中
void Write24c02(uchar ch,uchar address)
{
Start();
Write8Bit(WriteDeviceAddress);
TestAck();
Write8Bit(address);
TestAck();
Write8Bit(ch);
TestAck();
Stop();
DelayMs(10);
}
//老鼠愛(ài)大米
uchar code dami[]={
"321-|3.2_1-|3231|3_6.5-|3_5_665|65-3_2_|122_3_2|12--|"
};
//本課試驗(yàn)寫老鼠愛(ài)大米的樂(lè)譜到24c02中
void main(void) // 主程序
{
uchar i;
for(i=0;dami[i]!=0;i++)
{
Write24c02(dami[i],i);// 逐個(gè)寫入到24c02的中
}
Write24c02(0x00,i); //寫入最后一個(gè)0
P10=0; //指示運(yùn)行完畢
while(1); //程序掛起
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -