本帖最后由 duxinlng 于 2015-8-5 10:07 编辑
交流QQ群:322416747
硬件资源:
1、MUC-51单片机STC15W4K48S4(48K FLASH,4K SDRAM)
2、串口WIFI模块
3、EEPROM-AT24C02
4、时钟芯片-DS1302
5、步进电机
6、RS232接口
7、4bit独立LED
8、4bit独立触摸按键
9、RS485接口
10、温湿度采集
11、红外遥控
12、蜂鸣器
13、液晶LCD128X64带字库
宏定义头文件:
typedef unsigned char c51_uint8_t; //8bit无符号整型数据
typedef unsigned int c51_uint16_t; //16bit无符号整型数据
typedef unsigned long c51_uint32_t; //32bit无符号整型数据
typedef char c51_int8_t; //8bit符号整型数据
typedef int c51_int16_t; //16bit符号整型数据
typedef long c51_int32_t; //32bit符号整型数据
typedef bit c51_bit; //1bit类型
#define NULL 0
typedef enum{
C51_FALSE = 0,
C51_TRUE
}C51_TYPE_ENUM_BOOL; //BOOL变量定义
typedef enum{
C51_ERR = 0,
C51_ERR_OK,
C51_ERR_TIMEOUT
}C51_TYPE_ERR; //ERROR变量定义
#define ROMDATA code
#define XDATA xdata
LED控制程序:
#define LED_ON C51_TRUE //LED开类型定义
#define LED_OFF C51_FALSE //LED关类型定义
extern void Func_Led_Init(void); //LED管脚和状态初始化
extern void Func_Led_Ctrl(C51_TYPE_ENUM_BOOL led1,C51_TYPE_ENUM_BOOL led2,
C51_TYPE_ENUM_BOOL led3,C51_TYPE_ENUM_BOOL led4);//LED亮灭控制
#define LED1_PxM1 P4M1 //PxM1和PxM0结合用于设置端口的模式
#define LED1_PxM0 P4M0 //详情查看"STC15.H"
#define LED1_PORT P4 //LED接的I/O端口
#define LED1_BIT 0X08 //P4.3
#define LED1_UBIT 0XF7
#define LED1_DIR {LED1_PxM1 |= LED1_BIT;LED1_PxM0 |= LED1_BIT;} //设置I/O为推挽输出模式
#define LED1_OUTH {LED1_PORT |= LED1_BIT;} //I/O置高电平,LED灭
#define LED1_OUTL {LED1_PORT &= LED1_UBIT;} //I/O置低电平,LED亮
#define LED2_PxM1 P4M1 //PxM1和PxM0结合用于设置端口的模式
#define LED2_PxM0 P4M0 //详情查看"STC15.H"
#define LED2_PORT P4 //LED接的I/O端口
#define LED2_BIT 0X04 //P4.2
#define LED2_UBIT 0XFB
#define LED2_DIR {LED2_PxM1 &= LED2_UBIT;LED2_PxM0 |= LED2_BIT;} //设置I/O为推挽输出模式
#define LED2_OUTH {LED2_PORT |= LED2_BIT;} //I/O置高电平,LED灭
#define LED2_OUTL {LED2_PORT &= LED2_UBIT;} //I/O置低电平,LED亮
#define LED3_PxM1 P4M1 //PxM1和PxM0结合用于设置端口的模式
#define LED3_PxM0 P4M0 //详情查看"STC15.H"
#define LED3_PORT P4 //LED接的I/O端口
#define LED3_BIT 0X02 //P4.1
#define LED3_UBIT 0XFD
#define LED3_DIR {LED3_PxM1 &= LED3_UBIT;LED3_PxM0 |= LED3_BIT;} //设置I/O为推挽输出模式
#define LED3_OUTH {LED3_PORT |= LED3_BIT;} //I/O置高电平,LED灭
#define LED3_OUTL {LED3_PORT &= LED3_UBIT;} //I/O置低电平,LED亮
#define LED4_PxM1 P3M1 //PxM1和PxM0结合用于设置端口的模式
#define LED4_PxM0 P3M0 //详情查看"STC15.H"
#define LED4_PORT P3 //LED接的I/O端口
#define LED4_BIT 0X80 //P3.7
#define LED4_UBIT 0X7F
#define LED4_DIR {LED4_PxM1 &= LED4_UBIT;LED4_PxM0 |= LED4_BIT;} //设置I/O为推挽输出模式
#define LED4_OUTH {LED4_PORT |= LED4_BIT;} //I/O置高电平,LED灭
#define LED4_OUTL {LED4_PORT &= LED4_UBIT;} //I/O置低电平,LED亮
/*********************************************************************
**:LED初始化,配置I/O为推挽输出模式
*********************************************************************/
void Func_Led_Init(void)
{
LED1_DIR;//I/O初始化,设置为推挽输出模式
LED2_DIR;//I/O初始化,设置为推挽输出模式
LED3_DIR;//I/O初始化,设置为推挽输出模式
LED4_DIR;//I/O初始化,设置为推挽输出模式
Func_Led_Ctrl(LED_OFF,LED_OFF,LED_OFF,LED_OFF);
}
/*********************************************************************
**:LED亮灭控制,LED_ON = 开, LED_OFF = 关
*********************************************************************/
void Func_Led_Ctrl(C51_TYPE_ENUM_BOOL led1,C51_TYPE_ENUM_BOOL led2,
C51_TYPE_ENUM_BOOL led3,C51_TYPE_ENUM_BOOL led4)
{
if(led1==LED_ON){LED1_OUTL;} //LED1开
else {LED1_OUTH;} //LED1关
if(led2==LED_ON){LED2_OUTL;} //LED2开
else {LED2_OUTH;} //LED2关
if(led3==LED_ON){LED3_OUTL;} //LED3开
else {LED3_OUTH;} //LED3关
if(led4==LED_ON){LED4_OUTL;} //LED4开
else {LED4_OUTH;} //LED4关
}
|