91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.04M
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2024-04-21
  • 語言: C/C++
  • 標簽: stc??

資源簡介

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


評論

共有 條評論