YZ896571534 2020-04-26 15:09 采纳率: 0%
浏览 241

我们上课留的一个作业,一个门禁系统的程序清单,要求让功能不变的情况下,自己写一个一样功能的。感觉好难啊。。。。。是用uVision4写的。

#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define nop() nop()
#define INBUF_LEN 4 //数据长度
#define Nop() _nop() //定义空指令
sbit key1=P3^5;
sbit key2=P3^6;
sbit SDA=P3^4; //模拟I2C数据传送位
sbit SCL=P3^3; //模拟I2C时钟控制位
bit ack; //应答标志位

unsigned char ch;
unsigned char RevBuffer[30];
unsigned char RevBuffer1[30];
uchar data bMenued,count,flag1;
bit flag2;
sbit BEEP=P2^1;
sbit door=P2^0;

#include"rc522.c"
#include"LCD1602.H"
#include"1402.H"

void main()
{
uchar i;
init_1602();
InitRc522();
flag=0;
IRcvStr(0xae,8,RevBuffer1,8);
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH0=-500000%256;
TL0=-50000%256;
EA=1;
ET0=1;
ET1=1;
TR0=0;
TR1=0;
while(1)
{

// flag2=0;
keyscan(); //按键判断
if(flag==0) //是否开门
{
ctrlzhu();
if (RI==1)
{

RI = 0 ;
ch=SBUF;

}
}
if(flag==1) //写入信号
{
ctrlxie();
if (RI==1)
{

RI = 0 ;
ch=SBUF;

}
}
if(flag==2) //清零信号
{
ctrlqing();
if (RI==1)
{

RI = 0 ;
ch=SBUF;

}
}
if(flag1==1)
{

door=1;
WRITE_LCD1602_COM(0x01); //清屏
WRITE_LCD1602_COM(0x01);
flag1=0;
flag=0;
WRITE_LCD1602_COM(0x80); //显示主页面
for(i=0;i<16;i++)
WRITE_LCD1602_DAT(DIS_TAB1[i]);
WRITE_LCD1602_COM(0x80+0x40);
for(i=0;i<15;i++)//第2行要显示的11个字符
{
WRITE_LCD1602_DAT(table8[i]);
}
ctrlzhu();
if (RI==1)
{

RI = 0 ;
ch=SBUF;

}
}
// if(removeflag==1)
// {
// removeflag=0;
// display_cardnum(); //成功显示卡号
// TR0=1;
// }

}

}

  • 写回答

1条回答 默认 最新

  • Richard149 2020-04-26 20:37
    关注

    是51单片机嘛,代码都给出来了,你要求什么呢??

    评论

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机