⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display7.c

📁 单片机时时通信程序 向欻耨发一组8位数据 可在P1口电量相应的灯
💻 C
字号:
/*************************************************** 
描 述:串行通讯 
硬 件:BK51_KIT V2.0开发板 
整 理:huzy 
日 期:2008-11-13 
***************************************************/ 
#include <reg51.h>
#include <string.h>

#define uint unsigned int                                                       //定义一下方便使用
#define uchar unsigned char
#define SMG P0

sbit K1=P2^6; 									//定义数码管的位控制开关
sbit K2=P2^7;
sbit key=P3^2;
uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay (uint t)	;
void display(uint ss,uint s);
#define led P1							//声明一个延时函数


void init_serialcomm(void)
{
    SCON  = 0x50;       //SCON: 串口工作方式1,允许接收 
    TMOD |= 0x20;       //TMOD: 定时器1的工作方式2 
    PCON |= 0x80;       //SMOD=1; 
    TH1   = 0xF4;       //Baud:4800  fosc=11.0592MHz 
    IE   |= 0x90;       //开总中断,开串口中断
    TR1   = 1;          // 开启定时器1 
    
}

	  

//串口接收中断函数 
void serial () interrupt 4  
{ uint s,ss;
unsigned char ch;

    if(RI)	                     //接收中断
    {	RI=0;//清除接收中断标志位
        ch=SBUF;
        ss=ch/10;
        s=ch-ss*10;
			  led=ch;
		display(ss,s);
		return ;
					 	 //读出接收到的数据
    }
}
void display (uint ss,uint s)									//主程序
{
 


while(RI==0)
 {
 
		 K1=1;
		 K2=0;
		 SMG=smg[ss];                                                //第一个数码管显示 
		 delay(50);
		 K1=0;
		 K2=1;
		 SMG=smg[s];                                                 //第二个数码管显示
		 delay(50);

 }
}
void delay(uint t)								 //延时函数
{
 while(t--);
}
	

main()
{ 
	init_serialcomm();	   //初始化串口
    while(1)
	{}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -