ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:297.34KB ,
资源ID:21154363      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21154363.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统作业Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统作业Word文档格式.docx

1、接收系统仿真原理图如图4所示。图4红外接收系统模块3.LED数码显示系统模块 采用多位一体数码管显示,以发光二极管为组成单元的显示器件。采用共阴极数码管工作模式:阴极接在一起,低电平,阳极为高电平时,则对应的LED灯亮。工作原理图如图5所示。图5 LED数码管工作原理图系统红外接收LED数码显示模块Multisim原理图如图6所示。图6数码显示模块原理图二、软件设计模块1.发送模块程序设计 通过按键来控制I/O口电平高低转换。由I/O口电平转换,组成红外编码时序图,然后通过开关上移、下移、左移、右移按键控制响应功能程序,并实现红外编码的调制。相应程序设计流程图如图7所示。图7 发送模块程序设计

2、流程图2.接收模块程序设计 (1)红外接收模块是通过中断的方式来接收红外的信号,具体接收流程图如图8所示。图 8 中断接收流程图(2)通过中断接收的红外调制信号,按照图9所示的解调和解码。解码过程中,通过判读是否接收到引导码来判断接收的信号是否是用户码,然后并对用户码进行识别,确认键码后解码。利用接收波形的下降沿使单片机产生中断,相邻两次中断(两个下降沿)的间隔时间由定时器计时图9解码流程图3.数码管显示程序设计数码管显示模块,通过单片机识别解码数据,并根据数据十进制高地位进行显示,设定片选每一位的显示时间。每次中断切换数码管,四次为一个周期,定时时间4ms。已知三个数码管分别显示十位、个位和

3、十分位,对解码后的程序首先进行十位判断,如果有值则进行零值判断,如果无值则进行个位判断,依次到十分位判断,三个有效位依次根据判断顺序进行查表,并通过单片机程序片选十位、个位和十分位数码管进行显示。根据一个周期4ms,对数码管进行扫描显示,就形成了红外编码显示。具体程序设计流程图如图10所示。图10 数码管显示程序设计流程图8051源程序#include / 函数原型 void SystemInit(void); void Delay_840us(void);void Delay_2400us(void);void LedDisp();unsigned char GetCode(void);/获

4、得码 void delay(unsigned char loop); / 位变量 sbit IRIN = P32;sbit BEEP = P16;sbit swch = P17; / 变量 unsigned char KeyValue; /机器码 unsigned char MaValue; /键值码;unsigned char disbuf4; /数码管显示缓冲 unsigned char scan4=0x04,0x08,0x10,0x20; /p2位选择 unsigned char code table16 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07

5、,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71; /*延时 */ void delay(unsigned char loop) unsigned char i; for(i=0;i8); TR1=1; while(!TF1); TF1=0; TR1=0; /*延时9ms */ void Delay_9000us(void) TL1 = 153.6; TH1 = 223.6; TR1 = 1; TF1 = 0; TR1 = 0; /*延时4.5ms */ void Delay_4500us(void) TH1 = 239.8; TL1 = 204.8; /*系统

6、初始化*/ void SystemInit(void) IRIN = 1; IT0 = 1; /INT0负跳变触发 TMOD = 0x10; /定时器1工作在方式1 EA = 1; EX0 = 1;/*读码*/ unsigned char GetCode() unsigned char n; static temp = 0; for( n = 0; n 1); / 1 while(IRIN); /等待跳变成低电平 else temp=(0x00|(temp / 0 return temp; /*数码管显示*/ void LedDisp() i4)&0x0f); disbuf1=KeyValue

7、&0x0f; disbuf2=(MaValue& disbuf3=MaValue& LedDisp(); void interr_ir(void) interrupt 0 /*用户码和机器码*/ unsigned char addrl,addrh,num1,num2; EA = 0; /先关闭外部中断0 Delay_9000us(); / 检测9ms开始码 if (IRIN) / 检测是否为干扰信号 / 重新开启外部中断0 return ; / 退出解码 / 等待跳为高电平 Delay_4500us(); / 检测4.5ms结果码 / 读码 addrl=GetCode(); / 用户编码高位 addrh=GetCode(); / 用户编码低位 num1=GetCode(); / 机器码 num2=GetCode(); / 机器码反码 /校验是否为错码 if(num1!=num2) KeyValue=14; EA=1; return; KeyValue=num2; MaValue=addrh;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1