单片机 例题 12.1
#include "reg51.h"
#define FOSC 18432000L
#define BAUD 115200
sfr AUXR =0x8E;
sfr TH2 =0xD6;
sfr TL2 =0xD7;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit P30 = P3^0;
sbit P31 = P3^1;
sbit P32 = P3^2;
sbit P33 = P3^3;
sbit P34 = P3^4;
sbit P35 = P3^5;
sbit P36 = P3^6;
sbit P37 = P3^7;
sfr P4 = 0xC0;
sbit P40 = P4^0;
sbit P41 = P4^1;
sbit P42 = P4^2;
sbit P43 = P4^3;
sbit P44 = P4^4;
sbit P45 = P4^5;
sbit P46 = P4^6;
sbit P47 = P4^7;
bit busy=0;
xdata char menu[]={"\r\n------main menu---------------"
"\r\n input 1: Control LED10 "
"\r\n input 2: Control LED9 "
"\r\n other : Exit Program"
"\r\n------end menu----------------"
};
void SendData(unsigned char dat)
{
while(busy);
SBUF=dat;
busy=1;
}
void SendString(char *s)
{
while(*s!='\0')
SendData(*s++);
}
void uart1() interrupt 4
{
if(RI)
RI=0;
if(TI)
TI=0;
busy=0;
}
void main()
{
unsigned char c;
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
P16=0;
P27=0;
SCON=0x50;
AUXR=0x14;
AUXR|=0x01;
TL2=(65536-((FOSC/4)/BAUD));
TH2=(65536-((FOSC/4)/BAUD))>>8;
ES=1;
EA=1;
SendString(&menu);
while(1){
if(RI==1)
{
c=SBUF;
if(c==0x31)
{ P27=1;
SendString("\r\n '1' received");
}
else if(c==0x32)
{ P27=0;
SendString("\r\n '2' received");
}
else
{
SendString("\r\n Exit Program");
}
}
}
}