- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                电子系统设计实验551单片机最小系统应用
                    《电子系统设计》实验
实验五:51单片机最小系统应用3
班级:11电科2班         姓名:张 俊为       学号:X实验目的和要求
                       
利用24C02断电以后存储的数据不消失的特点,可以做一个断电保护装置。首先利用单片机做一个0—99秒的自动计时器。然后随机关断电源,在通电以后计时器接着断电前的状态继续计时。
          
程序设计
#includereg51.h
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
unsigned char sec;         //定义计数值,每过1 秒,sec 加1
unsigned int tcnt;         //定时中断次数
bit write=0;             //写24C08 的标志;
sbit sda=P2^0;           //I2C 接口SDA定义
sbit scl=P2^1;              //IIC 接口SCL 定义
sbit dula=P2^6;
sbit wela=P2^7;
unsigned char j,k;
void delay(unsigned char i)     //延时程序
{for(j=i;j0;j--)
for(k=125;k0;k--);}
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,     //数码管编码
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void display(uchar bai_c,uchar sh_c)                      //显示程序
{dula=0;
P0=table[bai_c];          //显示百位
dula=1;
dula=0;
wela=0;
P0=0x7e;
wela=1;
wela=0;
delay(5);
dula=0;
P0=table[sh_c];           //显示十位
dula=1;
dula=0;
wela=0;
P0=0x7d;
wela=1;
wela=0;
delay(5);}
void delay1(unsigned char x)          //延时子函数
{ unsigned int i;
for(i=0;ix;i++);}
void flash()                       //延时子函数
{ ;  ; }
void x24c08_init()                //24c02 初始化子程序
{scl=1; flash(); sda=1; flash();}
void start()                       //启动I2C 总线
{sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();}
void stop()                       //停止I2C 总线
{sda=0; flash(); scl=1; flash(); sda=1; flash();}
void writex(unsigned char j)         //写一个字节
{ unsigned char i,temp;
temp=j;
for (i=0;i8;i++)
{temp=temp1; scl=0; flash(); sda=CY; flash(); scl=1; flash();}
scl=0; flash(); sda=1; flash();}
unsigned char readx()            //读一个字节
{unsigned char i,j,k=0;
scl=0; flash(); sda=1;
for (i=0;i8;i++)
{ flash(); scl=1; flash();
if (sda==1) j=1;
else j=0;
k=(k1)|j;
scl=0;}
flash(); return(k);}
void clock()            //I2C 总线应答子函数
{unsigned char i=0;
scl=1; flash();
while ((sda==1)(i255))i++;
scl=0; flash();}
unsigned char x24c08_read(unsigned char address)
{unsigne
                
原创力文档
                        

文档评论(0)