1、三,详细说明如何使用硬件单元1,七段数码管型号是LG5641AH(共阴极)的使用。该显示管总共有12 个引脚,包括a-g和dp以及四个位选g1-g4。将a-f分别与ATmega芯片的PB1-PB6连接,g1-g4分别与PD0-PD3连接。2,蜂鸣器的连接。蜂鸣器的两个引脚分别与ATmega芯片的PC2,PC1连接,其中,前者接负极,后者接正极。3,DS18B20温度传感器的连接。该传感器3个端口分别与接地口,芯片的PA7,去耦电容104连接。四.软件设计流程和设计思想软件设计思想: 现在生活很多方面都要用到温度这个概念,例如在温室里需要时刻注意温度的变化,另外在一些科学实验里面,温度是一个很重
2、要的条件,很多情况下要都对温度作很严格的要求,往往温度的一点不适当会引起相当大的变化,从而影响一些重要结果的得出.因此对于环境温度的测量显得很重要.基于这一点,萌生了采用单片机对温度进行监视的想法.五.软件功能:1. 实现对温度的监视,达到实时显示的目的.2. 实现对不适合温度的警报,方便对温度监控. (报警温度可人工设定)六.系统测试过程及测试数据: (1) 时间:08年6月8 日13:10地点:十二号楼124宿舍测试对象:室内温度设定警报温度:31时间13:2025303540温度30.330.4(2)时间:08年6月8日22: 地点:十二号楼124宿舍 测试对象: 设定警报温度:22。2
3、2:29.729.8七.实验程序代码#include macros.hunsigned char ds1820_reset(void)。unsigned int ds1820_read_temp(void)。#define DQ_IN DDRA &= (1 PA7) /*设置输入*/#define DQ_OUT DDRA |= (1 PA7) /*设置输出*/#define DQ_CLR PORTA & PA7) /*置低电平*/#define DQ_SET PORTA |= (1 PA7) /*置高电平*/#define DQ_R PINA & (1 480uS)*/ if(flag&0x8
4、0) /*恢复中断状态*/ SEI()。 if(i) return 0x00。 else return 0x01。/*DS18B20字节读取函数*/unsigned char ds1820_read_byte(void) unsigned char value=0。 for(i=8。i!=0。i-) value=1。 DQ_OUT。 DQ_CLR。 /*延时4uS*/ DQ_SET。 DQ_IN。 /*延时10uS*/ if (DQ_R) value|=0x80。 delay_10us(5)。 /*延时60uS*/0x80) /*恢复中断状态*/ return(value)。/*DS18B20
5、字节写入函数*/void ds1820_write_byte(unsigned char value) i-) if (value & 0x01) DQ_SET。 delay_10us(7)。 /*延时80uS*/ /*位结束*/ if (flag & 0x80) /*启动ds1820转换*/void ds1820_start(void) ds1820_reset()。 ds1820_write_byte(0xCC)。 /*勿略地址*/ ds1820_write_byte(0x44)。 /*启动转换*/*DS8B20读取温度信息*/unsigned int ds1820_read_temp(v
6、oid) unsigned int i。 unsigned char buf9。 ds1820_write_byte(0xBE)。 /*读取温度*/ for (i = 0。 i 9。 i+) bufi=ds1820_read_byte()。 i=buf1。 i=3)poist=0。void feng(unsigned i)if(i=31)PORTC=0x83。else PORTC=0x01。void main(void) unsigned int i,j。DDRA=0x00。 /*方向输入*/PORTA=0xFF。DDRC=0xFF。 /*打开上拉*/DDRB=0xFF。 /*方向输出*/PO
7、RTB=0x00。 /*电平设置*/DDRD=0xFF。PORTD=0x80。SEI()。TCCR0=0x0B。TCNT0=0x00。OCR0=0x8B。TIMSK=0x02。delay_ms(200)。ds1820_reset()。 /*复位D18B20*/while (1) ds1820_start()。 /*启动一次转换*/delay_ms(15)。 /*等待转换结束*/i=ds1820_read_temp()。 /*读取温度数值*/i=(i*10)/16。 /*数值处理*/led_buf3=i/1000。 /*将显示信息加载到显示缓存区*/i=i%1000。led_buf2=i/100
8、。i=i%100。led_buf1=i/10。led_buf0=i%10。j=led_buf2*10+led_buf1。feng(j)。八.需的全部资源温度传感器我们所采用的温度传感器是DS18B20,这是最常用的温度芯片该传感器为6.5元每个。下图为蜂鸣器。该蜂鸣器为短叫蜂鸣器,一元每个。ATmega16芯片该芯片为实验室所赠。去耦电容104该电容主要对传感器其稳定作用,0.5元每个。实验电路板。基本的元件都焊接在该电路板上,五元每个。电阻,买了4700欧姆,200千欧姆,100欧的电阻若干,总共花费1元。两个高亮的LED灯花费1元,主要作用是发出警报是伴随有声音。加上去去欧亚电子大厦来往车
9、费,一共花费30元。选器件的心得体会:1, 买元件前,应该将所买的元件全部记下来,避免买时遗忘。2, 买元件前,得弄清楚各个产品的型号,功能,避免出现盲目购买现象,力争一次将所有的元器件买完。例如本次购买温度传感器,由于买之前不知道该买的型号,结果去了电子大厦以后,买时不知道买哪种好,花费了大量的时间精力,实在不值。3, 力争用最少的钱做最好的工程。由于在生活生产中需要对仪器成本进行控制,所以控制成本成了产品能否广泛应用的关键,我们感觉做这个工程成本有些偏高,另外在功能上还有些单一,这是以后做工程必须注意的地方。八.的分工和工作情况1,体会。经过一个学期的学习和实践,我们终于做出了这个工程。由于刚接触单片机,所以从选择硬件到硬件焊接再到程序编写调试我们遇到了许多的困难,而且理论和实际有一定的差距,但我们通过交流和向他人请教,最终把所有的问题都解决了。在操作的过程中,我们感到了自己的动手能力上有不足,但我们增强了自己的动手能力。更重要的是,在实验中我们不抛弃,不放弃,遇到困难从来不灰心,最终享受到了成功的喜悦。只要抱着这种精神,我们相信以后的学习生活会做得更好!具体分工如下:张坤软件的编写,程序的调试,器件的购买。张磊硬件的焊接,网页的设计。黄大明PPT的制作,文档的编写,器件的购买。贡献分值:(附图:正常温度)(超过设定温度,报警)最后感谢李茂奎的老师悉心指导和大力支持!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1