📄 main.c
字号:
#include <reg52.h>
#include <intrins.h>
sbit key_a=P1^0;
sbit key_b=P1^1;
sbit key_c=P1^2;
sbit key_d=P1^3;
void Send_Byte(void);
unsigned char Floorl,Floorh; //地址高八位和低八位
unsigned char User; //用户数据
void delay(unsigned int z)
{
unsigned char x,x1;
for(;z>0;z--)
{
for(x=0;x<114;x++)
{
for(x1=0;x1<1;x1++);
}
}
}
void Timer0_Init (void)
{
TMOD |= 0x01; // 定时器0工作方式1
// CKCON = 0x00; // 1/12分频
TR0 = 1; //启动定时器1
ET0 = 1; //开定时器0中断
EA =1;
}
void Init_Device(void)
{
Timer0_Init();
}
/********************************************************
数据转换,11表示高 00表示低 01 表示悬空********************************************************/
//void convert(unsigned char add,unsigned char dath,unsigend char datl)
//{
//
//}
void main(void){
Init_Device();
User = 0xaa; //00001100
Floorl = 0xaa; //0aaf=0000 1010 1010 1111
Floorh = 0xaa; //地址码Bit5接高电平
while(1)
{
EA = 0;
if(!key_a)
{
delay(20);
while(!key_a)
{
User = 0xc0;
Send_Byte();
}
delay(20);
}
else if(!key_b)
{
delay(20);
while(!key_b)
{
User = 0x30;
Send_Byte();
}
delay(20);
}
else if(!key_c)
{
delay(20);
while(!key_c)
{
User = 0x0c;
Send_Byte();
}
delay(20);
}
else if(!key_d)
{
delay(20);
while(!key_d)
{
User = 0x03;
Send_Byte();
}
delay(20);
}
EA = 1;
}
}
//
//void Time0() interrupt 1 //定时器0中断函数,读取定时器0的计数
//{
// TF0 = 0;
//}
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -