资源简介
STC8G1K08A红外遥控点灯
代码片段和文件信息
*****************************************************************/
#include “STC8.h“
#include “intrins.h“
/************************常用数据类型定义*************************/
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
typedef unsigned long uint32_t;
/************************端口/引脚定义区域************************/
sbit LED1=P3^3;
sbit LED2=P5^4;
//----------------------------------------------------------------
//sbit KEY=P3^2;
sbit KEY=P5^5;
/************************用户自定义数据区域***********************/
bit IR_KEY=0;
bit IR_Flag=0;
u8 IR_time=0;
u8 IR_code[4];
u8 IR_data[33];
/**************************函数声明区域***************************/
void delay(u16 Count);
void Time0_init(void);
void Int0_init(void);
void IR_decode(void);
void IR_control(void);
/***************************主函数区域****************************/
void main(void)
{
P3M0|=0x08; //P3.3引脚为推挽输出模式
P3M1&=0xF7; //P3.3引脚为推挽输出模式
RSTCFG&=0xEF; //复位引脚P5.4当做普通I/O引脚
P5M0|=0x10; //P5.4引脚为推挽输出模式
P5M1&=0xEF; //P5.4引脚为推挽输出模式
P5M0&=0xDF; //P5.5引脚为准双向口模式
P5M1&=0xDF; //P5.5引脚为准双向口模式
Time0_init(); //定时计数器0初始化函数
Int0_init(); //外部中断0初始化函数
delay(100); //等待配置稳定
LED1=LED2=1; //上电后两个LED都保持熄灭状态
while(1)
{
if(IR_Flag) //如果有红外数据传入并接收完成
{
IR_decode(); //调用红外解码函数(用于得到键值)
IR_Flag=0; //清除红外数据接收完成标志位
}
if(IR_KEY) //如果红外解析成功,认定按键按下
{
IR_control(); //调用红外控制函数(用户控制LED灯)
}
}
}
/****************************************************************/
//延时函数delay(),有形参Count无返回值
/****************************************************************/
void delay(u16 Count)
{
while(Count--)
{
_nop_();
}
}
/****************************************************************/
//定时计数器0初始化函数Time0_init(),无形参,无返回值
/****************************************************************/
void Time0_init(void) //278微秒@11.0592MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //T0工作在工作方式2,8位自动重装载模式
TMOD |= 0x02; //T0工作在工作方式2,8位自动重装载模式
TL0 = 0x00; //定时初值为0,则T0定时时间达到最大(约0.278ms)
TH0 = 0x00; //定时初值为0,则T0定时时间达到最大(约0.278ms)
TF0 = 0; //清除TF0标志
ET0=1; //使能T0的溢出中断
TR0=1; //开启T0运行控制位,允许T0开始计数
//定时时间计算:t=256*12/11.0592=277.77us
}
/****************************************************************/
//外部中断0初始化函数Int0_init(),无形参,无返回值
/****************************************************************/
void Int0_init(void)
{
IT0=1; //配置外部中断0信号触发方式为边沿触发(下降沿有效)
EX0=1; //使能INT0中断
EA=1; //打开单片机总中断开关EA
}
/****************************************************************/
//红外解码函数IR_decode(),用于得到键值,无形参,无返回值
/****************************************************************/
void IR_decode(void)
{
u8 ijk;
//变量i控制循环次数,用于最终得到4个字节数据(2个用户码+2个数据码)
//变量j控制循环次数,通过循环和时长判断把8个时间间隔分析为“0码”
//和“1码”,然后最终通过按位或运算及右移运算得到红外数据,变量k用
//于控制IR_data[]数组的下标变化。
u8 Timer_ValueIR_Value;
//变量Timer_Value用于从IR
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6699 2020-10-14 16:29 红外遥控点灯\main.c
文件 12185 2020-06-07 00:11 红外遥控点灯\main.LST
文件 24559 2020-06-07 00:11 红外遥控点灯\main.OBJ
文件 18957 2020-06-06 22:29 红外遥控点灯\STC8.H
文件 23524 2020-06-07 00:11 红外遥控点灯\test
文件 1563 2020-06-07 00:11 红外遥控点灯\test.hex
文件 40 2020-06-07 00:11 红外遥控点灯\test.lnp
文件 10118 2020-06-07 00:11 红外遥控点灯\test.M51
文件 263 2020-07-18 18:08 红外遥控点灯\test.plg
文件 71558 2020-07-18 18:08 红外遥控点灯\test.uvgui.Administrator
文件 71557 2020-07-18 17:57 红外遥控点灯\test.uvgui_Administrator.bak
文件 5042 2020-07-18 18:08 红外遥控点灯\test.uvopt
文件 13424 2018-07-30 22:37 红外遥控点灯\test.uvproj
目录 0 2020-10-14 16:27 红外遥控点灯
----------- --------- ---------- ----- ----
259489 14
- 上一篇:基于STM32的嵌入式flash读写控制
- 下一篇:LVGL 7.0 开发手册
相关资源
- 自绘CListCtrl聊天列表MFC
- Windows下基于ModbusTcp的Server端开发C语言
- 简易的心电采集电路,包括下位机编
- listctrl加入BUTTON复选框,编辑框,调整
- 基于MFC modbusTcp
- STC12C5410AD中文文档C语言版
- 单片机C语言库 STC89C51/52 AT89C52/51
- stc89c52单片机控制TC35模块收发短信接
- VC6.0将ListCtrl中数据写入到Excel
- STC15单片机ESP8266开发试验程序含原理
- 基于STC89C52RC使用霍尔元件测速测里程
- MFC ListControl使用
- MFC中ListCtrl添加图标,更改图标
- MFC树形控件CTreeCtrl显示文件路径及文
- STC15增强型8051单片机C语言编程与应用
- STC单片机C语言程序设计立体化教程
- 51单片机轻松入门__基于STC15W4K系列(
- C++版_STC跟踪代码(多尺度)
- 可以改变ListCtr控件中的显示颜色和背
- MFC ListCtrl控件上增加Comb以及可编写子
- STC单片机教程之STC15单片机实战指南(
- 51单片机轻松入门—基于STC15W4K系列
- MFC 列表控件(ListControl)扩展类集合
- 时空上下文跟踪STC
- STC15增强型8051单片机C语言编程与应用
- 51单片机轻松入门 C语言版 基于STC
- 毕业设计—基于STC89C51单片机的模拟电
- mfc下导出listctrl数据到excel表格
- 4交通灯_STC89C52.zip
- 基于霍尔传感器的小车测速仪(c语言
评论
共有 条评论