资源简介
stc12c5a60s2 51单片机作为i2c从设备,加密芯片+红外+串口
代码片段和文件信息
/*****************************************************************************
程序名:
编写人:dragon101788
I2C协议具体描述:
0x50 开始算密码
0x51 密码第1字节
0x52 密码第2字节
0x53 密码第3字节
0x54 密码第4字节
0x55 密码第5位
0x56 密码第6位
0x57 密码第7位
0x58 密码第8位
*****************************************************************************/
#include // 包含头文件
#include
#include
unsigned char code secret_key[8]={‘1‘‘9‘‘8‘‘8‘‘1‘‘0‘‘1‘‘7‘};
unsigned char random[8]={0x55‘2‘};
sbit IR_INT=P3^2;
sbit LED=P3^4;
sbit LED2=P3^5;
//#define I2C_TIMEOUT 200
unsigned int i2c_timeout;//超时时间
#define I2C_TIMEOUT (i2c_timeout*2+5)
unsigned char I2CsADDR=0x17;
sbit I2CsCLK=P1^1;
sbit I2CsDAT=P1^0;
unsigned char dat[4] = {0000}; //用于存放按键码值,初始化为 0000 0000
void RSHash()
{
char i;
unsigned char a=0;
unsigned char hash=0;
for(i = 0; i < 8; i++)
{
a = random[i]+hash;
hash += a;
random[i]=secret_key[hash%8]*hash;
}
}
/*****************************************************************************
UART 串口初始化函数
振荡晶体为 12MHz,PC 串口端设置 [ 4800,8,无,1,无 ]
*****************************************************************************/
void UART_Init (void)
{
EA = 1; //允许总中断(如不使用中断,可用//屏蔽)
ES = 1; //允许UART 串口的中断
TMOD = 0x20; //定时器 T/C1 工作方式 2
SCON = 0x50; //串口工作方式 1,允许串口接收
TL1 = 0xF9; //定时器初值低 8 位设置,修改此处的值来修改波特率
TH1 = 0xF3; //定时器初值高 8 位设置,修改此处的值来修改波特率
PCON = 0x80; //波特率倍频
TR1 = 1; //定时器启动
}
/*****************************************************************************
UART 串口接收中断处理函数
*****************************************************************************/
void UART_R (void) interrupt 4 using 1
{
unsigned char ch; //定义串口接收数据变量
//LED=!LED;
RI = 0; //令接收中断标志位为 0(软件清零)
ch = SBUF; //将接收到的数据送入变量 UART_data
putchar(ch);
}
int i2s_wait_low()
{
int i;
for(i=0;i {
if(I2CsCLK==0)
{
i2c_timeout=i;
return i;
}
}
return -1;
}
int i2s_wait_high()
{
int i;
for(i=0;i {
if(I2CsCLK==1)
{
return i;
}
}
return -1;
}
int i2s_send_ack()
{
//int i;
//低电平变化
i2s_wait_low();
I2CsDAT=0;
//高电平稳定
i2s_wait_high();
return 0;
}
int i2s_read_ack()
{
//int i;
//低电平变化
i2s_wait_low();
//高电平稳定
i2s_wait_high();
return (I2CsDAT==0);
}
void i2s_stop()
{
int i;
i2s_wait_high();
for(i=0;i {
if(I2CsCLK==0)
{
LED=0;
I2CsDAT=1;
return;
}
}
}
char i2s_read_byte(unsigned char * pbyte)
{
char i;
//int ret;
unsigned char byte;
for(i=0;i<8;i++)
{
if(i2s_wait_low()<0)
{//STOP位
I2CsDAT=1;
return -1;
}
I2CsDAT=1;
if(i2s_wait_high()<0)
{
return -1;
}
byte<<=1;
byte|=I2CsDAT;
}
*pbyte=byte;
return 0;
}
char i2s_send_byte(unsigned char * pbyte)
{
char i;
//int
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15744 2013-06-13 11:35 加密+i2c\dragon
文件 7030 2013-06-13 11:35 加密+i2c\dragon.hex
文件 76 2013-06-13 11:35 加密+i2c\dragon.lnp
文件 23834 2013-06-13 11:35 加密+i2c\dragon.M51
文件 26568 2013-05-22 12:22 加密+i2c\dragon.plg
文件 73540 2013-06-09 17:37 加密+i2c\dragon.uvgui.Administrator
文件 73521 2013-06-08 09:23 加密+i2c\dragon.uvgui_Administrator.bak
文件 6386 2013-06-09 17:37 加密+i2c\dragon.uvopt
文件 13777 2013-05-22 19:31 加密+i2c\dragon.uvproj
文件 6389 2013-06-08 09:23 加密+i2c\dragon_uvopt.bak
文件 13622 2013-05-21 22:24 加密+i2c\dragon_uvproj.bak
文件 7715 2013-06-13 11:35 加密+i2c\main.c
文件 15238 2013-06-13 11:35 加密+i2c\main.LST
文件 14625 2013-06-13 11:35 加密+i2c\main.OBJ
文件 4800 2013-06-13 11:35 加密+i2c\PUTCHAR.lst
文件 1093 2013-06-13 11:35 加密+i2c\PUTCHAR.obj
文件 6376 2009-05-07 14:37 加密+i2c\STARTUP.A51
文件 14048 2013-06-13 11:35 加密+i2c\STARTUP.LST
文件 749 2013-06-13 11:35 加密+i2c\STARTUP.OBJ
目录 0 2013-06-13 11:53 加密+i2c
----------- --------- ---------- ----- ----
325131 20
- 上一篇:鼠标获取OpenGL模型的坐标
- 下一篇:240128液晶程序
相关资源
- STM32蓝牙和串口程序
- LCD显示温度+串口接收温度.rar
- WPF USB 网络 串口 通信软件
- DELPHI与西门子200PLC的串口通信实例
- Verilog FPGA UART串口控制器
- USB转串口驱动,FT232R驱动程序,最新
- 一种红外遥控编解码仿真
- msp430F149操作红外接收模块源码
- 38k单片机红外发送代码、keil
- PC -- 单片机的串口数据传输系统设计
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- PC 串口调试软件
- 51单片机读取温度数据存储到SD卡中并
- 单片机与PC机串口通讯仿真
- 串口调试助手V5.0
- 双串口调试助手 V4.0 _ 可同时调试两个
- 读取串口数据并画实时曲线的VC 程序
- 网络(UDP)转串口程序
- 串口绘制曲线 将收到的数据进行曲线
- 基于ARM蓝牙传输源程序
- 红外循迹小车VHDL程序
- 红外接收头资料(各种品牌的红外接
- 基于8051单片机的红外接收程序
- JS操作本地网页串口源码
- AT89S ISP下载编程软件(串口)
- 串口操作类(justinio)
- 《Visual Basic 串口通信与测控应用技术
- 耀华XK3190-A9地磅串口代码
- ch452串口键盘驱动程序
评论
共有 条评论