单片机C语言软件摸拟EV1527编码IC

来源:本站
导读:目前正在解读《单片机C语言软件摸拟EV1527编码IC》的相关信息,《单片机C语言软件摸拟EV1527编码IC》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机C语言软件摸拟EV1527编码IC》的详细说明。
简介:单片机C语言软件摸拟EV1527编码IC

EV1527的编码格式和PT2262的差不多...只要修改按键数据部份就可以控制PT2272...

//引入头文件*********************************************************

#include "delay.h"

#include "delay.c"

#include <pic1684.h>

//时间常数***********************************************************

#define RcOsc 910 //脉冲总宽

//脚位定义***********************************************************

#define Led RA0 //指示输出

//数据输出***********************************************************

#define Out RA1 //数据输出

//按键数据***********************************************************

unsigned char value = 3; //按键的值

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

//函数名称:port_init();

//输入参数:无

//输出参数:无

//功能描述:端口设置

//建造日期:2008.10.11

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

void PortInit(void)

{

OPTION = 0x00; //允许上拉

PORTA = 0xfc; //

TRISA = 0xfc; //A 口设置

PORTB = 0xff; //

TRISB = 0xff; //B 口设置

}

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

//函数名称:TxSycn();

//输入参数:无

//输出参数:无

//功能描述:发送同步头

//建造日期:2008.10.11

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

void TxSycn(void)

{

Out = 1; //同步数据

DelayUs(RcOsc / 16 * 4);

Out = 0;

DelayMs(RcOsc / 16 * 124 / 1000);

}

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

//函数名称:TxByte(data);

//输入参数:待发数据

//输出参数:无

//功能描述:发送一字节数据

//建造日期:2008.10.11

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

void TxByte(unsigned char data)

{

unsigned char i;

for (i = 0; i < 8; i++)

{

if (data & 0x01) //发送高位

{

Out = 1; //高位数据

DelayUs(RcOsc / 16 * 12);

Out = 0;

DelayUs(RcOsc / 16 * 4);

}

else //发送低位

{

Out = 1; //低位数据

DelayUs(RcOsc / 16 * 4);

Out = 0;

DelayUs(RcOsc / 16 * 12);

}

data >>= 1; //右移一位

}

}

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

//函数名称:TxData(data);

//输入参数:按键数据

//输出参数:无

//功能描述:发送数据

//建造日期:2008.10.11

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

void TxData(unsigned char data)

{

unsigned char buff[3] = {0xaa, 0x3c, 0x03};

unsigned char i, j;

buff[2] &= 0x0f; //清除按键

buff[2] |= data; //加载按键

for (j = 0; j < 4; j++) //每帆四次

{

TxSycn(); //送同步头

for (i = 0; i < 3; i++)

{

TxByte(buff[i]); //发送数据

}

}

}

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

//函数名称:KeyRead();

//输入参数:无

//输出参数:无

//功能描述:读取按键

//建造日期:2008.10.11

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

void KeyRead(void)

{

static unsigned char temp = 0; //临时记录

static unsigned char read = 0; //按键记录

static unsigned char sign = 0; //状态标志

static unsigned char time = 0; //防误记时

temp = PORTB & 0x03; //读取按键

if (sign == 0)

{

if (read == temp) //是否稳定

{

if (++time > 50) //防误处理

{

time = 0; //记时清零

sign = 1; //下个状态

value = read; //有效按键

}

}

else time = 0; //从新记时

}

else if (temp == 0x03) sign = 0; //等待弹起

read = temp; //更新记录

}

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

//函数名称:KeyInt();

//输入参数:无

//输出参数:无

//功能描述:按键处理

//建造日期:2008.10.11

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

void KeyInt(void)

{

if (value != 3) //是否有效

{

switch (value)

{

case 0B00000010: //1 号按键

{

Led = 1;

TxData(0x80);

Led = 0;

break;

}

case 0B00000001: //2 号按键

{

Led = 1;

TxData(0x40);

Led = 0;

break;

}

case 0B00000000: //复合按键

{

Led = 1;

TxData(0xc0);

Led = 0;

break;

}

default: //无效离开

{

break;

}

}

value = 3; //执行一次

}

}

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

//函数名称:main();

//输入参数:无

//输出参数:无

//功能描述:主要程序

//建造日期:2008.10.11

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

void main(void) //

{

PortInit(); //脚位设置

while (1)

{

DelayMs(1); //

KeyRead(); //读取按键

KeyInt(); //按键处理

}

}

提醒:《单片机C语言软件摸拟EV1527编码IC》最后刷新时间 2024-03-14 01:10:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机C语言软件摸拟EV1527编码IC》该内容的真实性请自行鉴别。