找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2048|回复: 2
收起左侧

关于AT89c51单片机中用AT24C02的问题

[复制链接]
ID:768342 发表于 2020-6-3 13:01 | 显示全部楼层 |阅读模式
代码怎么修改可以实现图上的内容  有AT24C02的头文件
51hei截图20200603130003.png
51hei截图20200603125944.png
IMG_20200603_125747.jpg
回复

使用道具 举报

ID:768342 发表于 2020-6-3 13:06 | 显示全部楼层
前面的程序图不完整C:\Users\19429\Desktop
回复

使用道具 举报

ID:768342 发表于 2020-6-3 13:15 | 显示全部楼层
#include<reg51.h>
#include<AT24C02.h>
#define uchar unsigned char
#define        uint unsigned int
sbit P3_2=P3^2;
uchar code led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,     
0x6d,0x7d,0x07,0x7f,0x6f,0x00};  
uchar code BitCode[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};   
uchar huanchong[]={10,10,10,10,10,10,10,10};            
uchar convert[]={10,10,10,10,10,10,10,10};              
uchar a=0;

void int0()  interrupt 0
{
        uchar code RowCode[]={0xfe,0xfd,0xfb,0xf7};     
        uchar temp,row,column,i,y,z;
        uchar m,n;
        P1=0xf0;                    
        temp = P1 & 0xf0;
            if (temp != 0xf0)                          
                        {
       P2=0xff;
       switch (temp)
                   {                                      
                                 case 0x70: column = 3; break;
                                 case 0xb0: column = 2; break;
                                 case 0xd0: column = 1; break;
                                 case 0xe0: column = 0; break;
                                 default: break;
                         }
                         for (i=0;i<4;i++)                     
                         {
                                 P1 = RowCode[i];
                                 temp = P1 & 0xf0;
                                 if (temp !=0xf0)
                                 {
                                         row = i;break;
                                 }
                         }
                         y= row *4 + column;                    
                         if(y<10)
                         {
                                 if(a<8)
                                 {                        
                                         huanchong[a++]=y;
                             m=a;
                                         for(n=0;n<a;n++)
                       {
                                convert[n]=huanchong[--m];  
                             }   
                                 }
                         }
             if(y>=10)
                         {                          
                                 P2=0xff;
                                 a=0;                           
                                 for(z=0;z<8;z++)
                                 {
                                         huanchong[z]=10;              
                                         convert[z]=10;               
                                 }
                   }
                        while((P1 & 0xf0) !=0xf0);         
         }
                       
}

void BufToSeg(void)                        
{                       
        uchar i=0;
        for(;i<8;i++)
        {
      
                P0=led_mod[10];                       
                P2= BitCode[i];                       
                P0=led_mod[convert[i]];               
        }
}

void main(void)
{
        EA=1;
        EX0=1;                        
        IT0=1;                        
        while(1)
        {
                P1=0x0f;
                BufToSeg();                  
        }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表