AVR学习笔记一、基本输出实验(电路原理图)
本实验包括七个例程:1、点亮LED试验,2、流水灯试验,3、蜂鸣器试验,4、1位数码管显示试验,5、四位数码管显示试验,6、1602液晶显示试验,7、12864液晶显示实验。
AVR学习笔记二、基本输入和外部中断实验
本实验包括二个例程:1、检测按键,实现按键控制LED的亮灭,2、外部中断实验,利用中断检测按键,并在数码管上显示。
AVR学习笔记三、定时记数器0实验
本实验包括五个例程:1、定时/计数器0的计数实验,2、定时/计数器0的定时实验,3、定时/计数器0的比较匹配(CTC)实验,4、定时/计数器0的快速PWM实验,5、定时/计数器0的相位修正PWM实验。
AVR学习笔记四、定时记数器1实验
由于在定时/计数器0的实验中我们已经学会了定时/计数器的定时、计数、PWM等基本功能的使用方法。而单片机中的定时/计数器的基本功能大致上是一样的。主要区别只是在于对不同寄存器的设置。所以在定时/计数器1的实验中我们不再重复这些基本功能。在本实验中主要有两个实例。虽然例子只有两个,但这两个例子却有很大的实用价值,我们可以慢慢体会;这两个例子主要内容是:
1、定时/计数器1的输入捕捉功能:利用定时/计数器的输入捕捉功能实现外部按键的检测,并计算两个按键按下的间隔时间。输入捕捉功能可以用来进行外部信号的周期测量,这是一个很重要的功能。
2、定时/计数器1的两通道比较匹配功能:通过对电路板做一个小小的改动,我们实现了用两通道比较匹配功能驱动电路板上的D10、D11(1红、1绿两种颜色的LED)两个二极管同时实现了渐明渐暗的变化效果。很有意思的一个试验。本实验在电路板上的改动是:讲PD4、PD5两个端口引出两根导线连接到PD0、PD1两个端口上。另外需要注意的是:本实例用的是内部8M晶体,而前面的所有实例使用的都是内部1M晶体。所以需要修改WINAVR(GCC)中的makefile中的晶体的值,而在下载程序的时候,也需要修改相应的熔丝位配置。
AVR学习笔记五、异步串行通信(USART)实验
在本实验中包含三个实例:
1、发送单个字节的实验;
2、将接收到的数据原样发送回去的实验。
3、一个完整的数据收发实验
AVR学习笔记六、模拟比较器和ADC实验
本实验包含两个例子:
1、模拟比较器实验:通过测量PA0口的电压,如果电压高于1.22V,则点亮LED2,如果低于1.22V则点亮LED1.
模拟比较其实一个很有用的功能,它可以用来检测系统电源电压,还可以进行模数转换。
2、模数转换ADC实验:通过测量PA0口的模拟电压值,将测得的电压值通过串口发送到计算机,通过串口助手显示电压值。
AVR学习笔记七、基于DS18B20的温度测量实验
本实验包括3个例子,分别是:
1、利用DS18B20实现简单的温度测量。在这个例子中主要是学习了DS18B20的基本操作时序,DS18B20的基本操作时序是十分严格的,如果不按照规定的时序操作,是读不出来数据的。而弄清了操作时序后,一切都会变得简单。
2、利用寄生电源供电方式对DS18B20进行操作,不但实现了温度的读取,还实现了对DS18B20的RAM区的读写操作。利用寄生电源的优点在于可以不必给DS18B20单独配备电源,从而能够更好的实现远程测温。
3、利用匹配指令实现多点测温。通过发送指定的DS18B20的ROM序列号,实现对连接的多个DS18B20中的一个进行读写。实现基本的多点测温试验。
AVR学习笔记八、基于DS1302的实时时钟
本实验包括1个例子:
1、利用DS1302实现简单的实时时钟。在这个例子中主要是学习了DS1302的基本操作时序,以及DS1302的控制指令
AVR学习笔记九、基于AT24C16的I2C总线实验
本实验包括3个例子,分别是:
1、利用模拟I2C接口的方法实现对AT24C16的读写,并通过LED的亮灭指示读出的数据是否正确。
2、利用AVR的硬件TWI接口,使用查询法实现对AT24C16的读写,并通过LED的亮灭指示读出的数据是否正确。
3、利用AVR的硬件TWI接口,使用中断法实现对AT24C16的读写,同时将读取的数据发送到计算机串口,并通过LED的亮灭指示读出的数据是否正确。
在I2C总线接口的学习中,我对学习板做了一些小小的改动,分别给SDA和SCL加了外接的4.7K上拉电阻,大家看程序的时候请一定注意。
AVR学习笔记十、基于数码管显示的流转灯
本实验利用数码管编写一个简单的程序实现流转灯效果。实例效果是:首先逐段显示字符“0”,然后让字符“0”的所有段流动起来。最后让字符“0”亮灭变化。整个程序循环执行,达到简单模拟广告灯的效果。
AVR学习笔记十一、AVR内部EEPROM的读写实验
实验利用WINAVR自带的EEPROM读写函数实现对AVR单片机内部EEPROM的读写,并通过学习板上的8个LED等显示读取的数据是否正确。同时也进行了掉电后再上电,然后读取EEPROM内容是否正确保存。
需要特别注意的是:在做这个实验的时候,熔丝位需要正确设置,应当选择熔丝位为“执行芯片擦除时保留EEPROM的内容”即EESAVE=0。
AVR学习笔记十二、AVR内部的看门狗操作实验
本实验利用WINAVR自带的看门狗操作函数进行试验,利用LED的亮灭演示看门狗及时复位/没有及时复位的情况。