资源简介

在这个实验中,数码管的读数是经过IIC总线,从型号为24C02C的EPROM中读取出来的,该数字每累加一次,也会把累加后的数值保存到24C02C中,当单片机复位或断电时,该数值就不会丢失,当复位后或再上电时,数码管就能显示刚才的读数并在此基础上继续累加下去。 为了证明单片机的复位电路正常,该实验中还设置了流水灯,这是一个8位LED灯轮流点亮的装置,当复位按键被按下后,流水灯就被复位,它会从第一盏灯亮起,但数码管的读数不受影响。

资源截图

代码片段和文件信息

#include
#include 

#define uint unsigned int 
#define uchar unsigned char

sbit sda = P2^0;
sbit scl = P2^1;

uchar a;

void start()  //开始信号
{
sda = 1;
scl = 1;
_nop_();
sda = 0;//SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号
}

void stop()   //停止
{
sda = 0;
scl = 1;
_nop_();
sda = 1;//SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号
}

void respons()  //应答
{
uchar i;
while((sda == 1) && (i < 10))i ++;//10个机器周期后默认为收到
scl = 1;
_nop_();
scl = 0;
}

void write_byte(uchar date) //写一个字节
{
uchar itemp;
temp = date;

for(i = 0;i < 8;i ++)
{
temp = temp << 1;//左移一位,先把最高位移入CY
scl = 0;
// _nop_();
sda = CY;//程序状态寄存器PSW的第7位CY
// _nop_();
scl = 1;
// _nop_();
}
scl = 0;
}

uchar read_byte() //读一个字节
{
uchar ik;
scl = 0;
_nop_();
sda = 1;
_nop_();
for(i = 0;i < 8;i ++)
{
scl = 1;
_nop_();
k=(k << 1) | sda;
scl = 0;
_nop_();
}
return k;
}

void write_add(uchar deviceuchar addressuchar date) //写数据(器件、地址、数据)
{
start();
write_byte(device);//1010***0(连接:写)
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}

uchar read_add(uchar deviceuchar address) //读数据(器件、地址)
{
uchar date;
start();
write_byte(device);//1010***0(连接:写)
respons();
write_byte(address);//伪写(器件内地址)
respons();
start();
write_byte(device + 1);//1010***1(连接:读)
respons();
date = read_byte();
stop();
return date;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         19  2012-04-20 21:24  ReadNum\ExtDll.iex

     文件     466446  2012-05-10 23:35  ReadNum\Last Loaded ReadNum.DBK

     文件     410302  2012-05-11 17:31  ReadNum\ReadNum.DSN

     文件        885  2012-05-11 17:32  ReadNum\ReadNum.PWI

     文件       1628  2012-04-20 21:28  ReadNum\read_IIC.c

     文件       4402  2012-04-20 21:42  ReadNum\read_IIC.LST

     文件       5837  2012-04-20 21:42  ReadNum\read_IIC.OBJ

     文件       9930  2012-04-20 21:42  ReadNum\read_num

     文件       1516  2012-04-22 15:31  ReadNum\read_num.c

     文件       1672  2012-04-20 21:42  ReadNum\read_num.hex

     文件         65  2012-04-20 21:42  ReadNum\read_num.lnp

     文件       4253  2012-04-20 21:42  ReadNum\read_num.LST

     文件      12830  2012-04-20 21:42  ReadNum\read_num.M51

     文件       5354  2012-04-20 21:42  ReadNum\read_num.OBJ

     文件        203  2012-05-11 17:30  ReadNum\read_num.plg

    .......    277213  2012-05-11 17:30  ReadNum\read_num.uvgui.Administrator

    .......    276348  2012-04-22 15:31  ReadNum\read_num.uvgui_Administrator.bak

    .......      8320  2012-05-11 17:30  ReadNum\read_num.uvopt

     文件      13449  2012-04-20 17:00  ReadNum\read_num.uvproj

    .......      8320  2012-04-22 15:31  ReadNum\read_num_uvopt.bak

     文件      13279  2012-04-20 16:02  ReadNum\read_num_uvproj.bak

     文件     103936  2012-05-11 17:33  ReadNum\操作说明.doc

     目录          0  2012-05-11 17:33  ReadNum

----------- ---------  ---------- -----  ----

              1626207                    23


评论

共有 条评论