77范文网 - 专业文章范例文档资料分享平台

课程设计 - 红外遥控电子密码锁的设计与实现(6)

来源:网络收集 时间:2019-01-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

res=Red_check();//获得此次高脉冲宽度 if(res==250) { break;//非有用信号 }

if(res>=200&&res<250) { OK=1; //获得前导位(4.5ms) }

else if(res>=70&&res<100) //如果是宽脉冲,则RODATA=1 {

aa++;

RODATA=1;// 1.69ms } else if(res>=10&&res<50) //如果是窄脉冲,则RODATA=0 {

aa++;

RODATA=0;//500us }

//前1-8位是遥控器地址码,9-16位是地址反码,17-24是键值码,25-32是是键值反码

//获取正码

if(OK&&(aa>=0)&&(aa<8)) {

RED_add<<=1;

RED_add=RED_add+(uchar)RODATA; }

if(OK&&(aa>=17)&&(aa<25)) {

RED_key<<=1;

RED_key=RED_key+(uchar)RODATA; }

if(aa==32&&RED_add==0) {

KEY_main=Red_change(RED_key);break; } } } }

//把红外数据进行转换

uchar Red_change(uchar rednum) {

switch(rednum) {

23

case 16 :return 0; case 48:return 1; case 176:return 2; case 112:return 3; case 8:return 4; case 136:return 5; case 72:return 6; case 40:return 7; case 168:return 8; case 104:return 9;

case 0:return 10;//电源开关 case 32:return 11;//EQ case 144 :return 12;//快退 case 80:return 13;//快进 case 160:return 14;//声音减 case 96:return 15;//声音加 case 128:return 16;//CH - case 64:return 17;//CH + default: return 255; } }

7.3 矩阵键盘模块

#include \

#define KEY P2

void Key(void) {

uchar i = 0; uchar j = 0; uchar k = 0; KEY= 0x0F; i = KEY; if(i != 0x0F) { uint l=0; Delay(1000); KEY= 0x0F; i = KEY; if(i != 0x0F) {

24

KEY = 0x0F; i = KEY; KEY = 0xF0; j = KEY; k = i | j; KEY_change(k); } while(KEY !=0xf0 && l<2000) { KEY = 0xf0; l++; } } }

void KEY_change(uchar i) {

switch(i) { case 0xED:{KEY_main= 1;break;} case 0xDD:{KEY_main= 2;break;} case 0xBD:{KEY_main= 3;break;} case 0xEB:{KEY_main= 4;break;} case 0xDB:{KEY_main= 5;break;} case 0xBB:{KEY_main= 6;break;} case 0xE7:{KEY_main= 7;break;} case 0xD7:{KEY_main= 8;break;} case 0xB7:{KEY_main= 9;break;} case 0xEE:{KEY_main= 10;break;} case 0xDE:{KEY_main= 0;break;} case 0xBE:{KEY_main= 11;break;} default: break; } }

void Delay(unsigned int i) {

while(-- i); }

void INIT_TIME_0() {

TMOD = 0X00; TH0 = 0X0E; TL0 = 0;

25

ET0 =1; TR0 = 1; }

void KEY_TIME_0() interrupt 1 using 0 {

TH0 = 0X0E; TL0 = 0; Key(); }

7.4 LCD12864显示

#include \

sbit CS = P0^3; sbit SID = P0^2; sbit CLK = P0^1; sbit RESET = P0^0;

#define lcdcom_w 0xf8 #define lcdcom_r 0xfc #define lcddata_w 0xfa #define lcddata_r 0xfd

//汉字地址表

uchar code addr_tab[]={ //便于根据汉字坐标求出地址 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置 };

//***************************************************** // 函 数 名:void Delay_LCD(void) // 功 能:5ms延时

//****************************************************/ void Delayms(uint t) //约延时ms {uint i;while(t--){for(i=0;i<125;i++);}}

void LCD_SendByte(uchar Dbyte) {

unsigned char i; for(i=0;i<8;i++) { CLK = 0;

26

Dbyte=Dbyte<<1; SID = CY; CLK = 1; CLK = 0; } }

/********************************************************** 接收一个字节

***********************************************************/ uchar LCD_ReceiveByte() {

unsigned char i,temp1,temp2; temp1=temp2=0; for(i=0;i<8;i++) { temp1=temp1<<1; CLK = 0; CLK = 1; CLK = 0; if(SID) temp1++; }

for(i=0;i<8;i++) { temp2=temp2<<1; CLK= 0; CLK= 1; CLK= 0; if(SID) temp2++; }

return ((0xf0&temp1)+(0x0f&temp2)); }

/**************************************************************** 检查忙状态

******************************************************************/

void LCD_Read_busy() {

do {

LCD_SendByte(lcdcom_r); //11111,RW(1),RS(0),0 }

while(0x80&LCD_ReceiveByte()); }

void LCD_Write(uchar k, uchar value) // k = 0 写命令,k = 1 写数据

27

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库课程设计 - 红外遥控电子密码锁的设计与实现(6)在线全文阅读。

课程设计 - 红外遥控电子密码锁的设计与实现(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/419491.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: