当前位置: 首页 > news >正文

深圳网站制作可选兴田德润网站安全检测可以监测哪些内容风险信息

深圳网站制作可选兴田德润,网站安全检测可以监测哪些内容风险信息,wordpress旧编辑器,深圳网站建设费用多少内容 使用外部中断功能#xff0c;使按下红外遥控器#xff0c;将对应键值编码数据解码后通过数码管显示 红外遥控介绍 红外线简介 人的眼睛能看到的可见光按波长从长到短排列#xff0c;依次为红、橙、黄、绿、青、蓝、紫#xff1b; 其中红光的波长范围为 0.62…内容 使用外部中断功能使按下红外遥控器将对应键值编码数据解码后通过数码管显示 红外遥控介绍 红外线简介 人的眼睛能看到的可见光按波长从长到短排列依次为红、橙、黄、绿、青、蓝、紫 其中红光的波长范围为 0.620.76μm紫光的波长范围为 0.380.46μm比紫光波长还短的光叫紫外线比红光波长还长的光叫红外线 红外线遥控就是利用波长为0.761.5μm之间的近红外线来传送控制信号的 红外遥控的原理 红外遥控是一种无线、非接触控制技术具有抗干扰能力强信息传输可靠功耗低成本低易实现等显著优点被诸多电子设备特别是家用电器广泛采用并越来越多的应用到计算机系统中 红外遥控通信系统一般由红外发射装置和红外接收设备两大部分组成 红外发射装置 红外发射装置也就是通常我们说的红外遥控器是由键盘电路、红外编码电路、电源电路和红外发射电路组成 红外发射电路的主要元件为红外发光二极管它实际上是一只特殊的发光二极管由于其内部材料不同于普通发光二极管因而在其两端施加一定电压时它便发出的是红外线而不是可见光 目前大量的使用的红外发光二极管发出的红外线波长为940nm左右外形与普通发光二极管相同 通常红外遥控为了提高抗干扰性能和降低电源消耗红外遥控器常用载波的方式传送二进制编码常用的载波频率为38kHz这是由发射端所使用的455kHz晶振来决定的在发射端要对晶振进行整数分频分频系数一般取12所以455kHz÷12≈37.9kHz≈38kHz也有一些遥控系统采用36kHz、40kHz、56kHz等一般由发射端晶振的振荡频率来决定 所以通常的红外遥控器是将遥控信号二进制脉冲码调制在38KHz的载波上经缓冲放大后送至红外发光二极管转化为红外信号发射出去的 二进制脉冲码的形式有多种其中最为常用的是NEC Protocol的PWM码(脉冲宽度调制)和Philips RC-5 Protocol的PPM码(脉冲位置调制码脉冲串之间的时间间隔来实现信号调制) 如果要开发红外接收设备一定要知道红外遥控器的编码方式和载波频率我们才可以选取一体化红外接收头和制定解码方案 红外接收设备 红外接收设备是由红外接收电路、红外解码、电源和应用电路组成 红外遥控接收器的主要作用是将遥控发射器发来的红外光信好转换成电信号再放大、限幅、检波、整形形成遥控指令脉冲输出至遥控微处理器 红外接收头的封装大致有两种一种采用铁皮屏蔽一种是塑料封装均有三只引脚即电源正VDD、电源负GND和数据输出VOUT 从正对接收头的凸起处看从左至右管脚依次是 1VOUT2GND3VDD 数据传输 我们使用的红外遥控器使用的是NEC协议其特征如下 1、8位地址和8位指令长度 2、地址和命令2次传输确保可靠性 3、PWM脉冲位置调制以发射红外载波的占空比代表“0”和“1” 4、载波频率为38Khz 5、位时间为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高电平组成)如果在一帧数据发送完毕之后红外遥控器按键仍然没有放开则发射连发码可以通过统计连发码的次数来标记按键按下的长短或次数 原理图 由上图可知开发板的红外装置的数据输出口与外部中断0连接的管脚口p32共用 红外接收头在没有脉冲的时候为高电平当收到脉冲的时候为低电平 所以我们可以通过外部中断的下降沿触发中断在中断内通过计算高电平时间来判断接收到的数据是0还是1 思路 使用外部中断0的下降沿触发方式当接收到脉冲时进入中断函数 在中断函数内部通过高低电平的时间间隔来确定输入的数据注意还需要对控制码校验防止出错 编码 User main.c /** Description: 按下红外遥控器将对应键值编码数据解码后通过数码管显示*/ #include public.h #include smg.h #include ired.hvoid main() {u8 ired_buf[3];ired_init(); // 红外初始化while (1){ired_buf[0] gsmg_code[gired_data[2] / 16]; // 将控制码高4位转换为数码管段码ired_buf[1] gsmg_code[gired_data[2] % 16]; // 将控制码低4位转换为数码管段码ired_buf[2] 0X76; // 显示H的段码smg_display(ired_buf, 6);} }Public public.h #ifndef _public_H #define _public_H#include reg52.htypedef unsigned int u16; // 对系统默认数据类型进行重定义 typedef unsigned char u8;void delay_10us(u16 ten_us); void delay_ms(u16 ms);#endifpublic.c #include public.h/*** description: 延时函数ten_us1时大约延时10us* param {u16} ten_us 延时倍数* return {*}*/ void delay_10us(u16 ten_us) {while (ten_us--); }/**ms延时函数ms1时大约延时1ms**** param {u16} ms 延时倍数* return {*}*/ void delay_ms(u16 ms) {u16 i, j;for (i ms; i 0; i--)for (j 110; j 0; j--); }App/ired ired.h #ifndef _ired_H #define _ired_H#include public.h// 管脚定义 sbit IRED P3 ^ 2;// 声明变量 extern u8 gired_data[4];// 函数声明 void ired_init(void);#endifired.c #include ired.hu8 gired_data[4]; // 存储4个字节接收码地址码地址反码控制码控制反码/*** description: 红外端口初始化函数外部中断0配置* return {*}*/ void ired_init(void) {IT0 1; // 下降沿触发EX0 1; // 打开中断0允许EA 1; // 打开总中断IRED 1; // 初始化端口 }/*** description: 外部中断0服务函数* return {*}*/ void ired() interrupt 0 // 中断号必须对应上 {u8 ired_high_time 0;u16 time_cnt 0;u8 i 0, j 0;if (IRED 0){time_cnt 100;while ((IRED 0) (time_cnt)) // 等待引导信号9ms低电平结束若超过10ms强制退出{delay_10us(10); // 延时约10ustime_cnt--;if (time_cnt 0)return;}if (IRED) // 引导信号9ms低电平已过进入4.5ms高电平{time_cnt 50;while (IRED time_cnt) // 等待引导信号4.5ms高电平结束若超过5ms强制退出{delay_10us(10);time_cnt--;if (time_cnt 0)return;}for (i 0; i 4; i) // 循环4次读取4个字节数据{for (j 0; j 8; j) // 循环8次读取每位数据即一个字节{time_cnt 60;while ((IRED 0) time_cnt) // 等待数据1或0前面的0.56ms低电平结束若超过0.6ms强制退出{delay_10us(1);time_cnt--;if (time_cnt 0)return;}while (IRED) // 等待数据1或0后面的高电平结束若超过2ms强制退出{delay_10us(10); // 这里的延时不能太短否则不能稳定的检测出高电平的时间在0.1ms左右比较好ired_high_time;if (ired_high_time 20)return;}gired_data[i] 1; // 先读取的为低位然后是高位if (ired_high_time 8) // 如果高电平时间大于0.8ms数据则为1否则为0gired_data[i] | 0x80;ired_high_time 0; // 重新清零等待下一次计算时间}}}if (gired_data[2] ! ~gired_data[3]) // 校验控制码与反码错误则返回{for (i 0; i 4; i)gired_data[i] 0;return;}} } App/smg smg.h #ifndef _smg_H #define _smg_H#include public.h#define SMG_A_DP_PORT P0 // 使用宏定义数码管段码口// 定义数码管位选信号控制脚 sbit LSA P2 ^ 2; sbit LSB P2 ^ 3; sbit LSC P2 ^ 4;extern u8 gsmg_code[17]; // 使“共阴极数码管显示0~F的段码数据”这个变量定义为外部可用void smg_display(u8 dat[], u8 pos);#endifsmg.c #include smg.h// 共阴极数码管显示0~F的段码数据 u8 gsmg_code[17] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};/*** description: 动态数码管显示函数* param {u8} dat 要显示的数据* param {u8} pos 从左开始第几个位置开始显示范围1-8* return {*}*/ void smg_display(u8 dat[], u8 pos) {u8 i 0;u8 pos_temp pos - 1;for (i pos_temp; i 8; i){switch (i) // 位选{case 0:LSC 1;LSB 1;LSA 1;break;case 1:LSC 1;LSB 1;LSA 0;break;case 2:LSC 1;LSB 0;LSA 1;break;case 3:LSC 1;LSB 0;LSA 0;break;case 4:LSC 0;LSB 1;LSA 1;break;case 5:LSC 0;LSB 1;LSA 0;break;case 6:LSC 0;LSB 0;LSA 1;break;case 7:LSC 0;LSB 0;LSA 0;break;}SMG_A_DP_PORT dat[i - pos_temp]; // 传送段选数据delay_10us(100); // 延时一段时间等待显示稳定SMG_A_DP_PORT 0x00; // 消影} }编译和结果 按F7编译无错误生成.hex文件使用pz-isp将hex文件下载到单片机 结果按下红外遥控器键位0数码管上显示对应键值编码
http://www.tj-hxxt.cn/news/132840.html

相关文章:

  • 如何做古诗词网站网站建设方案概念
  • 网站下载的wordpress模板如何添加网站建设销售专业话术
  • o2o网站运维建设方案企业电商网站优化
  • 算命网站建设开发手机兼职赚钱一单一结学生
  • 网站建设佰首选金手指十八微信网站平台建设方案
  • 天马行空网站建设wordpress主题开拓右边栏
  • 优化好的网站做企业网站手机百度正式版
  • 长春网站建设880元免费 网站 手机
  • 网站建设怎么支付款项做网站外包是什么意思
  • 做投诉网站赚钱吗市面上做网站多少钱
  • 有没有专门招代理的网站湖北专升本网站建设
  • 做电音的软件的专业下载网站域名邮箱如何注册
  • 建设壁纸网站的目的成都网络运营公司
  • 网站策划专员外贸商城源码
  • dede免费网站模板utf8怎么代理小程序游戏
  • 家具营销型网站模板住房和城乡建设部网站行标
  • 抚州市建设局招标办网站wordpress+图片库
  • 文山州建设局网站设计师自己的网站
  • 网站哪里做wordpress插件安装
  • 建设网站需要数据库备份电子商务网站建设书籍
  • 怎样发展网站网页美工设计中职期末试卷
  • 网站建设布局结构公众号首图制作网站
  • 做网站需要每年都缴费吗免费代理
  • 网站建设gongsi展馆设计网站推荐
  • 网上帮人做网站wordpress pdf文章
  • 有哪些做兼职的网站佛山市住房和建设局网站
  • 建设银行企业版网站好看的个人工作室源码
  • 嘉定网站设计怎么样swiper做的网站
  • 学校的网站怎么做鲜花网站怎么做
  • 摄影师如何做网站凡客诚品 正品官网