📄 主程序.c
字号:
#include <REG51.H>
#include<absacc.h>
#include <stdio.h>
#include <STRING.H>
#include <MATH.H>
#define DB P0
#define uchar unsigned char
#define uint unsigned int
#include "Lcd1602.h"
//以上代码保留不要删除
uchar revlen ; //目前收到的字符的数目
//单片机初始化:
void InitialCpu()
{
//开串行中断
ET0=0; //关定时中断0
ET1=0; //关定时中断1
ES=1; //开串行中断
EX0=0; //开外部中断0
EX1=0; //开外部中断1
EA=1; //中断允许
IP=0x00; //中断优先级
//串行中断设置:
SCON=0x50; //SM0 SM1 SM2 REN =0101,模式1,允许接收;
//假设波特率19.2k,晶震为11.059M.
PCON=PCON | 0x80; //SMOD=1;
TMOD=0x20 ; //定时器1工作模式2,8位自动重装.当溢出后自动装载TH1到TL1.
TL1=0xFD;
TH1=0xFD; //初值
TR1=1; //启动订时器
}
//接收时要响应串行中断(向量号4),并判断是发送中断还是接收中断.
void uart() interrupt 4
{
uchar row;
uchar col;
if(RI==1)
{
RI=0; //软件清零
if(revlen>=32)
{
revlen=0;
}
if(revlen==0)
{
configure(0x01);
msec(100);
}
if(revlen<16)
{
row=0;
col=revlen;
}
else{
row=1;
col=revlen-16;
}
printchar(row,col, SBUF );
revlen=revlen+1;
}
if(TI==1)
{
TI=0; //软件清零
}
}
//接收时要响应串行中断(向量号4),并判断是发送中断还是接收中断.
/////
main()
{
unsigned char display=0x01;
unsigned char P2Copy;
unsigned char KeyNo;
InitialCpu();
msec(200);
LcdIni();
print(0,0,"hello world", strlen("hello world"));
msec(100);
print(1,0,"51MPU study" , strlen("51MPU study"));
SBUF='a';
revlen =0;
while(1)
{
//跑马灯
P1=display;
msec(50);
if(display<128)
display=display*2;
else display=0x01;
//按键:
P2Copy=P2;
P2Copy=P2Copy & 0xf8 ;
if(P2Copy !=0xf8)
{
//判断键盘编码
KeyNo=P2Copy & 0x08;
if(KeyNo==0)
{
configure(0x01);
msec(50);
print(0,0,"Key 1 Press", strlen("Key 1 Press"));
}
KeyNo=P2Copy & 0x10;
if(KeyNo==0)
{
configure(0x01);
msec(50);
print(0,0,"Key 2 Press", strlen("Key 2 Press"));
}
KeyNo=P2Copy & 0x20;
if(KeyNo==0)
{
configure(0x01);
msec(50);
print(0,0,"Key 3 Press", strlen("Key 3 Press"));
}
KeyNo=P2Copy & 0x40;
if(KeyNo==0)
{
configure(0x01);
msec(50);
print(0,0,"Key 4 Press", strlen("Key 4 Press"));
}
KeyNo=P2Copy & 0x80;
if(KeyNo==0)
{
configure(0x01);
msec(50);
print(0,0,"Key 5 Press", strlen("Key 5 Press"));
}
//等待弹起
while(1)
{
P2Copy=P2;
P2Copy=P2Copy & 0xf8 ;
if(P2Copy ==0xf8) break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -