资源简介

通信工程专业电子综合设计课程的红外遥控收发机项目。基于STC89C52RC单片机进行红外遥控器的红外解码,和控制led灯泡的明灭控制。包括了最后需要提交的报告,以及实物照片。源代码和pcb图都在此文件里,可以给同样进行该项目课程的同学们借鉴一下开发,设计过程

资源截图

代码片段和文件信息

	#include 
#include “1602.h“
#include “delay.h“

#define CHECK_BUSY


sbit RS = P2^4;   //定义端口 
sbit RW = P2^5;
sbit EN = P2^6;
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led7 = P1^7;

#define RS_CLR RS=0 
#define RS_SET RS=1

#define RW_CLR RW=0 
#define RW_SET RW=1 

#define EN_CLR EN=0
#define EN_SET EN=1

#define DataPort P0

/*------------------------------------------------
              判忙函数
------------------------------------------------*/
#include “intrins.h“ 
bit LCD_Check_Busy(void) 
 { 
#ifdef CHECK_BUSY
 DataPort= 0xFF; 
 RS_CLR; 
 RW_SET; 
 EN_CLR; 
 _nop_(); 
 EN_SET;
 return (bit)(DataPort & 0x80);
#else
 return 0;
#endif
 }
/*------------------------------------------------
              写入命令函数
------------------------------------------------*/
 void LCD_Write_Com(unsigned char com) 
 {  
// while(LCD_Check_Busy()); //忙则等待
 DelayMs(5);
 RS_CLR; 
 RW_CLR; 
 EN_SET; 
 DataPort= com; 
 _nop_(); 
 EN_CLR;
 }
/*------------------------------------------------
              写入数据函数
------------------------------------------------*/
 void LCD_Write_Data(unsigned char Data) 
 { 
 //while(LCD_Check_Busy()); //忙则等待
 DelayMs(5);
 RS_SET; 
 RW_CLR; 
 EN_SET; 
 DataPort= Data; 
 _nop_();
 EN_CLR;
 }


/*------------------------------------------------
                清屏函数
------------------------------------------------*/
 void LCD_Clear(void) 
 { 
 LCD_Write_Com(0x01); 
 DelayMs(5);
 }
/*------------------------------------------------
              写入字符串函数
------------------------------------------------*/
 void LCD_Write_String(unsigned char xunsigned char yunsigned char *s) 
 {     
 if (y == 0) 
    {     
     LCD_Write_Com(0x80 + x);     //表示第一行
    }
 else 
    {      
    LCD_Write_Com(0xC0 + x);      //表示第二行
    }        
 while (*s) 
    {     
 LCD_Write_Data( *s);     
 s ++;     
    }
 }
/*------------------------------------------------
              写入字符函数
------------------------------------------------*/
 void LCD_Write_Char(unsigned char xunsigned char yunsigned char Data) 
 {     
 if (y == 0) 
    {     
    LCD_Write_Com(0x80 + x);     
    }    
 else 
    {     
    LCD_Write_Com(0xC0 + x);     
    }        
 LCD_Write_Data( Data);  
 }
/*------------------------------------------------
              初始化函数
------------------------------------------------*/
 void LCD_Init(void) 
 {
   LCD_Write_Com(0x38);    /*显示模式设置*/ 
   DelayMs(5); 
   LCD_Write_Com(0x38); 
   DelayMs(5); 
   LCD_Write_Com(0x38); 
   DelayMs(5); 
   LCD_Write_Com(0x38);  
   LCD_Write_Com(0x08);    /*显示关闭*/ 
   LCD_Write_Com(0x01);    /*显示清屏*/ 
   LCD_Write_Com(0x06);    /*显示光标移动设置*/ 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-14 18:23  作业\
     文件        1027  2018-11-14 18:22  作业\作业.lnk
     目录           0  2018-11-14 18:44  电子综合设计报告\
     文件     1059203  2018-11-14 18:44  电子综合设计报告\电子综合设计报告.docx
     目录           0  2018-11-14 18:18  硬件设计原始文件\
     文件    20102144  2018-11-14 18:12  硬件设计原始文件\红外遥控收发机.PcbDoc
     文件      150016  2018-11-14 18:12  硬件设计原始文件\红外遥控收发机.SCHDOC
     目录           0  2018-11-14 18:22  软件设计原始文件\
     文件         323  2018-11-09 00:27  软件设计原始文件\1602.h
     文件          87  2018-11-09 00:35  软件设计原始文件\delay.h
     文件        9458  2018-11-14 16:10  软件设计原始文件\IR.c

评论

共有 条评论