本帖最后由 bmelz 于 2015-9-6 12:43 编辑
大龄青年学习单片机!
上次学习单片机时是12年前,12年后有因工作需要开始重新学习。我现在把暑假期间学习的内容再这里以笔记的形式做个小结。
不对的地方请大侠们不吝赐教,多谢啦!
如有疑问或者建议请和我联系:liangzhen#foxmail.com
单片机:IAP15W4k58S4
开发环境:keil C51 9.54
工程组织结构按照如下来设定:
user/inc : config.h
mcu_cfg.h
drivers_cfg.h
/src: main.c
...
mcu/inc: GPIO.h
UART.h
mytypes.h
exmath.h
...
/src: GPIO.c
uart.c
...
drivers/inc: lcd1602.h
DC_motor.h
/src: lcd1602.c
DC_motor.c
config.h见4楼!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
/*************************************************************
Copyright (C), 2009-2015, C&IIL
File name: GPIO.h
Description:
NULL
Compiler:
IDE: Keil C51 9.51, 9.52
OS: win8,win8.1
Function List:
NULL
History:
Author: Liang Zhen Version: 0.1 Date: 2015/07/22 Email: liangzhen##foxmail.com
Description: Created
*************************************************************/
#ifndef __GPIO_H__
#define __GPIO_H__
#include "config.h"
#include "exmath.h"
//设置Port端口为上拉准双向口。例如:PORT_PullUp(1) 设置P1口为上拉准双向口。
#define _PORT_PullUp(Port) {P##Port##M1 = 0; P##Port##M0 = 0; }
#define PORT_PullUp(Port) _PORT_PullUp(Port)
//设置Port端口为强推挽输出。例如:PORT_PP(1) 设置P1口为强推挽输出
#define _PORT_PP(Port) {P##Port##M1 = 0; P##Port##M0 = 1; }
#define PORT_PP(Port) _PORT_PP(Port)
//设置Port端口为高阻态。例如:PORT_PP(1) 设置P1口为高阻态
#define _PORT_HighZ(Port) {P##Port##M1 = 1; P##Port##M0 = 0; }
#define PORT_HighZ(Port) _PORT_HighZ(Port)
//设置Port端口为开漏输出。例如:PORT_PP(1) 设置P1口为开漏输出
#define _PORT_OD(Port) {P##Port##M1 = 1; P##Port##M0 = 1; }
#define PORT_OD(Port) _PORT_OD(Port)
//设置Port端口的Pin引脚为上拉准双向口。例如:PIN_PullUp(1,2) 设置P12引脚为上拉准双向口。
#define _PIN_PullUp(Port,Pin) {clrBit(P##Port##M1,Pin);clrBit(P##Port##M0,Pin);}
#define PIN_PullUp(Port,Pin) _PIN_PullUp(Port,Pin)
//设置Port端口的Pin引脚为强推挽输出。例如:PIN_PP(1,2) 设置P12引脚为强推挽输出。
#define _PIN_PP(Port,Pin) {clrBit(P##Port##M1,Pin);setBit(P##Port##M0,Pin);}
#define PIN_PP(Port,Pin) _PIN_PP(Port,Pin)
//设置Port端口的Pin引脚为高阻态。例如:PIN_HighZ(1,2) 设置P12引脚为高阻态。
#define _PIN_HighZ(Port,Pin) {setBit(P##Port##M1,Pin);clrBit(P##Port##M0,Pin);}
#define PIN_HighZ(Port,Pin) _PIN_HighZ(Port,Pin)
//设置Port端口的Pin引脚为开漏输出。例如:PIN_OD(1,2) 设置P12引脚为开漏输出。
#define _PIN_OD(Port,Pin) {setBit(P##Port##M1,Pin);setBit(P##Port##M0,Pin);}
#define PIN_OD(Port,Pin) _PIN_OD(Port,Pin)
#endif
/*************************************************************
Copyright (C), 2009-2015, C&IIL
File name: mytypes.h
Description:
NULL
Compiler:
IDE: Keil C51 9.51, 9.52
OS: win8,win8.1
Function List:
NULL
History:
Author: Liang Zhen Version: 0.1 Date: 2015/06/27
Description: Created
*************************************************************/
#ifndef __MYTYPES_H__
#define __MYTYPES_H__
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef int int16_t;
typedef unsigned int uint16_t;
typedef long int32_t;
typedef unsigned long uint32_t;
#endif
还没有完全整理好,整理好,会上传的。
希望大家给提提意见,新手请多赐教!
一周热门 更多>