红外遥控收发机;电子综合设计课程报告;通信工程


通信工程专业电子综合设计课程的红外遥控收发机项目。基于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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)