专门做别墅的网站动漫网站建设规划书模板
- 作者: 五速梦信息网
- 时间: 2026年04月20日 05:05
当前位置: 首页 > news >正文
专门做别墅的网站,动漫网站建设规划书模板,网站的备案在哪备案吗,电脑怎么做网站26.1.1 红外线简介 人的眼睛能看到的可见光按波长从长到短排列#xff0c;依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为 0.62#xff5e;0.76μm#xff1b;紫光的波长范围为 0.38#xff5e;0.46μm。比紫光波长还短的光叫紫外线#xff0c;比红光波长还长的…26.1.1 红外线简介 人的眼睛能看到的可见光按波长从长到短排列依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为 0.620.76μm紫光的波长范围为 0.380.46μm。比紫光波长还短的光叫紫外线比红光波长还长的光叫红外线。红外线遥控就是利用波长为 0.761.5μm 之间的近红外线来传送控制信号的。
红外遥控的原理 红外遥控是一种无线、非接触控制技术具有抗干扰能力强信息传输可靠功耗低成本低易实现等显著优点被诸多电子设备特别是家用电器广泛采用并越来越多的应用到计算机系统中。 由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力所以在设计红外线遥控器时不必要像无线电遥控器那样每套(发射器和接收器)要有不同的遥控频率或编码(否则就会隔墙控制或干扰邻居的家用电器)所以同类产品的红外线遥控器可以有相同的遥控频率或编码而不会出现遥控信号“串门”的情况。这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方便。由于红外线为不可见光因此对环境影响很小再由红外光波动波长远小于无线电波的波长所以红外线遥控不会影响其他家用电器也不会影响临近的无线电设备。 红外遥控通信系统一般由红外发射装置和红外接收设备两大部分组成。
红外发射装置
红外发射装置也就是通常我们说的红外遥控器是由键盘电路、红外编码电路、电源电路和红外发射电路组成。红外发射电路的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管由于其内部材料不同于普通发光二极管因而在其两端施加一定电压时它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为 940nm 左右外形与普通发光二极管相同。红外发光二极管有透明的还有不透明的在我们的红外遥控器上可以看到这个红外发光二极管。红外遥控器和红外发光二极管如下图所示 通常红外遥控为了提高抗干扰性能和降低电源消耗红外遥控器常用载波的方式传送二进制编码常用的载波频率为 38kHz这是由发射端所使用的 455kHz晶振来决定的。在发射端要对晶振进行整数分频分频系数一般取 12所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用 36kHz、 40 kHz、 56 kHz等一般由发射端晶振的振荡频率来决定。所以通常的红外遥控器是将遥控信号二进制脉冲码调制在 38KHz 的载波上经缓冲放大后送至红外发光二极管转化为红外信号发射出去的。 二进制脉冲码的形式有多种其中最为常用的是 NEC Protocol 的 PWM 码 (脉冲宽度调制)和 Philips RC-5 Protocol 的 PPM 码(脉冲位置调制码脉冲串之间的时间间隔来实现信号调制)。如果要开发红外接收设备一定要知道红外遥控器的编码方式和载波频率我们才可以选取一体化红外接收头和制定解码方案。我们配套的红外遥控器使用的是 NEC 协议其特征如下
8 位地址和 8 位指令长度地址和命令 2 次传输确保可靠性PWM 脉冲位置调制以发射红外载波的占空比代表“0”和“1”载波频率为 38Khz位时间为 1.125ms 或 2.25ms NEC 码的位定义一个脉冲对应 560us 的连续载波一个逻辑 1 传输需要2.25ms560us 脉冲1680us 低电平一个逻辑 0 的传输需要 1.125ms560us脉冲560us 低电平。而红外接收头在收到脉冲的时候为低电平在没有脉冲的时候为高电平这样我们在接收头端收到的信号为逻辑 1 应该是 560us 低1680us 高逻辑 0 应该是 560us 低560us 高。所以可以通过计算高电平时间判断接收到的数据是 0 还是 1。NEC 码位定义时序图如下图所示 NEC 遥控指令的数据格式为引导码、地址码、地址反码、控制码、控制反码。引导码由一个 9ms 的低电平和一个 4.5ms 的高电平组成地址码、地址反码、控制码、控制反码均是 8 位数据格式。按照低位在前高位在后的顺序发送。采用反码是为了增加传输的可靠性可用于校验。数据格式如下 NEC 码还规定了连发码(由 9ms 低电平2.5m 高电平0.56ms 低电平 97.94ms 高电平组成)如果在一帧数据发送完毕之后红外遥控器按键仍然没 有放开则发射连发码可以通过统计连发码的次数来标记按键按下的长短或次 数。
红外接收设备
红外接收设备是由红外接收电路、红外解码、电源和应用电路组成。红外遥控接收器的主要作用是将遥控发射器发来的红外光信好转换成电信号再放大、限幅、检波、整形形成遥控指令脉冲输出至遥控微处理器。近几年不论是业余制作还是正式产品大多都采用成品红外接收头。成品红外接收头的封装大致有两种一种采用铁皮屏蔽一种是塑料封装。均有三只引脚即电源正 VDD、电源负GND和数据输出VOUT。其外观实物图如下图所示 正对接收头的凸起处看从左至右管脚依次是 1VOUT2GND3VDD。由于红外接收头在没有脉冲的时候为高电平当收到脉冲的时候为低电平所以可以通过外部中断的下降沿触发中断在中断内通过计算高电平时间来判断接收到的数据是 0 还是 1。
LCD1602 介绍
LCD1602 简介
1602 液晶也叫 1602 字符型液晶它能显示 2 行字符信息每行又能显示 16个字符。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个 5x7 或者 5x10 的点阵字符位组成每个点阵字符位都可以用显示一个字符每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用正因为如此所以它不能很好的显示图片。其实物图如下所示
在上图中可以看到有 16 个管脚孔从左至右管脚编号顺序是 1-16其功能定义如下所示
编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压信号4RS数据/命令选择端(H/L)5R/W读/写选择端(H/L)6E使能信号7D0Data 1/08D1Data 1/09D2Data 1/010D3Data 1/011D4Data 1/012D5Data 1/013D6Data 1/014D7Data 1/015BLA背光源正极16BLK背光源负极
下面对几个管脚做下说明 3 脚VL液晶显示偏压信号用于调整 LCD1602 的显示对比度一般会外接电位器用以调整偏压信号注意此脚电压为 0 时可以得到最强的对比度。
4 脚RS数据/命令选择端当此脚为高电平时可以对 1602 进行数据字节的传输操作而为电平时则是进行命令字节的传输操作。命令字节即是用来对 LCD1602 的一些工作方式作设置的字节数据字节即使用以在 1602 上显示的字节。值得一提的是LCD1602 的数据是 8 位的。
5 脚R/W读写选择端。当此脚为高电平可对 LCD1602 进行读数据操作反之进行写数据操作。
6 脚E使能信号其实是 LCD1602 的数据控制时钟信号利用该信号的上升沿实现对 LCD1602 的数据传输。
7~14 脚8 位并行数据口而 51 单片机一组 IO 也是 8 位使得对 LCD1602的数据读写大为方便。
在 LCD1602 内部含有 80 个字节的 DDRAM它是用来寄存显示字符的。其地址和屏幕的对应关系如下表 从上图可知不是所有的地址都可以直接用来显示字符数据只有第一行中的 00-0F第二行中的 40-4F 才能显示其他地址只能用于存储。要显示字符时要先输入显示字符地址也就是告诉模块在哪里显示字符例如第二行第一个字符的地址是 40H那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢这样不行因为写入显示地址时要求最高位 D7 恒定为高电平 1所以实际写入的数据应该是 01000000B(40H 10000000B(80H)11000000B(C0H)。在 1602 中我们就用前 16 个就行了。第二 行也一样用前 16 个地址。
LCD1602 常用指令
在使用 LCD1602 时我们需要掌握一些常用的指令这些指令对于 LCD1602初始化是必须的。
清屏指令 清除液晶显示器即将 DDRAM 的内容全部填入空白的 ASCII 码 20H;光标归位即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为 0。
模式设置指令 设定每次写入 1 位数据后光标的移位方向并且设定每次写入的一个字符是否移动。 I/D0写入新数据后光标左移 1写入新数据后光标右移 S0写入新数据后显示屏不移动 1写入新数据后显示屏整体右移 1 个字符
显示开关控制指令 控制显示器开/关、光标显示/关闭以及光标是否闪烁。 D0显示功能关 1显示功能开 C0无光标 1有光标 B0光标闪烁 1光标不闪烁
功能设定指令 设定数据总线位数、显示的行数及字型。 DL0数据总线为 4 位 1数据总线为 8 位 N0显示 1 行 1显示 2 行 F05×7 点阵/每字符 15×10 点阵/每字符
LCD1602 使用
要使用 LCD1602首先需要对其初始化即通过写入一些特定的指令实现。 然后选择要在 LCD1602 的哪个位置显示并将所要显示的数据发送到 LCD 的DDRAM。使用 LCD1602 通常都是用于写数据进去很少使用读功能。LCD1602 操 作步骤如下所示
初始化写命令RSL设置显示坐标写数据RSH 在此不需要读出它的数据的状态或者数据本身。所以只需要看两个写时序 ①当要写指令字设置 LCD1602 的工作方式时需要把 RS 置为低电平RW置为低电平然后将数据送到数据口 D0~D7最后 E 引脚一个高脉冲将数据写入。 ②当要写入数据字在 1602 上实现显示时需要把 RS 置为高电平RW 置为低电平然后将数据送到数据口 D0~D7最后 E 引脚一个高脉冲将数据写入。写指令和写数据差别仅仅在于 RS 的电平不一样而已。以下是 LCD1602 的时序图
从上图可以看到以上给的时间参数全部是 ns 级别的而 51 单片机的机器周期是 1us指令周期是 2-4 个机器周期所以即便在程序里不加延时程序也可以很好的配合 LCD1602 的时序要求了。 当要写命令字节的时候时间由左往右RS 变为低电平R/W 变为低平注意看是 RS 的状态先变化完成。然后这时DB0~DB7 上数据进入有效阶段接着 E 引脚有一个整脉冲的跳变接着要维持时间最小值为 tpw400ns 的 E 脉冲宽度。然后E引脚负跳变RS电平变化R/W 电平变化。这样便是一个完整的LCD1602写命令的时序。 注意这里介绍的是 8 位 LCD1602。 LCD1602.c
#include REGX52.H
#include stdio.h
#include LCD1602.h
#include delay.hsbit LCD1602_RSP2^6;
sbit LCD1602_RWP2^5;
sbit LCD1602_ENP2^7;
#define LCD_DataPort P0//дָÁî
void LCD1602_Write_Cmd(unsigned char cmd)
{LCD1602_RS0; //Ñ¡ÔñÃüÁîLCD1602_RW0; //Ñ¡ÔñдLCD1602_EN0; LCD_DataPortcmd; //×¼±¸ÃüÁîdelay_ms(1);LCD1602_EN1; //ʹÄܽÅEÏÈÉÏÉýÑØÐ´Èëdelay_ms(1);LCD1602_EN0; //ʹÄܽÅE¸ºÌø±äÍê³ÉдÈë
}//дÊý¾Ý
void LCD1602_Write_Data(unsigned char dat)
{LCD1602_RS1; //Ñ¡ÔñÊý¾ÝLCD1602_RW0; //Ñ¡ÔñдLCD1602_EN0;LCD_DataPortdat; //×¼±¸Êý¾Ýdelay_ms(1);LCD1602_EN1;delay_ms(1);LCD1602_EN0;
}//³õʼ»¯LCD1602
void LCD1602_Init(void)
{LCD1602_Write_Cmd(0x38); //Êý¾Ý×ÜÏß8룬ÏÔʾ2ÐÐLCD1602_Write_Cmd(0x38);LCD1602_Write_Cmd(0x38);LCD1602_Write_Cmd(0x38);LCD1602_Write_Cmd(0x0c); //ÏÔʾ¹¦ÄÜ¿ª£¬ÎÞ¹â±ê£¬¹â±êÉÁ˸LCD1602_Write_Cmd(0x06); //дÈëÐÂÊý¾Ýºó¹â±êÓÒÒÆ£¬ÏÔʾÆÁ²»Òƶ¯LCD1602_Write_Cmd(0x01); //ÇåÆÁ
}//ÇåÆÁ
void LCD1602_Clear(void)
{LCD1602_Write_Cmd(0x01);
}//ÉèÖùâ±êλÖÃ
void LCD1602_Set_Cursor(unsigned char Line,unsigned char Column)
{if(Line1){LCD1602_Write_Cmd(0x80|(Column-1));}else if(Line2){LCD1602_Write_Cmd(0x80|(Column-10x40));}
}//ÏÔʾ×Ö·û
void LCD1602_Show_Char(unsigned char Line,unsigned char Column,char Char)
{LCD1602_Set_Cursor(Line,Column);LCD1602_Write_Data(Char);
}//ÏÔʾ×Ö·û´®
void LCD1602_Show_String(unsigned char Line,unsigned char Column,char *String)
{unsigned char i;LCD1602_Set_Cursor(Line,Column);for(i0;String[i]!\0;i){LCD1602_Write_Data(String[i]);}
}int LCD1602_Pow(int X,int Y)
{unsigned char i;int Result1;for(i0;iY;i){Result*X;}return Result;
}void LCD1602_Show_Num(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;LCD1602_Set_Cursor(Line,Column);for(iLength;i0;i–){LCD1602_Write_Data(Number/LCD1602_Pow(10,i-1)%100);}
}void LCD1602_Show_Hex_Num(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i,SingleNumber;LCD1602_Set_Cursor(Line,Column);for(iLength;i0;i–){SingleNumberNumber/LCD1602_Pow(16,i-1)%16;if(SingleNumber10){LCD1602_Write_Data(SingleNumber0);}else{LCD1602_Write_Data(SingleNumber-10A);}}
}void LCD1602_Show_Float_Num(unsigned char Line,unsigned char Column,float sum)
{char a[16];sprintf(a,%.2f,sum);LCD1602_Show_String(Line,Column,a);
}
- 上一篇: 专门做cos的网站成都管控最新通告
- 下一篇: 专门做别墅的网站游戏充值代理平台
相关文章
-
专门做cos的网站成都管控最新通告
专门做cos的网站成都管控最新通告
- 技术栈
- 2026年04月20日
-
专门做app的网站福州网站建设策划
专门做app的网站福州网站建设策划
- 技术栈
- 2026年04月20日
-
专门做app的网站h5开发和前端开发区别
专门做app的网站h5开发和前端开发区别
- 技术栈
- 2026年04月20日
-
专门做别墅的网站游戏充值代理平台
专门做别墅的网站游戏充值代理平台
- 技术栈
- 2026年04月20日
-
专门做布料的网站做区块链网站需要注意哪些
专门做布料的网站做区块链网站需要注意哪些
- 技术栈
- 2026年04月20日
-
专门做代工产品的网站网络科技有限公司英文
专门做代工产品的网站网络科技有限公司英文
- 技术栈
- 2026年04月20日
