Avr单片机课程设计报告.docx
《Avr单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《Avr单片机课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
Avr单片机课程设计报告
课程设计报告
基于Atmeg16的紫外线检测及测量系统
一.设计目的:
近些年来,由于大气层臭氧的迅速减少,越来越多的紫外线透过大气层直接照射到地球表面,这给地表的生物带来了很大的影响,如历年来人群中皮肤癌患者显著增多等。
紫外线慢慢给我们的生活带来越来越严重的影响。
因此紫外线的检测及测量越发的重要。
该系统就是一种简便易携的紫外线检测测量装置,对于紫外线的防护具有很大的作用,能有效减少人们长时间的暴露在强紫外线下。
二、系统总体工作流程:
紫外线传感器进行紫外线实时测量
紫外线传感器将电压模拟信号输入至单片机
单片机进行模数转换显示在SD1602屏上
图一系统总体流程图
三、硬件设计思想和电路原理图
本项目的硬件系统主要包括三部分:
UVM-30紫外线传感器模块、单片机和SD1602屏。
3.1紫外线传感器模块
本项目采用的传感器为UVM-30韩国原装紫外线传感器
产品简介:
图二UVM-30紫外线传感器模块
◆专为需要高可靠性和精确性测量紫外线指数(UVI)的场合所设计;
◆适合测量太阳光紫外线强度总量;
◆对照世界卫生组织紫外线指数分级标准
◆检测UV波长:
200-370nm;
◆响应极快、全互换性;
◆采用具有专利的固体聚合物构造、防水防尘易清洗;
◆线性电压信号输出;
◆小尺寸,超低功耗,适用于数码、礼品等便携产品。
UVM-30电气参数:
图三UVM-30响应曲线及结构:
图四在外线检测模块其他参数
3.2单片机及1602屏
3.2.1单片机
我们选用Atmel公司的ATmaga16单片机。
Mega16是高性能、低功耗的8位AVR微处理器,具有先进的RISC结构,内部集成两个具有独立预分频器和比较器功能的8位定时器/计数器和一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。
可通过JTAG对MCU进行程序烧写及仿真。
内置晶振,使用方便。
引脚定义:
图五ATmaga16单片机引脚
3.2.21602屏
图六1602屏连接方式
四.软件设计思想及流程:
我们的程序主要由三部分组成:
LCD1602屏显示模块、adc转换模块、usart串口通讯模块。
4.1程序框图如下:
图七程序框图
4.2程序源代码:
#include
#include
#asm
.equ__lcd_port=0x18;
#endasm
/*[LCD]
1GND-9GND
2+5V-10VCC
3VLC-LCDHEADERVo
4RS-1PCO(M16)
5RD-2PC1(M16)
6EN-3PC2(M16)
11D4-5PC4(M16)
12D5-6PC5(M16)
13D6-7PC6(M16)
14D7-8PC7(M16)*/
#include
#defineucharunsignedchar
#defineuintunsignedint
chardis_buff[]={0,0,0,0,0,0};
bittime_1s_ok;
uinttime_counter,send_time=1;
//ADC电压值送显示缓冲区函数***********************/
voidadc_to_disbuffer(unsignedintadc)
{
unsignedchari,j;
j=adc/100;
if(j>=10)
{
for(i=0;i<=1;i++)
{
dis_buff[1-i]=j%10+48;
j/=10;
}
}
else{dis_buff[0]=j+48;dis_buff[1]=0;}
}
//ADC转换完成中断服务***********************/
interrupt[ADC_INT]voidadc_isr(void)
{
if
(1)
{
unsignedintadc_data,adc_v;
adc_data=ADCW;//读取ADC置换结果
adc_v=(unsignedlong)adc_data*2560/1024;//换算成电压值
adc_to_disbuffer(adc_v);
}
}
//Timer0比较匹配中断服务*********************/
interrupt[TIM0_COMP]voidtimer0_comp_isr(void)
{
if(++time_counter>=500*send_time)
{
time_counter=0;
time_1s_ok=1;
}
}
voidmain(void)
{
//chardis_buff[]={49,'1','2',0,0};
char*str;
//I/O端口初始化
DDRB=0xff;
PORTB=0xff;//LCD显示控制I/O端口初始化
DDRC=0xff;
PORTC=0x00;
//T/C0初始化
TCCR0=0x0B;//内部时钟,64分频(7.3728M/64=115.2KHz),CTC模式
TCNT0=0x00;
OCR0=0xE5;//OCR0=0xE5(229),(229+1)/115.2=2ms
TIMSK=0x02;//允许T/C0比较中断
//ADC初始化
ADMUX=0xC3;//参考电源2.56v、ADC3输入
SFIOR&=0x1F;
SFIOR|=0x60;//选择T/C0比较匹配中断为ADC触发源
ADCSRA=0xAD;//ADC允许、自动触发转换、ADC转换中断允许、ADCclk=125Kz
str=dis_buff;
lcd_init(16);
#asm("sei")//开放全局中断
while
(1)
{
if(time_1s_ok)
{
time_1s_ok=0;
lcd_clear();
lcd_putsf("UVIndex:
");
lcd_gotoxy(0,1);
lcd_puts(str);
str=dis_buff;
}
}
}
5.测试数据:
5.1不同天气类型紫外线辐射强度的日变化
夜间紫外线指数为0;在阴天或者雨天,紫外线指数值为0到2;多云天气,紫外线指数值为3到4;晴天上午,紫外线指数值5到7;夏天晴天中午,紫外线指数值8到10,此时紫外线辐射强度很强。
图八不同天气类型紫外线辐射强度的日变化
5.2相应指标参数:
AVRMega16单片机:
工作电压:
4.5-5.5V;速度等级:
0-16MHz
紫外线传感器:
工作电压:
3—5V,信号输出电压:
0—1.2V。
六、设计所需资源
器材种类
单价(元)
数量(个)
总计(元)
紫外线传感器uvm-30
48
1
48
紫外线传感器
8
1
8
1602屏
13
3
39
Usb转串口线
成员已有
邮费
12
15
总计