|
|
楼主 |
发表于 2017-3-9 14:04:03
|
显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2017-3-19 21:08 编辑
库结构和规划:
库主要由全局定义和封装好的函数构成。
全局定义篇:
引脚定义:
单片机所有引脚在库中已经全部定义好,如P3.5引脚,库定义为P35。
示例: P35=0;
引脚二次定义:
引脚作特殊使用时,引脚还会被二次定义。
比如改为自己习惯的定义: #define P35 LED1 ,之后对LED1操作等效P35
比如更改库默认的引脚: #define P35 LCD1602_RS ,这样屏幕接在哪个引脚上都可以使用
库函数篇:
//软件延时N微妙 最大255us
void Delay_us(u8 n);
//示例 Delay_us(255); //延时
//软件延时N毫秒 最大65535ms
void Delay_ms(u16 n);
//示例 Delay_ms(500);
//引脚输出模式设置
void PinMode(u8 pin_num,u8 mode);
//示例 PinMode(pin5,1);
//软件模拟串口发送字符
void Soft_putc(u8 D);
//示例 Soft_puts('A'); Soft_puts(0x55);
//软件模拟串口发送字符串
void Soft_puts(u8 code *s);
//示例 Soft_puts("Hallow\n");
//定时器0时间设置
void Timer0_init(u16 us);
//示例 Timer0_init(10000);
//定时器2时间设置
void Timer2_init(u16 us);
//示例 Timer0_init(500);
//EEPROM扇区擦除 (按扇区操作,一个扇区0~511字节)
void EEPROM_erase(u8 sector);
//示例 EEPROM_erase(1); //擦除1号扇区
//EEPROM单字节读取
u8 EEPROM_read(u8 sector,u16 address);
//示例 dat=EEPROM_read(0,100); //读取储存在0号扇区、第100个字节的数据
//EEPROM单字节写入
void EEPROM_write(u8 sector,u16 address,u8 byte);
//示例 EEPROM_write(1,500,0xAA); //将0xAA存放在1号扇区、第500个字节处
功能性函数:
//按键检测
u8 KeyScan(u8 pin_num);
//示例 if(KeyScan(P33)==1);
//软件延时法测量脉冲宽度
u16 Soft_measure(u8 mode);
//示例 time=Soft_measure(High); //测量高电平宽度 Soft_measure(Low);
显示屏驱动函数:
//
//
|
| |