找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 230|回复: 0
打印 上一主题 下一主题
收起左侧

4位数码管显示密码锁程序

[复制链接]
跳转到指定楼层
楼主
ID:1108766 发表于 2024-1-10 15:31 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit smg1=P2^0;
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit sda=P2^5;
sbit scl=P2^4;
sbit SOUNDER=P1^7;
uchar a;
uint n=0,m=0,js,error=0;
uchar key;
uchar mima[]={0x00,0x00,0x00,0x00};
uchar e_mima[]={0x01,0x02,0x03,0x04};
uchar new_mima[]={0x01,0x02,0x03,0x04};
uchar code dis[]=         //0~9,A~F的共阴显示代码
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uchar code tab[]=        //矩阵键盘按键位置码
{
0x77,0xb7,0xd7,0xe7,
0x7b,0xbb,0xdb,0xeb,
0x7d,0xbd,0xdd,0xed,
0x7e,0xbe,0xde,0xee
};
void init();
void change_mima();       




void delay02()
{ ;; }
void start()  //开始信号
{       
        sda=1;
        delay02();
        scl=1;
        delay02();
        sda=0;
        delay02();
}

void stop()   //停止
{
        sda=0;
        delay02();
        scl=1;
        delay02();
        sda=1;
        delay02();
}

void respons()  //应答
{
        uchar i;
        scl=1;
        delay02();
        while((sda==1)&&(i<250))i++;
        scl=0;
        delay02();
}

void at2402init()
{
        sda=1;
        delay02();
        scl=1;
        delay02();
}

void write_byte(uchar date)
{
        uchar i,temp;
        temp=date;


        for(i=0;i<8;i++)
        {
                temp=temp<<1;
                scl=0;
            delay02();
                sda=CY;
                delay02();
                scl=1;
                delay02();
        //        scl=0;
     //   delay();
        }
        scl=0;
        delay02();
        sda=1;
        delay02();
}

uchar read_byte()
{
        uchar i,k;
        scl=0;
        delay02();
        sda=1;
        delay02();
        for(i=0;i<8;i++)
        {
                scl=1;
                delay02();       
                k=(k<<1)|sda;
                scl=0;
                delay02();       
        }
        return k;
}

void delay11(uchar x)
{
        uchar a,b;
        for(a=x;a>0;a--)
         for(b=100;b>0;b--);
}

void write_add(uchar address,uchar date)
{
        start();
        write_byte(0xa0);
        respons();
        write_byte(address);
        respons();
        write_byte(date);
        respons();
        stop();
}

uchar read_add(uchar address)
{
        uchar date;
        start();
        write_byte(0xa0);
        respons();
        write_byte(address);
        respons();
        start();
        write_byte(0xa1);
        respons();
        date=read_byte();
        stop();
        re
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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