当前位置:文档之家› 基于51单片机的自动打铃系统

基于51单片机的自动打铃系统

基于51单片机的自动打铃系统
基于51单片机的自动打铃系统

机电信息工程学院

单片机系统课程设计报告

系:电子信息工程系

专业:电子信息工程

班级:072班

设计题目:自动打铃系统设计

学生姓名:张锡斌仇龙佳

指导教师:刘忠富于为民

完成日期:2010年5月31日

目录

一、设计任务和性能指标 (2)

1.1设计任务 (2)

1.2性能指标 (2)

二、设计方案 (2)

三、系统硬件设置 (3)

3.1、单片机最小系统 (3)

3.2时钟电路DS1302 (4)

3.3、显示电路的设计 (5)

3.4、键盘接口的设计 (5)

3.5打铃电路的设计 (6)

四、系统软件设计 (7)

4.1程序流程图 (7)

4.2主程序设计 (10)

4.3显示子程序的设计 (11)

五、调试及性能分析 (12)

5.1调试步骤 (12)

5.2性能分析 (12)

六、心得体会 (12)

参考文献 (13)

附录1 系统硬件电路图 (14)

附录2 程序清单 (15)

一、设计任务和性能指标

1.1设计任务

用单片机器件为主体,设计一台自动打铃系统。

(一)基本要求

1、基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数

字显示,秒信号指示。

2、能设置当前时间(含上、下午,时,分)。

3、能实现基本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、

再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。

(二)发挥部分

1、增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。

2、增加调整起床铃、熄灯铃时间的功能。

3、增设上午4节课的上下课打铃功能,规定如下:7.30 上课,8.20下

课:8.30上课,9.20下课;9.40 上课,10.30下课;10.40上课,11.30下课;每次铃声5秒。

4、特色和创新自选。

1.2性能指标

1.时钟:上下午(1位)、时(2位) 、分(2位)

2.校对键:确认键/设置键、右移键/灭铃键、加键、减键

3.响铃:蜂鸣器二.设计方案

二、设计方案

按照系统设计的功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示通过内部定时产生中断,从而驱动电铃打铃。电路系统构成框图如图1.1所示。主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS 微处理芯片,市场应用最多。

时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302。采用DS1302作为主要计时芯片、可以做到计时准确。更重要的是,DS1302可以在很小的电流的后备电源(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流对后备电源进行慢速充电,可以保证后备电源基本不耗电。采用串行数据传输,与单片机硬件连接简单,如果使用时钟芯片DS12887,将采用并行数据传输,占用更多的硬件资源。因此为节省单片机端口,时钟芯片采用DS1302。

1.1 硬件电路设计

设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生1S信号,这时秒单元加1。同理,对分单元时单元和上下午单元计数,从而产生秒,分,时,上下午的值,通过五位七段显示器进行显示。由于动态显示法需要数据锁存等硬件,接口较复杂,考虑显示只有五位,且系统没有其他复杂的处理任务,所以采用动态扫描实现LED的显示。

本系统采用四个按键,1键为功能键,另外三个做控制键。按一下1键进入时间设置,接着按2键选择需要调整的位,然后按3和4键进行时调整,按3键进行加数,按4键进行减数,按两下1键调整结束时钟继续走动。当时钟时间与设置时间一致时,驱动电路动作进行打铃,按时间点不同打铃规则不同,此时按2键强制灭铃。

三、系统硬件设置

3.1单片机最小系统

单片机最小应用系统的设计电路原理图,如图3.1所示。

本次设计我们选用了AT89C52单片机。该单片机要求电源电压为+5V,所以40号引脚接+5V电源,20号脚接地。因为AT89C52单片机的片内ROM为4KB,128位RAM,根据初步分析,本设计程序应该小于4KB,故无须外扩的ROM,所以单片机应直接访问片内程序存储器,单片机的31号脚接高电平。AT89C52单片机是一种时序逻辑电路,必须有脉冲信号才能正常工作,而时钟脉冲是由振荡电路提供的,时钟可以由内部方式或外部方式产生,内部振荡方式,只要接上两个微调电容和一个晶振即可,其中微调电容选用33pF其作用是稳定振荡频率,快速起振。本次毕业设计我们采用内部振荡方式,外接晶振为11.0592MHz,振荡周期=1/11.0592μs,时钟周期=2/11.0592μs,机器周期=12/11.0592μs,指令周期=1~4μs。

AT89C52在开机时需复位,以便CPU及其它功能部件都处于确定的初始状态,有利于进行下一步操作。MCS-51系列单片机的有效复位信号两个机器周期以上的高电平。其复位的实现通常可以采用开机上电复位和外部手动复位两种方

式。图中采用的是开机上电复位,复位电路由10μF的电解电容和8.2K电阻组成,其时间常数为T=RC,T=10μf×8.2k,T=82ms大于10ms,所以单片机能够有效复位,单片机只要保持82ms以上的高电平就能使单片机有效复位

图3.1 单片机最小应用系统

3.2时钟电路DS1302

(1)性能特性

实时时钟可对秒,分,时等进行计数,存在高速数据暂存的31*8位RAM,最少引脚的串行I/O口;2.5~~5.5V电压工作范围;2.5V耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节数据传送方式;简单的3线接口;可选的慢速充电的能力。

DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用24H,或带AM/PM的12H格式,采用三线接口与CPU进行同眇通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚;

(2)工作原理

DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。

为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次

序电先的8个寄存器。但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。

时钟暂停:秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。

8051通过串口向DS1302写数据的程序框图如图3.2,其中,Px可以是8051单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.

DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容,对计时精度影响不大。

图3.2 DS1302写数据的程序框图

3.3显示电路的设计

显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为上下午,十时,时,十分,分显示,显示时采用串行口输出控制数码管,其中P2.2~P2.4口控制数码管的位选,低电平数码管显示,动态扫描显示中单片机P0口输出数码管的段码。

3.4键盘接口的设计

图3.4 键盘电路

本次设计的控制电路是由4个按键组成的,用以实现时钟信息的调整。其电路图如图3.4所示,按键与P1口的P1.0到P1.3相连。由于P1口内有上拉电阻,所以该图中上拉电阻可以省去。四个按键中,S1为数据+1键,S2为数据-1键,S3为数据选择键,S4为强制打铃或者强制关闭键。

3.5打铃电路的设计

本次设计打铃电路如图3.5所示,单片机通过P3.7控制蜂鸣器是否发出声响。当时间与预定打铃时间相同时,单片机通过P3.7输出为1KHz的方波,使得蜂鸣器发出声响。图中PNP三极管作用是电流放大,以保证蜂鸣器能正常发出声音。

图3.5 打铃电路

四、系统软件设计

4.1程序流程图

主程序流程图

定时中断程序流程图

显示程序流程图

4.2主程序设计

void main()

{

uchar NowKey;

uchar BeforKey=0xff;

uchar KeyCount=0;

uchar i=0;

AlarmSingal=0;

RayFlag=1;

RayFlag2=1;

TMOD=0x10;//设置T1

EA=1;

ET1=1;

TH1=0x3c;

TL1=0xb0;

TR1=1;

while(1)

{

D_Scan(TimeData,0);//动态扫描

//按键控制

if(KeyCount==2)

{

KeyCount=0;

NowKey=GetKey();

if(NowKey!=BeforKey)

{

switch (NowKey)

{

case 1:

TimeSet();

break;

case 2:

AlarmSingal=0;

break;

default:

break;

}

}

BeforKey=NowKey;

}

else KeyCount++;

}

}

4.3显示子程序的设计

void D_Scan(uchar *ShowAddress,uchar FlagBit)

{

uchar ShowBit;

uchar Show;

for(ShowBit=0;ShowBit<5;ShowBit++)

{

if(FlagBit!=5)

{

switch(ShowBit)

{

case 0:Show=BCD_to_Text((*ShowAddress)%10);break;

case 1:Show=BCD_to_Text((*ShowAddress)/10);break;

case 2:Show=BCD_to_Text((*(ShowAddress+1))%10);break;

case 3:Show=BCD_to_Text((*(ShowAddress+1))/10);break;

case 4:Show=BCD_to_Text((*(ShowAddress+2))%10);break;

}

}

P2=0xff;

switch(FlagBit)

{

case 0:P0=Show;break;

case 1://设分闪动

if(RayFlag2 && (ShowBit==0||ShowBit==1))P0=0x40;

else P0=Show;

break;

case 2://设时闪动

if(RayFlag2 && (ShowBit==2||ShowBit==3))P0=0x40;

else P0=Show;

break;

case 3://设上下午闪动

if(RayFlag2 && ShowBit==4)P0=0x40;

else P0=Show;

break;

}

P2=GetClockBit(ShowBit);

Delay(1);

}

}

五、调试及性能分析

5.1调试步骤

进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。看来对程序的调试能力我还需要加强,程序的调试需要耐心,而且需要熟练掌握软件的跟部分功能。

5.2性能分析

自动打铃系统在学校很工厂和日常生活中应用广泛,原理主要是通过单片机的计数器进行计时,同时通过定时器中断扫描定时时间点来判断是否到了打铃时间,到了打铃,同时可以手动灭铃,主要功能即计时和打铃,相当于闹钟,通过计时器DS1302的使用使电路在断电后依然有后备电源进行计数,设计很人性化。还可以通过按键来设置时间,如果想深入设计,也可以通过键盘来设置闹钟时间,使系统更加方便。

六、心得体会

本系统被子广泛用企事业单位,设计比较简单。经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技巧。经过这次的课程设计,使我学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计步骤,知道这门课程在工作中的重要性,因为需要大量的资料,所以我和我的合作者到图书馆查阅了大量的资料,也利用了互联网查找大量的资料,经过一番努力,第一周我们完成了电路图的设计,第二周我们领取了所需的元器件,开始了电路的装调,经过几天的努力,终于把电路装好了,但电路调试过程并不是那么的容易,但经过调试我们发现了电路的一些问题,但在老师和同学们的同共努力下都得到解决,最终看到了成果.我感谢老师,课程设计加深了学生对所学课程理论的理解,扩展了教学中的实验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计的大致过程,进而能顺利进入毕业设计,提高毕业设计质量和学生实际应用能力。

参考文献

〔1〕严仲兴,王熔熔:《单片机原理与应用》,中国计划出版社,2001 .7 〔2〕江力:《单片机原理与应用技术》,清华大学出版社,2006.5

〔3〕徐爱钧,彭秀华:《单片机高级语言C51windows环境编程与应用》,北京电子工业出版社,2001.7

〔4〕求是科技:《单片机典型模块设计实例导航》,北京人民邮电出版社,2004.5 〔5〕康华光:《电子技术基础:模拟部分》,北京高等教育出版社,1999.6 〔6〕江太辉:《MCS-51系列单片机原理与应用》.广州:华南理工大学出版社,2004.6

(7)刘海宽单片机实验与实践教程东南大学出版社 2009年1月出版

(8)杨易德模拟电路重庆大学出版社 2006年10月出版

(9)廖先芸电子技术实践与训练高等教育出版社 2005年6月出版

(10)郭勇 EDA技术基础机械工业出版社 2009年1月出版

附录1 系统硬件电路图

附录2 程序清单

#include

#define uint unsigned int

#define uchar unsigned char

uchar TimeData[]={0,0,0};//时钟数据

uchar sec;//秒

uchar i;

uchar counter=0; //时钟变量

uchar RayFlag1=0;//秒闪标志1

sbit RayFlag=P3^3;//秒闪

sbit RayFlag2=P3^2;//秒闪标志2

sbit AlarmSingal=P3^7;//闹铃信号

uchar code BellData[]={

0,0,0,0,0,0,0,0,0,1

};//上下午标志

uchar code BellDataH[]={

6,7,8,8,9,9,10,10,11,10

};//时

uchar code BellDataL[]={

0,30,20,30,20,40,30,40,30,30

};//分

uchar BCD_to_Text(uchar Data);

uchar GetClockBit(uchar ShowBit);

void Delay(uint count);

void D_Scan(uchar *ShowAddress,uchar FlagBit);

uchar GetKey();

void TimeSet();

//----------------------主程序----------------------------------------------- void main()

{

uchar NowKey;

uchar BeforKey=0xff;

uchar KeyCount=0;

uchar i=0;

AlarmSingal=0;

RayFlag=1;

RayFlag2=1;

TMOD=0x10;//设置T1

EA=1;

ET1=1;

TH1=0x3c;

TL1=0xb0;

TR1=1;

while(1)

{

D_Scan(TimeData,0);//动态扫描

//按键控制

if(KeyCount==2)

{

KeyCount=0;

NowKey=GetKey();

if(NowKey!=BeforKey)

{

switch (NowKey)

{

case 1:

TimeSet();

break;

case 2:

AlarmSingal=0;

break;

default:

break;

}

}

BeforKey=NowKey;

}

else KeyCount++;

}

}

//---------------------DS1302------------------------------- #ifndef _DS1302_H_

#define _DS1302_H_

#define Time_12_Hour 0x00 //24时制控制

#define Time_Start 0x00 //开始走时

#define Time_Stop 0x80 //停止走时

#define DS1302_SECOND 0x80 //DS1302各寄存器操作命令定义

#define DS1302_MINUTE 0x82

#define DS1302_HOUR 0x84

#define DS1302_WEEK 0x8A

#define DS1302_DAY 0x86

#define DS1302_MONTH 0x88

#define DS1302_YEAR 0x8C

#define DS1302_WRITE 0x8E

#define DS1302_POWER 0x90

#define BCD2DEC(X) (((X&0x70)>>4)*10 + (X&0x0F)) //用于将BCD码转成十进制的宏

#define DEC2BCD(X) ((X/10)<<4 | (X%10)) //用于将十进制转成BCD码的宏

sbit DS1302_CLK = P1^5; //实时时钟时钟线引脚

sbit DS1302_IO = P1^6; //实时时钟数据线引脚

sbit DS1302_RST = P1^4; //实时时钟复位线引脚

sbit ACC0 = ACC^0;

sbit ACC7 = ACC^7;

typedef struct __SYSTEMTIME__ //定义的时间类型结构体,全部数为十进制

{

unsigned char Second;

unsigned char Minute;

unsigned char Hour;

unsigned char Week;

unsigned char Day;

unsigned char Month;

unsigned char Year;

}SYSTEMTIME;

//实时时钟写入一字节(内部函数)

void DS1302InputByte(unsigned char d)

{

unsigned char i;

ACC = d;

for(i=8; i>0; i--)

{

DS1302_IO = ACC0; //相当于汇编中的RRC

DS1302_CLK = 1;

DS1302_CLK = 0;

ACC = ACC >> 1;

}

}

//实时时钟读取一字节(内部函数)

unsigned char DS1302OutputByte(void)

{

unsigned char i;

for(i=8; i>0; i--)

{

ACC = ACC >>1; //相当于汇编中的RRC

ACC7 = DS1302_IO;

DS1302_CLK = 1;

DS1302_CLK = 0;

}

return(ACC);

}

//写DS1302,ucAddr: DS1302地址, ucData: 要写的数据

void Write1302(unsigned char ucAddr, unsigned char ucDa)

{

DS1302_RST = 0;

DS1302_CLK = 0;

DS1302_RST = 1;

DS1302InputByte(ucAddr); // 地址,命令

DS1302InputByte(ucDa); // 写1Byte数据

DS1302_CLK = 1;

DS1302_RST = 0;

}

//读取DS1302某地址的数据

unsigned char Read1302(unsigned char ucAddr)

{

unsigned char ucData;

DS1302_RST = 0;

DS1302_CLK = 0;

DS1302_RST = 1;

DS1302InputByte(ucAddr|0x01); // 地址,命令

ucData = DS1302OutputByte(); // 读1Byte数据

DS1302_CLK = 1;

DS1302_RST = 0;

return(ucData);

}

//读取时间函数

void DS1302_GetTime(SYSTEMTIME *Time)

{

unsigned char ReadValue;

ReadValue = Read1302(DS1302_SECOND);

Time->Second = BCD2DEC(ReadValue&0x7F);

ReadValue = Read1302(DS1302_MINUTE);

Time->Minute = BCD2DEC(ReadValue);

ReadValue = Read1302(DS1302_HOUR);

Time->Hour = BCD2DEC(ReadValue&0x7F);

ReadValue = Read1302(DS1302_DAY);

Time->Day = BCD2DEC(ReadValue);

ReadValue = Read1302(DS1302_WEEK);

Time->Week = BCD2DEC(ReadValue);

ReadValue = BCD2DEC(DS1302_MONTH);

Time->Month = BCD2DEC(ReadValue);

ReadValue = Read1302(DS1302_YEAR);

Time->Year = BCD2DEC(ReadValue);

}

//设置时间函数

void DS1302_SetTime(SYSTEMTIME *Time)

{

Write1302(DS1302_WRITE,0x00); //关闭写保护

Write1302(DS1302_YEAR,DEC2BCD(Time->Year));

Write1302(DS1302_MONTH,DEC2BCD(Time->Month));

Write1302(DS1302_WEEK,DEC2BCD(Time->Week));

Write1302(DS1302_DAY,DEC2BCD(Time->Day));

Write1302(DS1302_HOUR,DEC2BCD(Time->Hour)|Time_12_Hour);

Write1302(DS1302_MINUTE,DEC2BCD(Time->Minute));

Write1302(DS1302_SECOND,DEC2BCD(Time->Second)|Time_Start);

Write1302(DS1302_WRITE,0x80); //打开写保护

}

//初始化DS1302

void DS1302_Initial(void)

{

Write1302(DS1302_WRITE,0x00); //关闭写保护

Write1302(DS1302_SECOND,Time_Stop);//停止计时

Write1302(DS1302_HOUR,Time_12_Hour);//24时制

Write1302(DS1302_POWER,0xA6); //单二极管,4K电阻充电

Write1302(DS1302_WRITE,0x80); //打开写保护

}

基于51单片机系统设计

基于51单片机的多路温度采集控制系统设计 言: 随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。 本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。 我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。 关键词:温度多路温度采集驱动电路 正文: 1、温度控制器电路设计 本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。温度继续下降,当温度降到下限温度值时,p1.0信号停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。当外设电路停止工作后,温度开始上升,接着进行下一工作周期。 2、温度控制器程序设计 本软件系统有1个主程序,6个子程序组成。6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON 及数码管显示子程序DISP。 (1)主程序 主程序进行系统初始化操作,主要是进行定时/计数器的初始化。 (2)定时/计数器0中断服务程序 应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于ADC0809和51单片机的多路数据采集系统设计

基于ADC0809和51单片机的多路数据采集系统设计 “数据采集”是指将温度、压力、流量、位移等模拟物理量采集并转换成数字量后,再由计算机进行存储、处理、显示和打印的过程,相应的系统称为数据采集系统。本文的主要任务是对0~5V的直流电压进行测量并送到远端的PC机上进行显示。由于采集的是直流信号,对于缓慢变化的信号不必加采样保持电路,因此选用市面上比较常见的逐次逼近型ADC0809芯片,该芯片转换速度快,价格低廉,可以直接将直流电压转换为计算机可以处理的数字量。同时选用低功耗的LCD显示器件来满足其在终端显示采集结果的需求。终端键盘控制采用尽可能少的键来实现控制功能,为了防止键盘不用时的误操作,设计时还设置了锁键功能,在键盘的输入消抖方面,则采用软件消抖方法来降低硬件开销,提高系统的抗干扰能力。软件设计方面则采用功能模块化的设计思想;键盘模数转换等采用中断方式来实现,从而大大提高了单片机的效率以及实时处理能力。1 数据采集系统的硬件结构数据采集系统的硬件结构一般由信号调理电路、多路切换电路、采样保持电路、A/D转换器以及单片机等组成。本文主要完成功能的系统硬件框图。 2 ADC0809模数转换器简介2.1 ADC0809的结构功能本数据采集系统采用计算机作为处理器。电子计算机所处理和传输的都是不连续的数字信号,而实际中遇到的大都是连续变化的模拟量,模拟量经传感器转换成电信号后,需要模/数转换将其变成数字信号才可以输入到数字系统中进行处理和控制,因此,把模拟量转换成数字量输出的接口电路,即A/D转换器就是现实信号转换的桥梁。目前,世界上有多种类型的A/D转换器,如并行比较型、逐次逼近型、积分型等。本文采用逐次逼近型A/D转换器,该类A/D转换器转换精度高,速度快,价格适中,是目前种类最多,应用最广的A/D转换器。逐次逼近型A/D转换器一般由比较器、D/A转换器、寄存器、时钟发生器以及控制逻辑电路组成。 ADC0809就是一种CMOS单片逐次逼近式A/D转换器,其内部结构。该芯片由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力。该器件既可与各种微处理器相连,也可单独工作。其输入输出与TTL兼容。 ADC0809是8路8位A/D转换器(即分辨率8位),具有转换起停控制端,转换时间为100μs采用单+5V电源供电,模拟输入电压范围为0~+5V,且不需零点和满刻度校准,工作温度范围为-40~+85℃功耗可抵达约15mW。 ADC0809芯片有28条引脚,采用双列直插式封装,图3所示是其引脚排列图。各引脚的功能如下: IN0~IN7:8路模拟量输入端; D0~D7:8位数字量输出端; ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路; ALE:地址锁存允许信号,输入,高电平有效; START:A/D转换启动信号,输入,高电平有效; EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平); OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平才能打开输出三态门,输出为数字量; CLK:时钟脉冲输入端。要求时钟频率不高640kHz; REF(+)、REF(-):基准电压; Vcc:电源,单一+5V; GND:地。 ADC0809工作时,首先输入3位地址,并使ALE为1,以将地址存入地址锁存器中。此地址经译码可选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位;下降沿则启动A/D转换,之后,EOC 输出信号变低,以指示转换正在进行,直到A/D转换完成,EOC变为高电平,指示A/D转换结束,并将结果数据存入锁存器,这个信号也可用作中断申请。当OE输入高电平时,ADC

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

单片机和蓝牙模块无线传输的数据采集系统

单片机和蓝牙模块无线传输的数据采集系统

1.引言 蓝牙技术是近年来发展迅速的短距离无线通信技术,可以用来替代数字设备间短距离的有线电缆连接。利用蓝牙技术构建数据采集无线传输模块,与传统的电线或红外方式传输测控数据相比,在测控领域应用篮牙技术的优点主要有[1][2][3]: 1.采集测控现场数据遇到大量的电磁干扰,而蓝牙系统因采用了跳频扩频技术,故可以有效地提高数据传输的安全性和抗干扰能力。 2.无须铺设线缆,降低了环境改造成本,方便了数据采集人员的工作。 3.可以从各个角度进行测控数据的传输,可以实现多个测控仪器设备间的连网,便于进行集中监测与控制。 2.系统结构原理 本课题以单片机和蓝牙模块ROK 101 008为主,设计了基于蓝牙无线传输的数据采集系统,整个装置由前端数据采集、传送部分以及末端的数据接受部分组成(如PC机)。前端数据采集部分由位于现场的传感器、信号放 大电路、A/D转换器、单片机、存储器、串口通信等构成,传送部分主要利用自带微带天线的蓝牙模块进行数据的无线传输;末端通过蓝牙模块、串口通信传输将数据送到上位PC机进一步处理。整个系统结构框架图如图1所示。 AT89C51单片机作为下位机主机,传感器获得的信号经过放大后送入12位A/D转换器AD574A进行A/D 转换,然后将转换后的数据存储到RAM芯片6264中。下位机可以主动地或者在接收上位机通过蓝牙模块发送的传送数据指令后,将6264中存储的数据按照HCI-RS232传输协议进行数据定义, 通过MAX3232进行电平转换后送至蓝牙模块,由篮牙模块将数据传送到空间,同时上位机的蓝牙模块对此数据进行接收,再通过MAX3232电平转换后传送至PC 机,从而完成蓝牙无线数据的交换。

基于51单片机的温度控制系统的设计

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

单片机数据采集系统

课程设计报告书 课程名称:单片机原理及应用 __________ 课题名称:单片机数据采集系统 ___________ 专业:___________________ 班级:_______________________ 学号:___________________ 姓名:_______________________ 成绩:___________________________________

2010年6月13 日 设计任务书 一、设计任务 1 一秒钟采集一次。 2把INO 口采集的电压值放入30H单元中 3做出原理图。 4画出流程图并写出所要运行的程序。 二、设计方案及工作原理 方案: 1.米用8051和ADC0809勾成个8通道数据米集系统。 2.能够顺序采集各个通道的信号。 3.米集信号的动态范围:0?5V。 4.每个通道的采样速率:100 SPS。 5.在面包板上完成电路,将采样数据送入单片机20h? 27h 存储单元。 6.编写相应的单片机采集程序,到达规定的性能。 工作原理: 通过一个A/D 转换器循环采样模拟电压,每隔一定时间去采样

一次,一次按顺序采样信号。A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。

第一章系统设计要求和解决方案第一章硬件系统 第二章软件系统 第四章实现的功能 第五章缺点及可能的解决方法第六章心得体会 附录参考文献 附录二硬件原理图 附录三程序流程图

第一章系统设计要求和解决方案 根据系统基本要求,将本系统划分为如下几个部分: 信号调理电路 8路模拟信号的产生与A/D转换器 发送端的数据采集与传输控制器 人机通道的接口电路 数据传输接口电路 数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D, 单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。系统框图如 图1-1所示 被测电压为0?5V直流电压,可通过电位器调节产生' 1.1.1信号采集 多路数据采集系统多采用共享数据采集通道的结构形式数据采集方式选择程序控制数据采集。 程序控制数据采集,由硬件和软件两部分组成。,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。如图1-3所示。 程序控制数据采集的采样通道地 址可随意选择,控制多路传输门开启 的通道地址码由存储器中读出的指令 确定。即改变存储器中的指令内容便 可改变通道地址。 由于顺序控制数据采集方式缺乏 通用性和灵活性,所以本设计中选用程 序控制数据采集方 采集多路模拟信号时,一般用多 路模拟开关巡回检测的方式,即一种数据采集的方式。利用多路开关(MUX )让多个被测对象共用同一个采集通道,这就是多通道数据采集系统的实质。当采集高速信号时,

基于51单片机最小系统设计

基础强化训练任务书 学生姓名:董勇涛专业班级:电子0902 指导教师:洪建勋工作单位:信息工程学院 题目:基于51单片机最小系统设计 一、训练目的 主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。 二、训练内容和要求 1、基础课程和基本技能强化训练 (1)设计一个基于51单片机最小系统电路; (2)对所设计电路的基本原理进行分析; 2、文献检索与利用、论文撰写规范强化训练 要求学生掌握基本的文献检索方法,科学查找和利用文献资料,同时要求学生获得正确地撰写论文的基本能力,其中包括基本格式、基本排版技巧和文献参考资料的写法、公式编排、图表规范制作、中英文摘要的写法等训练。 3、基本动手能力和知识应用能力强化训练 (1)学习PROTEL软件; (2)绘制电路的原理图和PCB版图,要求图纸绘制清晰、布线合理、符合绘图规范; 4、查阅至少5篇参考文献,按《武汉理工大学课程设计工作规范》要求撰写基础强化训练报告书,全文用A4纸打印。 三、初始条件 计算机;Microsoft Office Word 软件;PROTEL软件 四、时间安排 1、20011年7 月 11日集中,作基础强化训练具体实施计划与报告格式要求的说明; 学生查阅相关资料,学习电路的工作原理。 2、2011年7 月 12日,电路设计与分析。 3、2011年7 月 13日至2010年7 月 14日,相关电路原理图和PCB版图的绘制。 4、2011年7 月15日上交基础强化训练成果及报告,进行答辩。 指导教师签名:年月日系主任(或责任教师)签名:年月日 目录 摘要.................................................................................................................... 错误!未定义书签。

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

基于51单片机的高速数据采集系统

图6.1 程序流程图6.2 源程序 /*ADC0809.C*/ #include #include #define uchar unsigned char //定义数码管位码端口 sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; //定义ADC0808端口

sbit OE=P3^0; sbit EOC=P3^1; sbit ST=P3^2; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; //带小数点的0-5的段码 uchar leddata_dot[]={0x40,0x79,0x24,0x30,0x19,0x12}; uchar leddata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳极0-9段码 //uchar leddata[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴极0-9 //延时子程序 void delay(uchar n) { uchar i,j; for(i=0;i

基于51单片机的交通控制系统模拟设计

基于51单片机的交通控制系统模拟设计 学院:电气与控制工程学院 专业:自动化 姓名:

目录 1. 设计思路 (2) 2.2显示界面方案 (2) 2.3输入方案: (2) 3 单片机交通控制系统总体设计 (2) 3.1单片机交通控制系统的通行方案设计 (2) 3.2单片机交通控制系统的功能要求 (3) 3.3单片机交通控制系统的基本构成及原理 (3) 4智能交通灯控制系统的硬件设计 (4) 4.1系统硬件总电路构成及原理 (4) 4.2系统硬件电路构成 (4) 4.3系统工作原理 (4) 5 系统软件程序的设计 (6) 5.1程序主体设计流程 (6) 参考文献 (17) 设计心得体会 (18) 附录 (19) 基于单片机的交通控制系统模拟设计

1. 设计思路 (1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。 (2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,基于实际情况,又增加了紧急状况处理和通行时间可调这两项特特殊功能。 (3)进行显示电路,灯状态电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。 (4)进行软件系统的设计,对于本系统,采用单片机C语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。 2.单片机交通控制系统方案的比较、设计与论证 2.1 电源提供方案 采用单片机控制模块提供电源。改方案的优点是系统简明扼要, 节约成本;缺点是输出功率不高。 2.2 显示界面方案 采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。 2.3 输入方案: 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。 3 单片机交通控制系统总体设计 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下所示。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始。 通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下: ◆南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向禁止通行,南北向允许通行。 ◆南北方向绿灯灭,东西方向红灯灭,同时黄灯亮,倒计时3秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

毕业设计(论文)-基于AT89S51单片机的教室灯光智能控制系统设计

摘要 摘要 本课题针对教室灯光的控制,分析了教室灯光智能控制的原理和实现方法,提出了基于单片机设计教室灯光智能控制系统的思路,并在此基础上开发了智能控制系统的硬件模块和相应软件部分。 该系统以AT89S51单片机作为控制模块的核心部件,采用热释红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;根据教室合理开灯的条件,通过对人体存在信号和环境光信号的识别与判断,完成对教室灯光的智能控制,避免了教室用电的大量浪费。系统还具有报警功能;同时还采用了软/硬件的“看门狗”等抗干扰措施。 本系统程序部分采用C语言编写,采用模块化结构设计、条理清晰、通用性好,便于改进和扩充。该系统具有体积小,控制方便,可靠性高,针对性强,性价比高等优点,可以满足各类院校对教室灯光控制的要求,很大程度的达到节能目的。 关键词:智能控制器热释红外传感器单片机 1

引言 引言 当前,随着经济的飞速发展,能源短缺问题日益突出,成为一个国家经济发展的“瓶颈”。作为工业生产和人民生活不可或缺的电力能源更是如此。尤其现今越来越提倡低碳生活,节约能源已经成为一种全球共识,而作为培养社会精英的高校更应该起到榜样的作用。但是目前在校园内,教室灯火通明,却空无一人的现象屡见不鲜,这不仅造成了严重的资源浪费,也对高校的形象造成了很坏的影响。本文所研究的教室灯光控制系统就可以很好地实现节约能源的作用。 1 系统硬件组成 整个系统由中央控制电路、2×4按键电路、光敏传感电路、继电器驱动电路、时钟电路、液晶显示电路六个模块组成。其中,光敏传感电路模块主要完成对教室当前光线明暗程度的判定,时钟电路主要实现时基功能,两者分别提供光照和定时数据供以单片机为核心的中央控制模块进行逻辑判断,单片机最终将运算结果输出到液晶显示屏,同时对教室灯光进行控制。整个系统的硬件框图如图1所示。 1.1 中央控制模块 系统中,中央控制器主要用于接收两个外部数据,由此判断是否定时时间已到,教室光照是否充足。控制器根据这两个外部数据来进行逻辑运算,从而实现定时开关灯、刷新液晶显示屏,同时可以通过键盘设置时间日期、查看相关信息 根据系统设计要求,控制器选择了宏晶科技公司提供的STCl2C4052AD型单片机。该款是一种高速、高可靠性单片机,工作电压5.5~3.4V,Flash程序存储器4K字节,SRAM 为256字节,2个定时器,8路8位A/D转换器,可通过串口实现在线编程、A/D转换、看门狗等功能。 1.2 液晶显示电路 为了实现较好的人机交互界面,在本系统中采用1602液晶显示屏来显示用户的设定作息时间及用户所查询的信息。 点阵字符型液晶显示器是专门用于显示数字、字母、图形符号及少量自定义符号的显示器。这类显示器把LCD控制器/点阵驱动器/字符存贮器全做在一块印刷板上。系统选用日立公司的HD44780液晶显示。HD44780具有简单而功能较强的指令集,可实现字符移动/闪烁等功能。与MCU的传输可采用8位并行传输或4位并行传输2种方式。液晶显示电路如图2所示。 2

(完整版)基于51单片机的4人抢答器课程设计

基于51单片机的4人抢答器设计 设计要求: 以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。 设置一个系统清除和抢答控制开关S,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 工作原理: 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

#include #define uchar unsigned char #define uint unsigned int uchar num; //定义中断变量,num计满20表示1秒时间到uchar num1; //十秒倒计时显示初始值 uchar flag1,flag2; //清零键及开始键按下标志位 uchar flag3,flag4=0; //定义键盘按下标志位 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; //数码管编码

51单片机数据采集系统[1]

课程设计报告书 设计任务书 一、设计任务 1一秒钟采集一次。 2把INO口采集的电压值放入30H单元中。 3做出原理图。 4画出流程图并写出所要运行的程序。 二、设计方案及工作原理 方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。 2. 能够顺序采集各个通道的信号。

3. 采集信号的动态范围:0~5V。 4. 每个通道的采样速率:100 SPS。 5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。 6.编写相应的单片机采集程序,到达规定的性能。 工作原理: 通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。 目录 第一章系统设计要求和解决方案 第二章硬件系统 第三章软件系统 第四章实现的功能 第五章缺点及可能的解决方法 第六章心得体会

附录一参考文献 附录二硬件原理图 附录三程序流程图 第一章系统设计要求和解决方案 根据系统基本要求,将本系统划分为如下几个部分: 信号调理电路 8路模拟信号的产生与A/D转换器 发送端的数据采集与传输控制器 人机通道的接口电路 数据传输接口电路 数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。系统框图如图1-1所示

信号采集分析 被测电压为0~5V 直流电压,可通过电位器调节产生。 信号采集 多路数据采集系统多采用共享数据采集通道的结构形式。 数据采集方式选择程序控制数据采集。 程序控制数据采集,由硬件和软件两部分组成。,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。如图1-3所示。 程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。即改变存储器中的指令内容便可改变通道地址。 由于顺序控制数据采集方式 缺乏通用性和灵活性,所以本设计中选用程序控制数据采集方式。 采集多路模拟信号时,一般用多路模拟开关巡回检测的方式,即一种数据采集的方式。利用多路开关(MUX )让多个被测对象共用同一个采集通道,这就是 图1-3 程序控制数据采集原理 图1-1 一般系统框图

相关主题
文本预览
相关文档 最新文档