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

📄 +

📁 51单片机配套C程序
💻
字号:
/********************************************************************************
*  描述:                                                                       *
*         lcd1602显示 遥控键值读取器                                           *
*         lcd1602显示 遥控器接p3.2                                             *
*         喇叭接p3.7  继电器接p1.0                                             *
*         17(40h)键按下,继电器吸合。19(04h)键按下,继电器关闭。               *
*                                                                              *
*******************************************************************************/
#include <reg51.h>
#include <intrins.h>
#define  NOP() _nop_()  /* 定义空指令 */

//SPI IO
sbit MOSIO =P3^4;
sbit S_CLK =P3^5;
sbit R_CLK =P3^6;

unsigned char Y0,LED7;

void delay(unsigned int i);      //函数声名
void HC595SendData(unsigned int SendVal);
extern void IRInit();    //extern 是引用IR.C中的函数


// 此表为 LED 的字模            // 0    1    2    3    4    5    6   7    8    9    A    b    c    d    E    -    L   P    U    Hidden  _ (20)
unsigned char code Disp_Tab[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0xbf,0xc7,0x8c,0xc1, 0xff,  0xf7 }; 
unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};



main()
{  unsigned int HC595SendVal;
  	IRInit();
	while(1)
	{
    //显示红外键码
    LED7=LED7Code[Y0];
    //HC595SendVal = LED7;
	//HC595SendData(HC595SendVal);
    P0=LED7;
	
	delay(3);	
   }

   	
}

void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
}


/*********************************************************************************************************
** 函数名称: HC595SendData
** 功能描述: 向SPI总线发送数据
*********************************************************************************************************/
void HC595SendData(unsigned int SendVal)
{  
  unsigned char i;
		
  for(i=0;i<16;i++)   //16为 有两片74HC595
   {
	if((SendVal<<i)&0x8000) MOSIO=1; //set dataline high
	else MOSIO=0;
 
	S_CLK=0;
	NOP();
	NOP();
	S_CLK=1;	
   }
   
	
  R_CLK=0; //set dataline low
  NOP();
  NOP();
  R_CLK=1; //片选

}




⌨️ 快捷键说明

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