📄 2724ctrl.c
字号:
#include <reg51.h>
#include <absacc.h>
sbit ML2724_EN = P1^0;
sbit ML2724_CLK = P1^1;
sbit ML2724_DATA = P1^2;
void ML2724Control(unsigned int nData)
{
unsigned char i;
ML2724_EN = 0;
for(i = 0; i < 16; i++){
ML2724_CLK = 0;
ML2724_DATA = nData & 0x80;
nData <<= 1;
ML2724_CLK = 1;
}
ML2724_EN = 1;
}
// RCEN RXON MODE
// 0 x STANDBY
// 1 1 RECEIVE
// 1 0 TRANSMIT
sbit ML2724_RCEN = P1^3;
sbit ML2724_RXON = P1^4;
void ModeChange(bit bRcen, bit bRxon)
{
ML2724_RCEN = bRcen;
ML2724_RXON = bRxon;
}
sbit KeyPin1 = P1^5;
sbit KeyPin2 = P1^6;
void delay(unsigned int dms)
{
unsigned int i = 0, j = 0;
for(; i <= dms; i++){
for(j = 0; j != 0x8fff; j++)
;
}
}
#define MAXDELAYTIME 0x8f
void main(void)
{
unsigned int i = 0;
bit bFlag1 = 0, bFlag2 = 0, bFlag3 = 0;
unsigned char DelayTime[3] = {0, 0, 0};
P0 = 0xff;
P1 = 0xff;
P2 = 0xff;
P3 = 0xff;
// delay for power on
for(; i!= 0xffff; i++){
;
}
ModeChange(0, 0);
ML2724Control(0);
ML2724Control(1);
ML2724Control(2);
while(1){
KeyPin1 = 1;
KeyPin2 = 1;
delay(200);
if(!KeyPin1 && !KeyPin2){
DelayTime[0] ++;
if(DelayTime[0] == MAXDELAYTIME){
bFlag1 = 1;
DelayTime[0] = 0;
}
} else if(!KeyPin1){
DelayTime[1] ++;
if(DelayTime[1] == MAXDELAYTIME){
bFlag2 = 1;
DelayTime[1] = 0;
}
} else if(!KeyPin2){
DelayTime[2] ++;
if(DelayTime[2] == MAXDELAYTIME){
bFlag3 = 1;
DelayTime[2] = 0;
}
}
if(bFlag1){
ModeChange(0, 0);
bFlag1 = 0;
}
if(bFlag2){
bFlag2 = 0;
ModeChange(0, 1);
}
if(bFlag3){
bFlag3 = 0;
ModeChange(1, 0);
}
ML2724Control(0);
ML2724Control(1);
ML2724Control(2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -