📄 text1.c
字号:
#include <reg51.h>
#include<stdio.h>
#define P8279DataAddr 0x0000 //a0=0,8279数据地址
#define P8279CommandAddr 0x8000 //a0=1,命令地址
#define uchar unsigned char
#define uint unsigned int
uchar keyNumber; //获取的键盘值
Uart_Init();
sbit P26=0xA6; //P2.6位
sbit P27=0xA7; //P2.7位
void SendCommand(uchar c8279com);//发送命令
void SendData(uchar c8279data);//发送数据
uchar GetData() ; //获得键值
void Delay() ; //延时子程序
bit Change_Flag;
void Update_LED();
main()
{ Uart_Init();
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
Delay();
EX0=1; /* 外部中断0允许 */
EA=1; /* 全局中断允许 */
SendCommand(0x00); //没有特殊要求一般都可以这样初始化0
SendCommand(0x2a); //分频10
SendCommand(0xdf); //清屏
while(1)
{ ;
}
}
void Int0_isr() interrupt 0 using 0
{
SendCommand(0xdf); //清屏
SendCommand(0x40); //发出读键盘命令
keyNumber=GetData(); //读键盘
if(keyNumber<0x0f) //这里按顺序接了16个键,返回的键盘码为0~0X0F
{
SendCommand(0x80);
SendData(keyNumber);
keyNumber<<=4;
SendCommand(0x83); //写LED命令,在第三个数码管上显示
SendData(keyNumber); //写LED显示内容
}
else
SendCommand(0xd3); //如果按了最后一个键0X0F,就全屏显示0
}
Uart_Init()
{SCON = 0x52; /* 设置串行口控制寄存器SCON*/
TMOD = 0x21; /* 12M时钟时波特率为2400 */
TCON = 0x69; /* TCON */
TH1 = 0xf3; /* TH1 */
}
void SendCommand(uchar P8279com) //发送命令字
{
*((uchar xdata *)P8279CommandAddr)=P8279com;
Delay();
}
void SendData(uchar P8279data) //发送数据字
{
*((uchar xdata *)P8279DataAddr)=P8279data;
Delay();
}
uchar GetData() //获取键值
{
return*((uchar xdata *)P8279DataAddr);
}
void Delay()
{
uint i;
for(i=0;i<200;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -