📄 subtask.c
字号:
#include "reg51.h"
#include "Head.h"
/************************************************************/
sbit g_ledClk = P1^0;
sbit g_ledDat = P1^1;
#define d_SetClk() g_ledClk=1
#define d_ClrClk() g_ledClk=0
#define d_SetDat() g_ledDat=1
#define d_ClrDat() g_ledDat=0
code unsigned char LED_TAB[]={
0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x1a,0x7a,0x9e,0x8e, //0-f 不带小数点,码为0x00-0x0f
0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7,0xef,0x3f,0x1b,0x7b,0x9f,0x8f, //0-f 带小数点,码为0x10-0x1f
0x00};//不显,码为0x20
void LedSendByte(unsigned char ch)
{
unsigned char i;
ch=LED_TAB[ch];
for(i=0;i<8;i++)
{
if(ch & 0x01)
d_SetDat();
else
d_ClrDat();
d_ClrClk();
d_SetClk();
ch >>=1;
}
}
/************************************************************/
char xdata PortAL _at_ 0x2000;
char xdata PortAR _at_ 0xe000;
char xdata PortBL _at_ 0x8000;
char xdata PortBR _at_ 0xb000;
sbit PortCL = P2^3;
sbit PortCR = P2^2;
sbit PortDL = P2^1;
sbit PortDR = P2^0;
char ReadAL(void)
{
return PortAL;
}
char ReadAR(void)
{
return PortAR;
}
char ReadBL(void)
{
return PortBL;
}
char ReadBR(void)
{
return PortBR;
}
void WriteCL(char ch)
{
PortCL = 1;
P0 = ch;
PortCL = 0;
P0 = 0xff;
}
void WriteCR(char ch)
{
PortCR = 1;
P0 = ch;
PortCR = 0;
P0 = 0xff;
}
void WriteDL(char ch)
{
PortDL = 1;
P0 = ch;
PortDL = 0;
P0 = 0xff;
}
void WriteDR(char ch)
{
PortDR = 1;
P0 = ch;
PortDR = 0;
P0 = 0xff;
}
/************************************************************/
char g_portCL = 0;
char g_portCR = 0;
char g_portDL = 0;
char g_portDR = 0;
/************************************************************/
void InitSystem(void)
{
g_portCL = 0;
g_portCR = 0;
g_portDL = 0;
g_portDR = 0;
WriteCL(g_portCL);
WriteCR(g_portCR);
WriteDL(g_portDL);
WriteDR(g_portDR);
}
void Door(char num)
{
g_portCL &= ~L_OPEN;
g_portCR &= ~R_CLOSE;
g_portCL |= L_DOORSPEED;
switch(num)
{
case 1:
g_portCL |= L_OPEN;
break;
case 2:
g_portCR |= R_CLOSE;
break;
}
WriteCL(g_portCL);
WriteCR(g_portCR);
}
void Box(char num)
{
g_portCL &= ~L_DOWN;
g_portCR &= ~R_UP;
g_portCR |= R_BOXSPEED;
switch(num)
{
case 1:
g_portCR |= R_UP;
break;
case 2:
g_portCL |= L_DOWN;
break;
}
WriteCL(g_portCL);
WriteCR(g_portCR);
}
void LED_UpDown(char upDown)//0为不显示
{
g_portDL &= ~L_RUNUP;
g_portDR &= ~R_RUNDOWN;
switch(upDown)
{
case 1:
g_portDL |= L_RUNUP;
break;
case 2:
g_portDR |= R_RUNDOWN;
break;
}
WriteDL(g_portDL);
WriteDR(g_portDR);
}
void LED_floor(char floor)//0为不显示
{
g_portDL &= ~L_1FLOOR;
g_portDR &= ~R_2FLOOR;
g_portDL &= ~L_3FLOOR;
g_portDR &= ~R_4FLOOR;
switch(floor)
{
case 1:
g_portDL |= L_1FLOOR;
break;
case 2:
g_portDR |= R_2FLOOR;
break;
case 3:
g_portDL |= L_3FLOOR;
break;
case 4:
g_portDR |= R_4FLOOR;
break;
}
WriteDL(g_portDL);
WriteDR(g_portDR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -