清翔电子51单片机11课串口通信作业1

/*****************************/
//以4800波特率从计算机发任意一字节数据,
//通过数码管以十进制的形式显示出来
/*****************************/
#include "reg52.h"

#define uchar unsigned char
#define uint unsigned int
uchar num=0;
uchar dis_num = 0;
uint dis_pnum = 0;
sbit we = P2^7;
sbit du = P2^6;
sbit led1 = P1^3;
unsigned char leddata[]={ 
 
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄灭
                0x00  //自定义

};

void delay(uchar y)
{
	uchar i,j;
	for(i = y;i > 0;i--)
		for(j = 114;j > 0;j--)
		;	
}
void display(uchar num)
{
	uchar ge,shi,bai;
	bai = num /100;
	shi = num %100 /10;
	ge = num %10;

	P0 = 0xff;
	we = 1;
	P0 = 0xfb;		//1111 1011
	we = 0;
	du = 1;
	P0 = leddata[shi];
	du = 0;
	delay(5);

	P0 = 0xff;
	we = 1;
	P0 = 0xf7;		//1111 0111
	we = 0;
	du = 1;
	P0 = leddata[ge];
	du = 0;
	delay(5);

	P0 = 0xff;	//清除断码
	we = 1;
	P0 = 0xfd; 			//1111 1101
	we = 0;
	du = 1;
	P0 = leddata[bai];	//显示百位
	du = 0;
	delay(1);

}

//三步走:
//开启此中断的允许位
//开启总中断的允许未
//中断源有中断请求产生

void uart_init()
{
	TMOD = 0x20;
	TH1 = 0xfa;
	TL1 = 0xfa;  // 4800波特率
	TR1 = 1; //开始T1计时器
	SM0 = 0;
	SM1 = 1;  //串行口工作方式1
	REN = 1; //允许串行接受

}
int main()
{
	uart_init();
	EA = 1;//总中断允许位
	ES = 1;//串口中断打开
	while(1)
	{
		display(num); //取出接收SBUF的值赋给数码管显示
	}
	return 0;
}
//中断服务子程序

void uart() interrupt 4
{
	if(RI)
	{
		delay(100);
		led1 = ~led1;
		num = SBUF;
		delay(100);
		RI = 0;			
	}
}

上一篇:创建了默认分区表p0,insert 数据时


下一篇:ios中NSUserDefaults的使用方法