C8051F320红外发射接收程序

合集下载

基于C8051F系列单片机的无线收发电路设计

基于C8051F系列单片机的无线收发电路设计

1.1 发射电路 监测终端与探测节点的硬件电路相似,监测终端通过液晶显示探测节点的编号、所传输的数据等信息并通过5 V开关电源供电。而探测节点则没有液晶显示器,通过2节普通干电池构成3 V电源供电。发射电路使用单片机PCA寄存器产生3 MHz的振荡频率,直接控制LC谐振线圈进行振荡。C8051F330D单片机具有睡眠模式,可降低节点电路的功耗,其内部的编程计数器阵列(PCA0)提供增强的定时器功能,与标准8051的计数器/定时器相比,不占用额外的CPU资源。使用PCA0产生3 MHz的载波频率,以推挽方式输出,增大后级谐振回路的发射功率。1.2 接收放大电路设计 使用AD8656双运放芯片组成接收放大电路。该运放适合+2.7~+5.5 V电源电压供电,是具有低噪声性能的精密双运算放大器。AD8656型CMOS放大器在满共模电压(VCM)范围内提供250 mV精密失调电压最大值,且在10 kHz处提供低电压噪声谱密度和0.008%的低真,无需外部三极管增益级或多个并行的放大器以减小系统噪声。通过干电池提供3V单电源供电,接收放大电路。放大电路由AD8656进行两级放大,抵消线圈所感应到的信号电压幅值因距离的增加而产生的衰减,放大所接收到的微弱信号,增加无线传输距离。系统接收电路经D8656放大后的输出电压输至单片机进行A/D转换,对数据进行编解码,而未采用检波解调电路,可有效简化电路结构。
采用软件编程实现ASK调制功能节点向监测终端发送数据,当监测终端液晶屏指示“接收成功”时,表明在该距离下可以进行通信,不断增大节点线圈与终端线圈之间的距离直到不能正常接收数据为止。测试表明,有效通信距离可以达到24 cm。在探测节点通过桥接的方式与监测终端正常通信时,测得桥接节点的平均功耗约为102 mW,而探测节点间的平均桥接距离约为20 cm。 与传统无线收发模块相比。在需要大规模、密集型部署、近距离无线通信,并且电路体积、功耗、成本受限制的场合,基于C8051F系列单片机的无线收发电路有广阏的应用前景。

基于51单片机红外发射与接收C程序(word文档良心出品)

基于51单片机红外发射与接收C程序(word文档良心出品)
sbit key3=P3^5;
sbit LED=P1^0; //发射指示灯
sbit out=P3^7;
uchar i,a,num1;
void init()//初始化作用
{
key1=1;
key2=1;
key3=1;
}
void delay(uchar aa)
{
uchar bb,cc;
for(bb=aa;bb>0;bb--)
for(num1=8;num1>0;num1--) //原来用的是a后来出错,肯定在这里!
{
khz(40);
if(num&0x01)
delayms(93);//delay 1.5ms
else
delayms(65);//delay 1ms
num=num>>1;
}
khz(20);
}
void tishi()
if(key1==0)
{
while(!key1);
fashu(0xf3);
tishi();
}
}
if(key2==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key2==0)
{
while(!key2);
fashu(0x3f);
while(1)
{
keyscan();
}
}
红外接收程序
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char

红外发射接收程序

红外发射接收程序

红外发送调用SendIRdata();while(over==0);地址储存在addr(可根据需要改成发送16位地址,此程序发送的是八位地址,第二地址是第一个的反码)中,hwdata,c,d,over,dat是全局unsigned char ,在等待红外发送完成while(over==0)语句,等待时间为几十ms,可在前面或while中可执行其他程序。

(等待期间不需要执行其他程序也可把while语句放入SendIRdata()末尾)void SendIRdata(unsigned char x){TH1=0xdc;//发送9ms的起始码TL1=0xd8;TR2=1;TR1=1;hwdata=x;over=0;//红外发送结束标志,为1完成}/**************定时器1中断处理***************/void timeint(void) interrupt 3{switch(c){case 0: //起始码4.5msTH1=0xee;TL1=0x6c;TR2=0;c=1;dat=addr;//发送十六位地址的前八位break;case 1:TH1=0xfd; //560us高电平TL1=0xd0;TR2=1;c=2;break;case 2:if(dat&0x01){ TH1=0xf9;TL1=0x5c;}//1.7ms低电平else{ TH1=0xfd;TL1=0xd0;}//560us低电平TR2=0;dat>>=1;d++;c=1;if(d==8)dat=~addr;//发送十六位地址的后八位if(d==16)dat=hwdata;//发送八位数据if(d==24)dat=~hwdata;//发送八位数据的反码if(d==33){over=1;TR1=0;TR2=0;d=0;c=0;}break;}}外中断0 接收,储存在dat[3]全局变量中,hu,time1,time2,h,b,是unsigned char型全局变量,time是unsigned intvoid extern0() interrupt 0 //中断程序{if(hu==0){TL1=0;TH1=0;TR1=1;hu=1;}else{TR1=0;time1=TH1;time2=TL1;TL1=0;TH1=0;TR1=1;time=time1*256+time2;if(start==0){if((14000>time)&&(time>13000))start=1;}else{//if((time>2100)&&(2400>time))//{dat[h]>>=1; dat[h]=dat[h]|0x80;}//else//if((time>1000)&&(1250>time))//dat[h]>>=1;dat[h]>>=1;if((time>2100)&&(2400>time))dat[h]=dat[h]|0x80;b++;if(b>7){ b=0;h++;if(h>3){h=0;start=0;hu=0;if(dat[0]!=~dat[1]|| dat[2]!=~dat[3])dat[2]=0;}}}}}。

红外接收程序讲解

红外接收程序讲解

红外接收程序讲解 TYYGROUP system office room 【TYYUA16H-TYY-TYYYUA8Q8-红外接收程序讲解1、红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

下面,我们将使用下面两种设备:另外,使用51单片机进行解码。

2、原理图从原理图看出,IR的data脚与51的PD2相连。

2、红外发射原理要对红外遥控器所发的信号进行解码,必须先理解这些信号。

a) 波形首先来看看,当我们按下遥控器时,红外发射器是发送了一个什么样的信号波形,如下图:由上图所示,当一个键按下超过22ms,振荡器使芯片激活,将发射一组108ms的编码脉冲(由位置1所示)。

如果键按下超过108ms仍未松开,接下来发射的代码(连发代码由位置3所示)将仅由起始码(9ms)和结束码()组成。

下面把位置1的波形放大:由位置1的波形得知,这108ms发射代码由一个起始码(9ms),一个结果码(),低8位地址码(用户编码)(9ms~18ms),高8位地址码(用户编码)(9ms~18ms),8位数据码(键值数据码)(9ms~18ms)和这8位数据的反码(键值数据码反码)(9ms~18ms)组成。

b) 编码格式遥控器发射的信号由一串0和1的二进制代码组成.不同的芯片对0和1的编码有所不同。

通常有曼彻斯特编码和脉冲宽度编码。

XS-091遥控板的0和1采用PWM方法编码,即脉冲宽度调制。

下图为一个发射波形对应的编码方法:放大0和1的波形如下图:这种编码具有以下特征:以脉宽为、间隔、周期为的组合表示二进制的“0”;以脉宽为、间隔、周期为的组合表示二进制的“1”。

3、红外接收原理a) 波形红外接收头将38K载波信号过虑,接收到的波形刚好与发射波形相反:放大,位定义0和位定义1波形如下:4、解码原理及算法注:代码宽度算法:16位地址码的最短宽度:×16=18ms 16位地址码的最长宽度:×16=36ms可以得知8位数据代码及其8位反代码的宽度和不变:(+)×8=27ms所有32位代码的宽度为(18ms+27ms)~(36ms+27ms)对于红外线遥控对于很多电子爱好者来讲,都感觉到非常神奇,看不到,摸不着,但能实现无线遥控,其实控制的关键就是我们要用单片机芯片来识别红外线遥控器发出红外光信号,即我们通常所说的解码。

用8051单片机接收红外遥控的实现

用8051单片机接收红外遥控的实现

用8051单片机接收红外遥控的实现
赵瑛琪
【期刊名称】《电脑知识与技术》
【年(卷),期】2006(000)001
【摘要】μPD6121,6122是用NEC传输格式的红外线遥控发射芯片,目前广泛的用在电视,录像机,音响,空调等设备上.8051系列单片机是目前应用最为广泛的8位机,其内核由美国因特公司设计.本文介绍如何用8051单片机准确接收红外遥控信号,并写出高效的代码.
【总页数】2页(P193-194)
【作者】赵瑛琪
【作者单位】湖南城建职业技术学院信息工程系,湖南,湘潭,411101
【正文语种】中文
【中图分类】TP368
【相关文献】
1.IRM81XY系列红外遥控接收微型组件及红外遥控发射,接收电路 [J], 杜雪芳
2.基于PS/2接口红外遥控接收装置的设计与实现 [J], 李乐
3.嵌入式红外遥控键盘接收端和USB闪存的整合实现 [J], 李中政;闫鹤;李娜;乔贵春
4.智能型红外遥控器中信号接收与压缩方法 [J], 李慧静;金晓民;井雅;张博尧
5.红外遥控接收放大器的解码特性 [J], 陈巍;
因版权原因,仅展示原文概要,查看原文内容请购买。

C8051F320驱动金鹏2x8C-5液晶C程序

C8051F320驱动金鹏2x8C-5液晶C程序

C8051F320驱动金鹏2x8C-5液晶C程序程序师从网上找的,稍加修改,用c8051f320的开发板驱动,能显示字符汉字点阵图形,下面是程序:/*c语言实例st7920标签:无标签ST7920驱动的12864(并行工作方式)*//******************************************************************************Copyright 2007All rights reserved.文件名: .c模块名称:st7920 并行方式驱动12864液晶驱动功能概要:st7920显示驱动取代版本:0.0.1修改人:pulan完成日期:2007.07.08升级说明:createCPU: stc89c58 主频:11.0592M液晶型号:生产厂家:驱动芯片:st7920******************************************************************************///#include <reg52.h> 2009年6月10日修改,用于C8051F320单片机,主频12MH, #include <C8051F320.h> // 两行液晶模块。

HYL修改。

#define uint unsigned int#define uchar unsigned char#define x1 0x80#define x2 0x88#define y 0x80#define comm 0#define dat 1sbit RS = P2^1; //H=data; L="command";sbit RW = P2^2; //H=read; L="write";sbit E = P2^4; //input enable;sbit PSB= P2^5; //H=并口; L="串口";sbit RST= P2^3; //Reset Signal 低电平有效sbit busy=P0^7; //lcd busy bitvoid wr_lcd (uchar dat_comm,uchar content);void chk_busy (void);void delay (uint us);void delay1 (uint ms);uchar code tab1[]={"本系列中文模块内""置二级字库,可在"};uchar code tab2[]={"任意位置反白显示""使用更方便更灵活"};uchar code tab31[]={"保定市宇恒科技荣""誉出品为您服务!!"//"金鹏科技有限公司"//"Golden Palm TECH"};/*-- 调入了一幅图像:F:\梁\画图\HOCO12832.bmp --*/ /*-- 宽度x高度=128x32 --*/uchar code tab33[]={0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};uchar code tab32[]={/*-- 调入了一幅图像:F:\梁\画图\HOCO12832.bmp --*//*-- 宽度x高度=128x32 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};uchar code tab5[]={/*-- 调入了一幅图像:F:\梁\画图\COCK.bmp --*//*-- 宽度x高度=128x64 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,00x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,00x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,//0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,00x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,00x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/******************************************************************************************* 函数名称:* 功能描述:液晶初始化* 参数:参数名称:输入/输出?类型描述** 返回值:* 作者:* 创建日期:2006-12-19* 全局变量:* 全局静态变量:* 局部静态变量:*----------------------------------------修改历史------------------------------------------* 当前版本:修改人:修改日期:* 修改说明:******************************************************************************************/void init_lcd (void){RST = 1;PSB = 1;wr_lcd(comm,0x30); /*30---基本指令动作*/wr_lcd(comm,0x01); /*清屏,地址指针指向00H*/wr_lcd(comm,0x06); /*光标的移动方向*/wr_lcd(comm,0x0c); /*开显示,关游标*/}/******************************************************************/void SysClkInit(void)//配置系统时钟 C8051F320初始化{OSCICN=0x81;RSTSRC=0x04;}/**********************************************************************/void SystemInit(void)//系统配置 C8051F320初始化{CA0MD&=~0x40;//禁止看门狗定时器EA=1;ES0=1;}/************************************************************/void PortInit(void)//端口配置 C8051F320初始化{//P2MDIN = 0x0F;P2MDOUT = 0xff;//P0MDOUT = 0x7f;// XBR0 = 0x07;XBR1 = 0x40;}/******************************************************************************************* 函数名称:chn_disp* 功能描述:显示汉字或字符* 参数:参数名称:输入/输出?类型描述** 返回值:* 作者:* 创建日期:2006-12-19* 全局变量:* 全局静态变量:* 局部静态变量:*----------------------------------------修改历史------------------------------------------* 当前版本:修改人:修改日期:* 修改说明:******************************************************************************************/void chn_disp(uchar code *chn){uchar i,j;wr_lcd(comm,0x34);wr_lcd(comm,0x05); //第二行反白显示wr_lcd(comm,0x30);wr_lcd(comm,0x80);for(j=0;j<4;j++){if(j==1) //{wr_lcd(comm,0x90);} //修改后可用二行液晶显示,源程序是四行液晶for(i=0;i<16;i++)wr_lcd(dat,chn[j*16+i]);}}/******************************************************************************************* 函数名称:chn_disp1* 功能描述:上半屏显示汉字或字符,此函数可直接用于二行液晶。

红外收发程序

红外收发程序

#include "reg51.h"#define uchar unsigned char#define uint unsignedint//用单片机来模拟发送SAA3010数据码//作者:全立波,quanlibo@ucharsendstart=3; //起始位2位+控制位1位+系统位6位=8位,其中起始两位为1,其它各为均为0ucharsenddatas=1; //数据位为6位,这里只用该字节的前6位uchar count=0;sbit P1_0=P1^0; //用来控制红外发光二极管来发送数据bit sendflag=0; //发送数据的标志量void Init();void sendData();uchardatas[28];void main(void){Init();while(1){if(sendflag==1){//串口不允许中断ET1=0;TR1=0;ES=0;//一个周期是26.32us,那么一个周期的一半应该是13us,所有的错误全部都在这里(看来网上发表的文章也是一些理论没有真正实践过)//12MHZ,38KHZ//TH1=0xf3;//TL1=0xf3;//11.0592MHZ ,38KHZTH1=0xf4;TL1=0xf4;sendflag=0;sendData();}};}//这里定义1位的时间为在 1.651ms,那么半位的时间为1.651ms/2=0.8255ms=825.5us//事先准备要发送的数void sendData(){uchar c=0;uint b=0;//待发送的数据uchar s=0;sendstart=3;//起始码for(c=0;c<8;c++){if(senddatas-(senddatas/2)*2){//为1b=b|1;}else{//为0b=b|0;}if(c<7){b=b<<1;}senddatas=senddatas>>1;}b=b<<8>>2;//做起来真是精细,还要搞掉后面没有被占掉的值,否则数据不准确,做学问真的是不容易啊b=b |sendstart;//下面代码用来装配发送数据c=0;//先发送起始位2位+控制位1位+系统位5位=8位,后面的6位是数据位,共14位//用NPN三极管放大信号do{if(b-(b/2)*2){//发送1的前半位datas[s++]=1;}else{//发送0的前半位datas[s++]=0;}if(b-(b/2)*2){//发送1的后半位datas[s++]=0;}else{//发送0的后半位datas[s++]=1;}//数据循环右移,发送下一位数据b=b>>1;}while(++c<14);//开始发送数据count=0;//12MHZ,延时0.8255ms用//TH0=0xfc;//TL0=0xc6;//11.0592MHZ,延时0.8255ms用TH0=0xfd;TL0=0x07;ET0=1;TR0=1;}void Init(){//刚开始启动不发送P1_0=0;//我们这里利用定时器1的工作方式2(8位自动重载)来发送载波信号TMOD=0x21;EA=1;//总中断允许ES=1;//允许串口中断//串口工作于方式1,8位UART,波特率可变,允许串口接受数据,工作方式为1,无奇偶校验位。

c8051f320

c8051f320

(6)存储器 1280 字节的内部数据 RAM(1K+256);16K 字节的可以在系统编程的 Flash 闪速存 储器。 (7)数字外设 25 个字节宽的端点 I/O;所有口线均耐 5V 电压;可同时使用 UART 串口、硬件 SMBusTM、SPITM;带有 4 个可编程的 16 位计数器/定时器阵列;带有 5 个捕捉/比较模块的 通用 16 位计数器/定时器。 (8)时钟源 内部晶振,精度为 0.25;支持所有 USB 和 UART 模式;外部晶振器:晶体、RC、C 或 外部时钟;内置一个针对 USB 控制器的片上时钟乘法器。 (9)供电电压 片上的参考电源校准器支持 USB 总线电源操作;校准器的 Bypass 模式支持 USB 内部电源操作。 (10)性能特点 C8051F320 在保持 CISC 结构及指令系统不变的情况下,对指令运行实行流水 作业,推出了 CIP-51 的 CPU 模式,从而大大提高了指令运行速度,使 8051 兼容机系列进入了 8 位高速单片机行列。 传统的单片机 I/O 端口大都是固定为某个特殊功能的输入/输出口,可以是单功能或多功 能,I/O 端口可编程选择为单向/双向以及上拉、开漏等。这种固定方式既占用较多引脚,配置 又不够灵活。C8051F320 采用开关网络以硬件方式实现 I/O 端口的灵活配置,如图 1 所示。 在这种通过交叉开关配置的 I/O 端口系统中,单片机外部为通用 I/O 口,如 P0 口、P1 口和 P2 口。内有输入/输出的电路单元通过相应的配置寄存器控制的交叉开关配置到所选择的端口 上。
C8051F320 单片机简介 1.功能部件及特点 (1)模拟外设 10 位的 ADC(±1LSB INL):其最大可编程转换速率可达 200kbps,可多达 17 个外 部输入,可编程为单端输入或差分输入,内置一个温度传感器(±3℃);2 个模拟比较器;2.4V 的内 部电压基准;精确的 Vdd 监视器和欠压检测器。 (2)USB 功能控制模块 满足 USB2.0 协议;可在全速(12 Mbps)或低速(1.5 Mbps)下运行;集成有 一个时钟恢复源,对于全速或低速传输均可不用外部晶振;支持 8 个灵活通用的端点;内置一 个 1K 的 USB 专用缓冲存储器;集成了一个 USB 接收器,不需要外部电阻。 (3)片内调试模块 片内调试电路提供全速、非侵入式的在系统调试(不需仿真器);支持端点、 单步、观察点、堆栈监视器;可以观察/修改存储器和寄存器;比使用仿真芯片、目标仿真头和 仿真插座的仿真系统有更好的性能。 (4)工作温度范围:0~70℃ (5)高速 8051 微控制器内核 采用流水线指令结构,其 70%的指令的执行时间为一个或两个系 统时钟周期;速度可达 25 MIPS(时钟频率为 25MHz 时)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档