资源简介
这是一段简单的代码,用单片机输出38k信号,驱动红外发射二极管,红外接收装置可以接收,实验成功。
代码片段和文件信息
/*********************************************************
Project : Tm/Rh Measurement
Chip type : sst89e58
Program type : Application
Clock frequency : 11.0592MHz
;**********************************************************/
#include
#include
/*===============变=量=类=型=标=识=宏=定=义===============*/
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define ENABLE EA=1 //使能全局中断
#define DISABLE EA=0 //关闭全局中断
#define Timer0Run TR0=1 //启动T0
#define Timer0Stop TR0=0 //关闭T0
#define Timer1Run TR1=1 //启动T1
#define Timer1Stop TR1=0 //关闭T1
#define UartRxdEn REN=1; //串口允许接收
#define UartRxdDis REN=0; //串口禁止接收
#define LedDataPort P0 //Led数据端口
#define LedCntPort P2 //Led控制端口
#define Nop() _nop_()
#define Tm 20
/*===================控=制=引=脚=定=义===================*/
/*===================全=局=变=量=定=义===================*/
//共阳数码管译码表
uchar code LedCode[]={0xc00xf90xa40xb00x990x920x820xf8
0x800x900x880x830xc60xa10x860x8e
0xbf};
//6位显示缓冲
static uchar DispString[]={0x100x100x100x100x100x10};
static uchar RxdIntCnt =0; //Rxd中断次数
/*=================系=统=标=志=位=定=义===================*/
/*==================系=统=函=数=声=明=====================*/
//中断初始化
void IntInit(void);
//延时函数
void Delayms(uchar t);
void Delayus(uchar t);
/*========================主=函=数========================*/
void main()
{
uchar ij=0;
Delayms(10);
IntInit(); //初始化中断
while(1)
{
j=0xfb;
for(i=0;i<6;i++)
{
LedDataPort=LedCode[DispString[i]]; //显示代码送数据端口
LedCntPort=j; //选择显示位置
j<<=1;
j|=0x01;
Delayms(2);
}
}
}
/*==================中=断=初=始=化=程=序==================*/
/*==========================================================
;系统中断初始化IntInit(void)
;输入参数:无
;输出参数:无
;函数说明:程序退出时,各中断以使能
==========================================================*/
void IntInit(void)
{
//初始化T1(用作波特率发生器)
TMOD=0x20; //T0方式1T1方式2
//初始化串行口
SCON=0x50; //串口方式1REN=1;
TH1=0xfd; //9600bps
TL1=0xfd;
Timer1Run; //启动T1
IE=0x10; //ES=1
//使能全局中断
ENABLE;
}
void UartRxdService(void) interrupt 4 using 1
{
RI=0;
switch(RxdIntCnt)
{
case 0:
if(SBUF==0xff) RxdIntCnt++;
break;
case 1:
if(SBUF==0xa5) RxdIntCnt++;
break;
case 2:
RxdIntCnt++;
DispString[0]=SBUF;
break;
case 3:
RxdIntCnt++;
DispString[1]=SBUF;
break;
case 4:
RxdIntCnt++;
DispString[2]=SBUF;
break;
case 5:
RxdIntCnt++;
DispString[3]=SBUF;
break;
case 6:
RxdIntCnt++;
DispString[4]=SBUF;
break;
case 7:
RxdIntCnt=0;
DispString[5]=SBUF;
break;
default:
break;
}
}
/*======================延=时=程=序=======================*/
/*==========================================================
;毫秒级延时程序Delayms(uchar
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2307 2011-02-21 02:00 38k单片机红外发送\38k
文件 199 2011-02-21 02:00 38k单片机红外发送\38k.hex
文件 58 2011-02-21 02:00 38k单片机红外发送\38k.lnp
文件 4774 2011-02-21 02:00 38k单片机红外发送\38k.M51
文件 1281 2011-02-21 02:05 38k单片机红外发送\38k.Opt
文件 7123 2011-02-21 02:00 38k单片机红外发送\38k.plg
文件 2176 2011-02-21 02:05 38k单片机红外发送\38k.Uv2
....... 0 2011-02-21 00:06 38k单片机红外发送\38k_Uv2.Bak
文件 3762 2011-02-20 23:24 38k单片机红外发送\Rx.c
文件 542 2011-02-21 02:00 38k单片机红外发送\send38k.c
文件 1790 2011-02-21 02:00 38k单片机红外发送\send38k.LST
文件 1867 2011-02-21 02:00 38k单片机红外发送\send38k.OBJ
文件 6376 2005-03-22 15:22 38k单片机红外发送\STARTUP.A51
文件 14048 2011-02-21 02:00 38k单片机红外发送\STARTUP.LST
文件 749 2011-02-21 02:00 38k单片机红外发送\STARTUP.OBJ
目录 0 2011-02-21 02:05 38k单片机红外发送
----------- --------- ---------- ----- ----
47052 16
相关资源
- msp430F149操作红外接收模块源码
- 红外循迹小车VHDL程序
- 红外接收头资料(各种品牌的红外接
- 基于8051单片机的红外接收程序
- STM8S003 红外遥控
- IR204PT202C红外接收管中文资料
- 近红外光谱在油脂可皂化物含量测定
- 带式输送机托辊红外图像分割与定位
- 猕猴桃近红外光谱MLR建模中的波长选
- 基于STC89C52的瓦斯检测及红外控制系统
- 硬件设计-红外测温TMP006
- 矿用非接触式红外热电堆测温仪
- MEMS红外传感器电子封装报告
- 具有温度及压力补偿的矿用红外甲烷
- BM-SOP-T021 BM43系列红外温度传感器的应
- 论文研究-平稳小波域红外图像增强的
- 近红外光谱分析技术的应用及其局限
- 基于单片机的家庭无线红外测温仪
- 自拍用于目标跟踪的红外图像序列
- 音频红外发射与接收装置
- 51单片机智能小车花式,寻迹,红外,
- 简析红外光电开关的制作
- MLX90614红外温度传感器程序,并用液晶
- MLX90621红外传感器驱动程序
- 视网膜-视皮层映射模型在红外成像制
- xZnO-20Nb2O5-80-xTeO2系玻璃组成对性能影
- 单片机89c52与MLX90614红外的测温程序
- 红外遥控源代码
- 1.规格书 MTP10-B7F55(中文版-d).pdf
- 近红外数据预处理的算法
评论
共有 条评论