久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機雙單片機實現紅外遙控器模擬Proteus仿真代碼 VS Code工程
[打印本頁]
作者:
BOWIN
時間:
2022-3-16 10:26
標題:
單片機雙單片機實現紅外遙控器模擬Proteus仿真代碼 VS Code工程
研究學習
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(47.01 KB, 下載次數: 56)
下載附件
2022-3-18 03:36 上傳
代碼是用的VS Code編輯器
單片機源程序如下:
//elecfun 2018-04-01 01:22:17
#include <STC12C2052AD.h>
#include <intrins.h>
#include "IRNEC.h"
unsigned char IR_KEY[6][3] = {0xFF};
sbit KEY_SET = P3^7;
#define _DEBUG
#ifdef _DEBUG
unsigned char code ITC[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//12mhz 4800bps
void UART_init(void)
{
PCON |= 0x80; //波特率不倍速
SCON = 0x50; //8位數據,可變波特率
TMOD &= 0x0F;
TMOD |= 0x20;
TL1 = TH1 = 0xF3;
ET1 = 0;
TR1 = 1;
}
void SendChar(unsigned char dat)
{
SBUF = dat;
while (!TI);
TI = 0;
}
void SendString(unsigned char *s)
{
while (*s) //Check the end of the string
{
SendChar(*s++); //Send current char and increment string ptr
}
}
#endif
/********************讀字節函數*********************/
unsigned char Byte_Read(unsigned int add)
{
ISP_DATA = 0x00;//清空數據
ISP_CONTR = 0x83;//打開ISP,設置操作等待時間 12MHz以下0x83 30MHz以下0x80 6MHz以下0x84
ISP_CMD = 0x01;//字節讀命令
ISP_ADDRH = add>>8;//設置高8位地址
ISP_ADDRL = add&0x00ff;//設置低8位地址
ISP_TRIG = 0x46;//發送46h到觸發寄存器
ISP_TRIG = 0xb9;//發送b9h到觸發寄存器
_nop_();//延時
ISP_CONTR = 0;//關閉IAP 功能
ISP_CMD = 0;//清空命令寄存器
ISP_TRIG = 0;//清空命令觸發寄存器
ISP_ADDRH = 0;//清空地址高位
ISP_ADDRL = 0;//清空地址低位
return (ISP_DATA);//返回讀到的數據
}
/*******************字節編程函數********************/
void Byte_Program(unsigned int add, unsigned char dat)
{
ISP_CONTR = 0x83;//打開ISP,設置操作等待時間
ISP_CMD = 0x02;//字節編程命令
ISP_ADDRH = add>>8;//設置高8位地址
ISP_ADDRL = add&0x00ff;//設置低8位地址
ISP_DATA = dat;//要編程的數據先送進ISP_DATA 寄存器
ISP_TRIG = 0x46;//發送46h到觸發寄存器
ISP_TRIG = 0xb9;//發送b9h到觸發寄存器
_nop_();//延時
ISP_CONTR = 0;//關閉IAP 功能
ISP_CMD = 0;//清空命令寄存器
ISP_TRIG = 0;//清空命令觸發寄存器
ISP_ADDRH = 0;//清空地址高位
ISP_ADDRL = 0;//清空地址低位
}
/********************扇區擦除函數**********************/
void Sector_Erase(unsigned int add)
{
ISP_CONTR = 0x83;//打開ISP,設置操作等待時間
ISP_CMD = 0x03;//扇區擦除命令
ISP_ADDRH = add>>8;//設置高8位地址
ISP_ADDRL = add&0x00ff;//設置低8位地址
ISP_TRIG = 0x46;//發送46h到觸發寄存器
ISP_TRIG = 0xb9;//發送b9h到觸發寄存器
_nop_();//延時
ISP_CONTR = 0;//關閉IAP 功能
ISP_CMD = 0;//清空命令寄存器
ISP_TRIG = 0;//清空命令觸發寄存器
ISP_ADDRH = 0;//清空地址高位
ISP_ADDRL = 0;//清空地址低位
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函數:紅外線解碼初始化
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void IR_Init()
{
TMOD &= 0xF0; //清定時器0
TMOD |= 0x01; //定時器0:16位定時器
TL0 = TH_L; //每步時間
TH0 = TH_H;
ET0 = 1;
EA = 1;
TR0 = 1;
}
void Delayms(unsigned int dT)
{
unsigned int dA,dB;
for(dA=0; dA<dT; dA++)
for(dB=0; dB<113; dB++)
;
}
//從內部EEPROM中讀取鍵值數據
void ReadIRData(void)
{
unsigned char j;
for (j=0; j<6; j++)
{
IR_KEY[j][0] = Byte_Read(3 * j);
IR_KEY[j][1] = Byte_Read(3 * j + 1);
IR_KEY[j][2] = Byte_Read(3 * j + 2);
}
}
//鍵值保存到內部EEPROM中
void WriteIRData(void)
{
unsigned char j;
Sector_Erase(0);
for (j=0; j<6; j++)
{
Byte_Program(3 * j, IR_KEY[j][0]);
Byte_Program(3 * j + 1, IR_KEY[j][1]);
Byte_Program(3 * j + 2, IR_KEY[j][2]);
}
}
void main(void)
{
unsigned char j;
unsigned char curCh = 0;
#ifdef _DEBUG
UART_init();
Delayms(500);
SendString("start");
#endif
ReadIRData(); //讀EEPROM數據
IR_Init(); //紅外接收初始化
while (1)
{
#ifdef _DEBUG
P30 = 1;
if (!P30)
{
ISP_CONTR = 0x60;
}
#endif
if (IR_BT > 0) //正確解碼
{
SendString("R:");
SendChar(ITC[NEC[2]>>4]);
SendChar(ITC[NEC[2]&0x0F]);
if (!KEY_SET) //設置按鍵按下
{
if (curCh < 6) //6個通道,超過后丟棄
{
IR_KEY[curCh][0] = NEC[0]; //用戶碼高8位
IR_KEY[curCh][1] = NEC[1]; //用戶碼低8位
IR_KEY[curCh][2] = NEC[2]; //鍵值
curCh++; //下一通道
}
} else { //設置按鍵未按下或剛松開
if (curCh > 0) //通道值大于0說明剛才進行了設置,需要保存鍵值
{
curCh = 0; //清空通道值
WriteIRData(); //保存鍵值
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
代碼要用vs code打開
所有資料51hei附件下載:
仿真程序.7z
(66.89 KB, 下載次數: 57)
2022-3-18 03:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
heicad
時間:
2022-3-18 03:39
好資料,51黑有你更精彩!!!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精精国产xxxx视频在线播放7
|
久久久日韩精品一区二区三区
|
国产伦精品一区二区三区高清
|
最新超碰
|
中文字幕欧美日韩
|
做a视频在线观看
|
九九精品热
|
中文字幕在线观看第一页
|
在线欧美小视频
|
日本成人在线免费视频
|
精品自拍视频
|
成人毛片一区二区三区
|
av在线免费网站
|
久久久久成人精品
|
午夜激情网
|
国产成人精品亚洲日本在线观看
|
999热视频
|
日本特黄特色aaa大片免费
|
久久国产精品色av免费观看
|
精品美女视频在免费观看
|
国产精品国产亚洲精品看不卡15
|
亚洲一区二区在线
|
成人片网址
|
日韩中文在线观看
|
日本精品一区二区三区视频
|
黑人巨大精品欧美黑白配亚洲
|
在线看片福利
|
国产免费一区
|
中文字幕一区二区三区在线观看
|
日韩精品一区二区三区中文在线
|
国产成人午夜精品影院游乐网
|
久久综合久
|
国产亚洲欧美日韩精品一区二区三区
|
日韩快播电影网
|
久久综合av
|
色一情一乱一伦一区二区三区
|
九九九久久国产免费
|
精品日韩在线
|
国产精品明星裸体写真集
|
91精品久久久久久久久久入口
|
91精品国产91久久久久久吃药
|