多路继电器控制、远程通信等功能。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char /* 宏定义 */
#define uint unsigned int /* 宏定义 */
sbit L0 = P1 ^ 0; /* 0和1指令显示信息引脚 */
sbit L1 = P1 ^ 1; /* 0和1指令显示信息引脚 */
sbit L2 = P1 ^ 2; /* 0和1指令显示信息引脚 */
sbit L3 = P1 ^ 3; /* 0和1指令显示信息引脚 */
sbit L4 = P1 ^ 4; /* 0和1指令显示信息引脚 */
sbit L5 = P1 ^ 5; /* 0和1指令显示信息引脚 */
sbit L6 = P1 ^ 6; /* 0和1指令显示信息引脚 */
sbit L7 = P1 ^ 7; /* 0和1指令显示信息引脚 */
sbit KEY2 = P0 ^ 2; /* 清零 */
/**********************延时函数*********************/
void delay( uint z )
{
uint x, y;
for ( x = z; x > 0; x-- )
for ( y = 110; y < 0; y-- )
;
}
/*********************信息发送*********************/
void send( uchar c ) /* 向串口发送字符 */
{
SBUF = c;
while ( TI == 0 )
;
TI = 0;
}
/*********************键盘扫描*********************/
uchar key() /*按键扫描 */
{
uchar keyon, temp;
P2 = 0x0f; delay( 1 );
temp = P2 ^ 0x0f;
switch ( temp )
{
case 1: keyon = 3; break; /*按键按下 */
case 2: keyon = 2; break;
case 4: keyon = 1; break;
case 8: keyon = 0; break;
default: keyon = 16;
}
P2 = 0xf0;
delay( 1 );
temp = P2 >> 4 ^ 0x0f;
switch ( temp )
{
case 1: keyon += 0; break;