}
voidDisplay(unsignedcharp[]) //动态显示,
{
unsignedchari;
for(i=0;i<4;i++)
{
PORTD=0x01<
PORTB=Table[p[i]];
delay_(5);
PORTD&=(~0x01<
}
}
unsignedintread_adc(unsignedcharadc_input) //读取A/D转换结果
{
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0x40; //启动A/D转换
while((ADCSRA&0x10)==0); //等待A/D转换完成
ADCSRA|=0x10;
returnADCH;
}
voidProcess(unsignedinti,unsignedchar*p) //数据处理函数
{
p[0]=i/1000;
i=i%1000;
p[1]=i/100;
i=i%100;
p[2]=i/10;
i=i%10;
p[3]=i;
}
voidmain(void)
{
init_devices();
DDRA=0x00; //设置A口为不带上拉输入;
PORTA=0x00;
DDRB=0xff; //设置B口为输出口;
DDRD=0xff; //设置D口为输出口;
PORTB=0x3f; //B口初始化输出0;D口初始化输出1;点亮全部数码管;
PORTD=0xff;
ADMUX=ADC_VREF_TYPE; //选择第一通道ADC0;
ADCSRA=0xA6; //125k转换速率,自由转换模式;启动A/D转换;
delay_(1000); //延时待系统稳定;
while
(1)
{
i=read_adc(AD_SE_ADC0); //获取A/D转换数据
i=(i*j)/k;
Process(i,Data); //数据处理
Display(Data); //显示结果
delay_(5);
}
}
4.6仿真软件简介
Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2、MPLAB等软件。
(4)具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
Proteus7.5是目前最好的模拟单片机外围器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD、RAM、ROM、键盘、马达、LED、AD/DA、部分SPI器件、部分IIC器件等)。
软件编译采用KEILC51软件,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4.7系统调试
在调试过程中主要是对程序的修改,特别是显示子程序。
开始时,调整输入,看数码显示的数值,改变电阻值即改变温度,看数码显示的数值是否正确。
在看扬声器发声时的温度值是否和实验设定的相符,还要检测发光二极管的发光情况。
结束语
这种温度报警器结构简单。
工作时,温度测量范围为0——250℃。
当温度达到预定值时,立刻发出报警信号,从而防止因温度升高或过低带来的不必要的损失。
通过本次课程设计,又使我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。
在做本次课程设计的过程中,我感触最深的当属查阅了大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十方必要的,同时是必不可少的。
其次,我学会了在网络中查找有关的各硬件的资源,为本次课程设计提供一定的资料。
参考文献
[1]王幸之钟爱琴.AT89系列单片机原理与接口技术[M].北京:
北京航空航天大学出版社,2004.
[2]谭浩强.C程序设计(第二版)[M].北京:
清华大学出版社,1999.
[3]赵亮.单片机C语音编程与实例[M].北京:
人民邮出版社,2004.
[4]房小翠、王金凤.单片机实用系统设计技术[M].北京:
国防工业出版社,1999.
[5]康华光.电子技术基础数字部分(第四版)[M].北京:
高等教育出版社,1998.
[6]张毅刚.单片机原理及应用[M].北京:
高等教育出版社,2003.
[7]李广第,朱月秀,王秀山.单片机基础[M].北京:
北京航空航天大学出版社,2001.
[8]杨振江.A/D、D/A转换器接口技术与实用电路[M].西安:
西安电子科技大学出版社.
[9]梅笙,李玮.基于AT89C52控制的数控直流电流源的设计[J].电子测试,2007
(2):
19-23.
[10]张鑫.单片机原理及应用[M].电子工业出版社,2005.
[11]MatthewR,RobinT.Microprocessorcontrolledpowersupply[J].ElectronicWorldWirelessWorld,1994,95(1639):
524~527.
[12]KuoBC.Automaticcontrolsystem[M].3thed.NewJersy PrenticeHall,1975.
行政班级:
学号:
姓名:
课程论文题目:
用ADC0808设计的调温报警器
设计要求:
设计一款基于AT89C51单片机的温度报警器。
利用可调电阻调节电压作为模拟温度的输入量,当温度低于60℃时,扬声器发出报警和绿光报警,当温度高于160℃时,发出报警和红光报警。
测量的温度范围在0——250℃,并能实时显示当前温度值。
教师评语:
教师签字:
年月日
选课班级:
任课教师:
成绩: