AVR单片机教程——EasyElectronics Library v1.0手册

发布者:keiss2018最新更新时间:2019-12-31 来源: eefocus关键字:AVR单片机  EasyElectronics  Library  0手册 手机看文章 扫描二维码
随时随地手机看文章

1. 概述

1.1 背景

EasyElectronics Library v1.0是开发板EasyElectronics配套的库。

EasyElectronics是一款基于AVR单片机的开发板,以板载资源丰富、使用简便为特色。

1.2 库组织结构

库由C语言编写,release中包含若干头文件与一个静态库文件。

在头文件中,ee.h直接或间接地包含了所有其他头文件。

用户手动include ee.h中没有直接include的头文件是不推荐的,但也不会报错。

1.3 版本号

本手册对应的库版本号为1.0。

版本号由两位构成,前一位为主版本号,当库有结构性的变化或不与先前版本兼容时,此位+1;后一位为副版本号,当库中加入少量新内容时,此位+1。

对于修正版本,版本号不变,不另行通知。

 

2. 库函数

1. bit.h

bit.h定义了用于位操作的宏函数,适用于8或16位整数。

set_bit(r, b):将r的第b位置为1。

reset_bit(r, b):将r的第b位置为0。

read_bit(r, b):读取r的第b位,若为1则返回(1 << b),否则返回0。

cond_bit(c, r, b):若c为真,则将r的第b位置为1,否则置为0。

clock(r, b):将r的第b位置为1后立即置为0。

flip(r, b):将r的第b位取反。

BIT_MASK(n, b):返回从第b位开始的高n位全1的二进制数。

2. delay.h

delay.h定义了延时函数

void delay(uint16_t _time):延时_time毫秒。

 

3. pin.h

pin.h定义了引脚操作的函数。

pin_t:类型别名,可以表示引脚。

PIN_NULL:宏常量,表示空引脚。所有接受pin_t参数的函数如果接受PIN_NULL参数,则不会执行任何动作,返回void或0。

PIN_?:宏常量,?为0~9或A~F,pin_t类型,表示对应引脚。

INPUT:宏常量,表示输入。

OUTPUT:宏常量,表示输出。

void pin_mode(pin_t _pin, bool _mode):_mode应为上述2个宏之一,将_pin引脚设为_mode模式。

LOW:宏常量,输入模式下表示高阻态,输出模式下表示低电平

HIGH:宏常量,输出模式下表示高电平。

PULLUP:宏常量,输入模式下表示上拉。

void pin_write(pin_t _pin, bool _level):_level应为上述3个宏之一,将_pin引脚设为_level状态。

PIN_BIT(p):宏函数,内部使用。

void pin_write_multi(pin_t _pin, uint8_t _mask, uint8_t _value):内部使用。

void pin_flip(pin_t _pin):将_pin引脚电平翻转。

bool pin_read(pin_t _pin):返回_pin引脚电平是否为高。

4. tone.h

tone.h定义了输出指定频率方波的函数。

TODO

5. pwm.h

pwm.h定义了输出PWM波形的函数。

TODO

6. uart.h

uart.h定义了串口收发的函数。

TODO

7. adc.h

adc.h定义了ADC操作的函数。

TODO

8. led.h

led.h定义了板载LED操作的函数。

LED_COUNT:宏常量,LED的个数。

void led_init():初始化LED。

LED_RED:宏常量,表示红色LED。

LED_YELLOW:宏常量,表示黄色LED。

LED_GREEN:宏常量,表示绿色LED。

LED_BLUE:宏常量,表示蓝色LED。

LED_OFF:宏常量,表示LED不亮。

LED_ON:宏常量,表示LED亮。

void led_set(uint8_t _which, bool _on):_which应为上述表示LED的宏,_on应为上述表示LED状态的宏,将_which设为_on的状态。

void led_flip(uint8_t _which):_which应为上述表示LED的宏,将_which的状态翻转。

void led_on():点亮所有LED。

void led_off():关闭所有LED。

9. rgbw.h

rgbw.h定义了驱动板载RGBW LED的函数。

RGBW_COUNT:宏常量,RGBW LED的颜色数。

RGBW_RED:宏常量,表示红色LED。

RGBW_GREEN:宏常量,表示绿色LED。

RGBW_BLUE:宏常量,表示蓝色LED。

RGBW_WHITE:宏常量,表示白色LED。

rgbw_pin:pin_t类型数组,存储RGBW LED的颜色对应的引脚。

void rgbw_init(pin_t _r, pin_t _g, pin_t _b, pin_t _w):初始化RGBW LED,4个参数分别为红、绿、蓝、白LED的引脚。

void rgbw_set(uint8_t _which, uint8_t _value):_which应为上述表示LED的宏,_value为亮度值。对于4~7号引脚,_value为亮度;对于其他引脚,_value≥128则LED亮。

RGBW_COLOR(r, g, b, w):宏函数,接受4个0~3的数,生成一个表示颜色的数。

void rgbw_color(uint8_t _color):_color应为RGBW_COLOR生成的数,使RGBW LED显示相应的颜色。

void rgbw_off():关闭RGBW LED。

10. segment.h

segment.h定义了驱动板载2位7段数码管的函数。

TODO

11. buzzer.h

buzzer.h定义了驱动板载蜂鸣器的函数。

TODO

12. button.h

button.h定义了读取板载按键状态的函数。

BUTTON_COUNT:宏常量,按键个数。

BUTTON_?:宏常量,?为0~3,表示按键。

void button_init(pin_t _button2, pin_t _button3):_button2与_button3分别为按键2和3连接的引脚,可以为PIN_NULL。初始化按键操作。

bool button_down(uint8_t _index):返回第_index个按键是否被按下。

bool button_pressed(uint8_t _index):对于每个_index值,返回从前一次调用开始对应按键是否被按下。

13. switch.h

switch.h定义了读取板载开关状态的函数。

TODO

14. rotary.h

rotary.h定义了读取板载旋转编码器输入的函数。

TODO

15. pot.h

pot.h定义了读取板载电位器输入的函数。

TODO

16. ldr.h

ldr.h定义了读取板载光敏电阻输入的函数。

TODO

17. dac.h

dac.h定义了驱动板载10位DAC的函数。

TODO

18. exout.h

exout.h定义了驱动板载74HC595扩展输出的函数。

TODO

19. exin.h

exin.h定义了读取板载74HC165扩展输入的函数。

TODO

20. lcd.h

lcd.h定义了驱动连接到板载接口上的1602 LCD模块的函数。

TODO


关键字:AVR单片机  EasyElectronics  Library  0手册 引用地址:AVR单片机教程——EasyElectronics Library v1.0手册

上一篇:avr单片机熔丝位设置方法及步骤及设置注意事项
下一篇:AVR单片机教程——串口发送

推荐阅读最新更新时间:2024-11-17 08:53

基于ATMEGA8A_AVR单片机温度测控系统proteus仿真
仿真电路图: #include mega48.h #include delay.h // DS18b20 Temperature Sensor functions #include ds18b20.h // Alphanumeric LCD Module functions #include alcd.h #define ADC_VREF_TYPE 0x60 #define Temp_Set_Key_Not_Pressed PIND.6 #define Alarm_Set_Key_Not_Pressed PIND.7 // Read the 8 most significant bits // of th
[单片机]
基于ATMEGA8A_<font color='red'>AVR单片机</font>温度测控系统proteus仿真
AVR单片机熔丝锁死的处理方法解析
1.AVR单片机熔丝位锁死简单快捷的解密方法: 在很多AVR单片机的初学者在使用AVR单片机中,很容易把熔丝位弄错而造成单片机锁死,比如说JTAGEN置为1后,单片机的JTAG就不能再下载程序进去了,因此给我们带来很多麻烦。 常见的恢复方法是使用并口编程器来恢复,对于初学者来说,很多设备是很欠缺的,所以很难解决。 现为我们初学者介绍一个简单实用可行的方法——有源晶振恢复法。将被锁死的AVR单片机接入最小系统或者开发板中,将系统中的晶振拆下来,在XAIL1接上有源晶振的第三脚(按下图接即可)。 然后通电,使用ISP下载线进行熔丝位编辑,本人使用智峰progisp(Ver 1.6.7)软件,打开软件选择好芯片型号,使
[单片机]
<font color='red'>AVR单片机</font>熔丝锁死的处理方法解析
AVR单片机T1中断定时1秒程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code // T/C1中断入口 void miao(void) { if(num==100) {num=0;} else {num++;} TCNT1H=0X85;//重新装载T/C1的初值 TCNT1L=0XED; } void Time1Init(void) { TCCR1B=0X04;//
[单片机]
大神提供的AVR单片机的相关总结
1、AVR文档里要求最好不要中断嵌套,只能执行完这个中断再执行下一个中断; 2、ADC采样的时候,外部存在上拉51K的情况下,断路,测量的电压值是5V(工作电压是5V),说明mega88的输入阻抗是相当大的哈哈; 3、SREG状态寄存器中, SEI、CLI就是开全局中断、关全局中断(还以为没有来着),_NOP 、 _WDR; 4、VolaTIle (不稳定的)AVR全局变量的时候用 (可以避免编辑器对其的优化); 5、不用的IO口如果悬空的话,1是耗电量大处于判断状态;2是 受外界一点点干扰就可能成为反复振荡的输入信号(干扰问题); 6、推挽结构,输出不能直接接地(大电流烧掉管子); 7、明确 PC (Program counte
[单片机]
大神提供的<font color='red'>AVR单片机</font>的相关总结
基于AVR单片机的医用智能输液系统设计
1. 研究意义   目前,医院静脉输液主要是人工控制,由人监控的静脉输液,无法正确调解药液流速,速度过快由于点滴里有钾元素的成分会造成血管刺激,通常刺激会表现为疼痛。但通常输液快慢要看自身身体情况,但输液还是会对血管和心脏,肾脏有刺激。利用现有的科技设计智能输液系统,即可以控制药液流速、检测药液剩余量、及时地停止输液防止血液回流等,医护人员可以通过主控室观察和调解所有药液流速,从而大大地节省人力。   本设计研究一种操作方便,显示直观,具有报警功能的智能型液体点滴速度控制器,该系统让护理人员监控病人打点滴的进程时间得到充分利用,避免病人在输液过程中出现“回血”而造成的医疗事故,提高病人治病输液过程中的安全系数,同时减少护理
[医疗电子]
基于<font color='red'>AVR单片机</font>的医用智能输液系统设计
基于AVR单片机的LED显示屏的灰度设计与实现
  LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式单片机的LED显示屏解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。 1 AVR单片机简介   AVR单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结构,达到一个
[家用电子]
基于<font color='red'>AVR单片机</font>的LED显示屏的灰度设计与实现
超声波测距模块+AVR单片机控制程序
【超声波测距模块】-【机器人的耳朵】 #include avr/io.h #include avr/iom16.h #include util/delay.h int main(void) { DDRA=0x00; PORTA=0x00; //PA口初始化 DDRD=0xff; PORTD=0xff; //PD口初始化 char j,i; int h,u,l; while(1) { j=1; //激活while(j)循环 i=1; //激活while(i)循环 u=6000; //还原检测循环 PORTA&=(1 0); //PA0脚高电平 _delay_us(20); //延时20US
[单片机]
基于AVR单片机的嵌入式“瘦服务器”系统设计
1 引言 21世纪,计算机的发展进入了一个充满机遇的阶段——后PC时代。 继PC机之后,形式多样的数字化产品已经开始成为信息处理的一大主要工具,并且正在逐步形成一个充满商机的巨大产业。后PC时代的到来,使得人们开始越来越多地接触到一个新的概念——嵌入式产品。像手机、PDA(如商务通)等均属于手持的嵌入式产品,VCD机、机顶盒等也属于嵌入式产品,而像车载GPS系统、数控机床、网络冰箱等同样都采用嵌入式系统。形式多样的数字化设备正努力把Internet连接到人们生活的各个角落,这意味着,中国数字化设备的潜在消费者数量将以亿为单位。嵌入式瘦服务器是嵌入式Internet时代的关键和核心技术之一,如果说PC机的发展带动了
[单片机]
小广播
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved