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

📄 xiang.txt

📁 使用蜂鸣器产生汽车警笛声 同时指示灯像警灯一样闪烁
💻 TXT
字号:
#include "reg52.h"
#include "ps2.h"

#define THCO   0xee
#define TLCO   0x0

unsigned char  code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//共阴极数码管,0-9段码表
unsigned char  Data_Buffer[4]={0,0,0,0};
//四个数码管显示数值,数组变量定义

sbit P10=P1^0;		//四个数码管的位码口定义
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;

void main()
{
    unsigned char okborad;

 	TMOD=0x20;	//方式控制字
	SCON=0x50;	
	TH1=0xfd;	//设置波特率为9600
	TL1=0xfd;
	TR1=1;	    //开定时器1

	TH0=THCO;
 	TL0=TLCO;
 	TR0=1;
 	ET0=1;
 	EA=1;

    while(1)
	{  	  	   	   
	   if(KeyReadFromPS2(&okborad))//PS2扫描 且如果成功接收一个键盘通码,就转换成ASC2码
       { 				
	   		okborad=KeyValueToASCCII(okborad);	 //发送到串口
			
			SBUF=okborad;	//将转化后的数据发到串口
			while(TI==0);
			TI=0;
			
			if(okborad>=0x30&&okborad<=0x39) //数字需显示到数码管上
			{
				Data_Buffer[0]=0;
				Data_Buffer[1]=0;		
				Data_Buffer[2]=0;		
				Data_Buffer[3]=okborad-0x30;
			}
		}
	}
}

void timer0() interrupt 1
{
 static unsigned char Bit=0;	//静态变量,退出程序后,值保留
 
 TH0=THCO;
 TL0=TLCO;

 Bit++;	
 if(Bit>=4)Bit=0;
 P1|=0x0f;					//先关位码
 P0=Duan[Data_Buffer[Bit]];	//开段码
 switch(Bit)				//送位码
 {
  case 0: P10=0;break;
  case 1: P11=0;break;
  case 2: P12=0;break;
  case 3: P13=0;break;
 }
}           

⌨️ 快捷键说明

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