51单片机课程设计(DS1302时钟、18B20温度计)

51单片机课程设计(DS1302时钟、18B20温度计)
51单片机课程设计(DS1302时钟、18B20温度计)

摘要:

该设计实现了24小时制的时间显示及设定、年月日星期的显示及设定、闹钟的设定、温度的检测及显示等功能。设计共分为四大部分,分别是控制部分、时钟部分、温度检测部分和人机交互部分。以单片机

(AT89C51)组成的最小系统为整个设计的控制核心,单片机通过对时钟芯片(DS1302)的控制完成时钟的功能,通过对温度传感器(18B20)的控制完成温度检测的功能,最后通过对数码管、蜂鸣器及按键的控制完成时间和温度的显示以及调整时间、设定闹钟等功能。

关键词:电子钟;温度计;单片机

目录

摘要: (1)

第一章设计任务 (3)

第二章电路设计 (3)

2.1电路方案的比较 (3)

2.2根据设计绘制框图及原理图 (5)

第三章工作原理 (7)

3.1 单片机的工作原理 (7)

3.2 DS18B20的工作原理 (8)

3.3DS1302的工作原理 (10)

3.4数码管的工作原理 (12)

第四章调试与验证 (12)

4.1程序调试 (12)

4.2仿真验证 (15)

参考文献 (15)

附录 (16)

附录一使用说明 (16)

附录二元件清单 (16)

附录三 pcb版图 (17)

附录四程序清单 (18)

第一章设计任务

1、基本要求

(1)能够实现时间的正确显示,并且可以对表进行调整。

(2)能够实现年月日及星期的显示,并且可以对日期进行调整。

(3)能够实现对温度的及时检测,并且可以正确显示。

(4)用protel99se绘制设计的原理图,并生成PCB图。

(5)用protues实现对设计的仿真。

2、提高要求

(1)能够实现闹铃的设定。

(2)为了使显示画面更美观,信息量更大,尝试使用液晶显示器(1602或12864)对时间和温度进行显示。

(3)将硬件实物做出来。

第二章电路设计

2.1电路方案的比较

1、时钟电路的设计

方案一:时钟电路可由555定时器组成,通过555定时器构成1Hz脉冲发生电路(如图2-1),然后将脉冲机输入单片机,经单片机计算生成时钟。脉冲信号从555的3号引脚输出,通过电阻和电容可以得到不同频率的脉冲。其计算方法为t pl=R2C2ln2;t ph=(R1+R2)C2ln2。

图2-1 555秒脉冲发生电路

方案二:用单片机控制专用时钟芯片DS1302(如图2-2),通过对时钟芯片的初始化设置、写数据、读数据等操作,实现对时钟信息的获取。、

图2-3 DS1302与单片机连接图

比较:两个方案虽然都能实现时钟的功能,但是方案一由于电阻电容及其自身的精度影响,其生成的秒脉冲精度相对差一些,且将秒脉冲信号换算成时钟的编程也相对复杂,而方案二能够较好地弥补方案一的不足。所以本设计中的时钟电路采用方案二的设计。

2、温度检测电路的设计

方案一:利用热敏电阻对温度特殊的温度效应,可以通过一个比较简单的电路将温度信号转换成相应的电压信号,为了使电压信号更便于精确测量,可以利用运放将电压信号放大,再经模数转换将电压信号送入单片机,最后通过单片机的计算得出温度值,送入数码管显示。

方案二:利用单片机对温度传感器DS18B20的控制,获取温度传感器所采集的温度信号(如图2-3)。

图2-3 DS18B20与单片机连接图

比较:方案一原理容易理解,但实际操作很有难度。不仅自己设计电路精度不能保证,而且外围电路复杂,成本也较高。而由图2-3可以直观看出方案二简单方便,且精度较高,所以本设计中的温度检测电路采用方案二。

2.2根据设计绘制框图及原理图

1、由本设计的任务要求可知,本设计中需要单片机与温度传感器和时钟芯片进行数据交互,需要输入部分(按键)和输出部分(数码管、闹铃)实现人机互动。如设计框图(图2-4)所示。

单片机AT89C52

按键控制

数码管显示

和闹铃提示

时钟芯片DS1302

温度传感器

18B20

图2-4 设计框图

2、再设计中,单片机需要外接晶振,需要复位电路等。为使数码管正常显示、蜂鸣器正常发声,需要加一定的放大电路。结合本设计的设计框图和电路方案的比较,可得完整原理图(如图2-5)。

图2-5 原理图

第三章工作原理

3.1 单片机的工作原理

1、单片机数据采集原理

单片机的数据采集主要是通过与时钟芯片和温度传感器的数据交互实现的,另外有按键信息需要采集。对于前者,单片机需要先向芯片中写入相应指令,然后写入地址或其他数据,以便最后再读取所需数据(具体见3.2和3.3的介绍)。对于后者只需要检测按键的高低电平即可,比较简单,在此不再赘述。

2、单片机控制数码管原理

该设计将数码管的a~g、dp端接至单片机的P0口,将数码管的共阳控制端接至单片机的P3.3、P2.4、P2.3、P2.2、P2.1、P2.0口。需要注意的是该设计中采用动态扫描的方式实现数码管的动态显示,其原理是通过P0口送入要显示的数据,然后让六个数码管依次闪亮,动态扫描,利用数码管余辉和人的视觉暂留实现显示。

图3-1 数码管与单片机连接图

3.2 DS18B20的工作原理

1、DS18B20简介

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。

2、DS18B20结构

DS18B20内部结构如图3-2所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列如图3-3所示,DQ为数字信号输入/输出端;GND 为电源地;VDD为外接供电电源输入端。

图3-2 DS18B20内部结构

图3-3 DS18B20引脚结构

3、DS18B20接口电路及时序

DS18B20与微处理器的典型连接有两种,一种是寄生电源方式,其VDD和GND端均接地;另一种是外接电源方式,VDD接外加电源。本设计中DS18B20采用外接电源方式,其VDD端用3V~5.5V电源供电。其接口典型电路如图3-4所示。

图3-4 DS18B20与控制器接口电路

DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。其初始化时序和读写指令时序图如图3-5所示。为了实现单片机对温度的准确采集,必须严格按照时序图先对传感器初始化,写入相应指令。具体程序见附录二。

图3-5 DS18B20时序

3.3DS1302的工作原理

1、DS1302简介

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。其内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是同类芯片DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

2、DS1302结构

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。DS1302的引脚功能图如图3-6。

图3-6 DS1302引脚图

3、DS1302接口电路及时序

DS1302与处理器的接口电路(图3-7)也是比较固定的,比较简单,但是需要在一号引脚处接一个去耦电阻,这样能够使时钟更准确。

图3-7 DS1302与控制器接口电路

需要注意的是,DS1302的时序比较复杂,共有四个时序,分别是读一个字节、写一个字节、从寄存器度数据、从寄存器写数据(如图3-8)。在编程的时候要尤为注意。否则该芯片无法正常工作。具体程序见附录二。

图3-8 DS1302时序

3.4数码管的工作原理

1 、

数码管引脚图及介绍

图3-9 数码管引脚图 2、 数码管显示原理

该系统采用的是一位公阳数码管,该设计采用三极管9013作为驱动管与控制管。基极通过接1K Ω的电阻接至数码管的公共端,发射极接数码管的七段二级管,集电极接5V 电源。其显示原理是当基极电压为低电平是,无论射极电阻是高电平还低电平,数码管均处于截止状态,而当基极电压为高电平时,则相应的数码管导通,此时通过设置射极电阻的电位就可以实现二极管的点亮与关闭,即射极电阻若为低电平则二极管导通,射极电阻接高电平,则二极管关闭。具体接线图见图3-1。

第四章 调试与验证

4.1程序调试

在设计过程总,程序加进单片机仿真后总是会出现DS1302工作不正常,仔细研究与DS1302工作有关的五个子程序(写字节、读字节、往寄

引脚编号

功能 1 e 2 d 3 com 4 c 5 dp 6 b 7 a 8 com 9 f 10

g

表3-1数码管引脚说明

存器写数据、从寄存器读数据、DS1302初始化程序),发现没有时序错误。后经查资料,发现将读写字节的程序有两种方式,虽然逻辑相同,但书写格式不同,于是我将以前的程序中的读写字节函数

void clock_out(unsigned char dd) //写一个字节

{

ACC=dd;

clock_clk=0; clock_dat=a0; clock_clk=1;

clock_clk=0; clock_dat=a1; clock_clk=1;

clock_clk=0; clock_dat=a2; clock_clk=1;

clock_clk=0; clock_dat=a3; clock_clk=1;

clock_clk=0; clock_dat=a4; clock_clk=1;

clock_clk=0; clock_dat=a5; clock_clk=1;

clock_clk=0; clock_dat=a6; clock_clk=1;

clock_clk=0; clock_dat=a7; clock_clk=1;

}

unsigned char clock_in(void) //读一个字节

{

clock_clk=1; clock_clk=0; a0=clock_dat;

clock_clk=1; clock_clk=0; a1=clock_dat;

clock_clk=1; clock_clk=0; a2=clock_dat;

clock_clk=1; clock_clk=0; a3=clock_dat;

clock_clk=1; clock_clk=0; a4=clock_dat;

clock_clk=1; clock_clk=0; a5=clock_dat;

clock_clk=1; clock_clk=0; a6=clock_dat;

clock_clk=1; clock_clk=0; a7=clock_dat;

return(ACC);

}

换成以下程序

void write_onechar(unsigned char dd)

{

unsigned char i;

unsigned char dat;

dat=dd;

for(i=0;i<8;i++)

{

clock_clk=0;

clock_dat=(dat&0x01);

clock_clk=1;

dat=dat>>1;

}

}

unsigned char read_onechar()

{

unsigned char i,dat;

for(i=0;i<8;i++)

{

clock_clk=1;

clock_clk=0;

dat=dat>>1;

if(clock_dat==1)

dat=dat|0x80;

}

return(dat);

}

重新进行仿真,发现时钟芯片终于能够正常显示了。但是又有一个新的问题:通过按键k1切换显示完一遍之后,时钟芯片又会出现问题,经检查电路发现时钟芯片的七号引脚和温度传感器的二号引脚都接在了单片机

P2.7引脚上,考虑到不同芯片工作时可能会有干扰,于是将温度传感器的二号引脚接在单片机P1.7上,对程序做相应改动后,重新实验,发现正常工作。

4.2仿真验证

本设计采用protues软件进行仿真,经过反复的调试最终仿真通过。可以实现预期的功能。部分功能演示如图4-1、图4-1所示。

图4-1 时间仿真

图4-2 温度仿真

参考文献

[1]张毅坤.单片微型计算机原理及应用.西安电子科技大学出版社.2008

[2]张立科. 单片机典型模块设计实例导航. 人民邮电出版社. 2005

[3]张立科. 单片机典型外围器件及应用实例. 人民邮电出版社. 2006

[4]戴佳、戴卫恒. 51单片机C语言应用程序设计实例精讲. 电子工业出版社.2006

附录

附录一使用说明

本设计通过调节K1来调节显示内容,依次是时分秒、年月日、周、温度;通过调节 K2来确定调时位数,依次是年、月、日、周、时、分、秒、正常显示;调节键K3为依次加;调节键K4为依次减;通过调节K5调节闹铃时间,依次是时、分、秒、正常显示;K6为人工停止闹铃工作。

附录二元件清单

元件名称元件数量

1位数码管 6

1kΩ电阻10

4.7kΩ电阻 6

按键 6

33p电容 4

104电容 2

100u电解电容 2

10u电解电容 1

9013三极管7

32768Hz晶振 1

12MHz晶振 1

蜂鸣器 1

二极管 1

DS18B20 1

DS1302 1

AT89C52 1

附录三 pcb版图

附录四程序清单

#include

sbit clock_clk=P2^7; //定义1302端口

sbit clock_dat=P2^6;

sbit clock_rst=P2^5;

sbit DQ = P1 ^ 7; //定义18B20端口DQ

sbit wei1=P2^0; //位选

sbit wei2=P2^1;

sbit wei3=P2^2;

sbit wei4=P2^3;

sbit wei5=P2^4;

sbit wei6=P3^3;

sbit K1=P1^0; //跳换显示

sbit K2=P1^1; //设置时间

sbit K3=P1^2; //加一

sbit K4=P1^3; //减一

sbit K5=P1^4; // 闹铃设定

sbit K6=P1^5; // 关闹铃

sbit beep=P3^7; //闹铃

sbit a0 = ACC ^ 0;//为了编程方便定义的位变量

sbit a1 = ACC ^ 1;

sbit a2 = ACC ^ 2;

sbit a3 = ACC ^ 3;

sbit a4 = ACC ^ 4;

sbit a5 = ACC ^ 5;

sbit a6 = ACC ^ 6;

sbit a7 = ACC ^ 7;

unsigned char choose=0;

unsigned char clock_flag=0;

unsigned char alarm_flag=0;

unsigned char min=0x00;

//1302 初值

unsigned char sec=0x00;

unsigned char hour=0x12;

unsigned char day=0x18;

unsigned char mon=0x08;

unsigned char year=0x10;

unsigned char week=0x03;

unsigned char hour_alarm=0; //闹铃初值

unsigned char min_alarm=0;

unsigned char sec_alarm=0;

unsigned char hour_clock=0;

//时钟值

unsigned char min_clock=0;

unsigned char sec_clock=0;

unsigned char year_clock=0;

unsigned char mon_clock=0;

unsigned char day_clock=0;

unsigned char week_clock=0;

unsigned char Tab_Num[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};//0-9数字unsigned char code Tab_Num2 [ ] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; //0-9带点数字

/////////////////////////////////////////////// /////////////////

void delay(int num)//延时函数

{

while(num--) ;

}

/************************* ****************1 8 B 2

0***************************** **************/

Init_18B20(void)//初始化

18B20

{

unsigned char x = 0;

DQ = 1; //DQ复位

delay(10); //稍做延时

DQ = 0; //单片机将DQ拉低

delay(80); //延时480us

DQ = 1; //拉高总线

delay(10);

x = DQ; //稍做延时后如果x=0则初始化成功 x=1则初始化失败

delay(20);

}

unsigned char ReadOneChar(void)//读一个字节{

unsigned char i;

unsigned char dat = 0;

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

{

DQ = 0; // 给脉冲信号

dat >>= 1;

DQ = 1; // 给脉冲信号

if(DQ)

dat |= 0x80;

delay(15);

}

return (dat);

}

void WriteOneChar(unsigned char dat)//写一个字节

{

unsigned char i = 0;

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

{

DQ = 0;

DQ = dat&0x01;

delay(5);

DQ = 1;

dat>>=1;

}

}

/************************* ********************1 3 0 2

****************************** ***************/

void write_onechar(unsigned char dd)

{

unsigned char i;

unsigned char dat;

dat=dd;

for(i=0;i<8;i++)

{

clock_clk=0;

clock_dat=(dat&0x01);

clock_clk=1;

dat=dat>>1;

}

}

unsigned char read_onechar()

{

unsigned char i,dat;

for(i=0;i<8;i++)

{

clock_clk=1;

clock_clk=0;

dat=dat>>1;

if(clock_dat==1)

dat=dat|0x80;

}

return(dat);

}

unsigned char

read_clock(unsigned char reg)

//从寄存器reg读数据

{

unsigned char dd=0;

clock_clk=0;

clock_rst=0;

clock_rst=1;

write_onechar(reg);

dd=read_onechar();

clock_rst=0;

clock_clk=1;

return(dd);

}

基于DS1302的数码管显示数字钟

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名: 指导教师: 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

51单片机作的电子钟程序及电路图

51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分,计算部分,时钟调整部分构成。 时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒,分钟加1,10秒位回0。依次类推,时钟最大的显示值为23小时59分59秒。这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。 开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。 6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。

以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 中断入口程序 ;; (仅供参考) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口

RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 主程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;clr P3.7 ; CLEARDISP: MOV @R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入"熄灭符"数据 MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值 MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值 SETB EA ;总中断开放 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器 MOV R4,#14H ;1秒定时用初值(50M S×20)START1: LCALL DISPLAY ;调用显示子程序 JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护

基于51系列单片机及DS1302时钟芯片的电子时钟Proteus仿真_报告

目录 摘要 一、引言 (1) 二、基于单片机的电子时钟硬件选择分析 (2) 2.1主要IC芯片选择 (2) 2.1.1微处理器选择 (2) 2.1.2 DS1302简介 (4) 2.1.3 DS1302引脚说明 (4) 2.2电子时钟硬件电路设计 (5) 2.2.1时钟电路设计 (6) 2.2.2整点报时功能 (7) 三、Protel软件画原理图 (8) 3.1系统工作流程图 (8) 3.2原理图 (9) 四、proteus软件仿真及调试 (9) 4.1电路板的仿真 (9) 4.2软件调试 (9) 五、源程序 (10) 六、课设心得 (13) 七、参考文献 (13)

基于单片机电子时钟设计 摘要 电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。 本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。 本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。本设计应用AT89C52芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。 该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。 关键词:电子时钟;多功能;AT89C52;时钟日历芯片

一、引言 时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要,同时也代表着科技的进步。致力于计时器的研究和充分发挥时钟的作用,将有着重要的意义。 1.1 多功能电子时钟研究的背景和意义 20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。平时我们要求上班准时,约会或召开会议必然要提及时间;火车要准点到达,航班要准点起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的[1]。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装臵,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、0按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

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

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

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

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

基于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提示。

51单片机DS1302日历时钟程序

51 单片机ds1302 时钟芯片 #define uint unsigned int #define uchar unsigned char sbit lcdrs = P1^0; sbit lcdrw = P1^1; sbit lcden = P1^2; sbit key0 = P2^0;//功能键,选择时分秒 sbit key1 = P2^1;//加1键 sbit key2 = P2^2;//减1键 sbit key4 = P2^4; sbit clk_1302 = P1^5; //1302芯片位定义sbit io_1302 = P1^6; sbit rst_1302 = P1^7; uchar bdata dat; sbit dat0 = dat^0; sbit dat7 = dat^7; uchar key0_count;//按键0被按的次数(0~3) uchar flag; char hour,minute,second; uchar table_date[] = "2009-4-12 Mon"; uchar table_time[] = "00:00:00"; /****** 函数申明********/ void write_cmd_1602(uchar cmd); void write_data_1602(uchar dat); void write_add(uchar add,uchar dat); void init1602(); void delay(uint z); uchar reverse(uchar c); void keyscan(); void init(); void RTC_initial (); void wr_1302(uchar wr_data); uchar rd_1302(void); uchar uc_R1302(uchar ucAddr); void v_W1302(uchar ucAddr, uchar ucDa); 主程序 #include

单片机课程设计题目..(DOC)

单片机课程设计题目 1 基于单片机的数字电压表设计 2 基于单片机的智能电压表设计(温度检测器) 3 基于单片机的智能船模设计 4 基于单片机的电梯控制模型设计 5 基于单片机的水位控制系统设计(STC89—51型) 6 基于单片机的多路数据采集系统设计 7 基于单片机的8路抢答器设计 9 基于单片机的数字温度计设计 10 基于单片机的智能小车设计 11 基于单片机的数字温度计设计 12 基于单片机的遥控器设计 13 基于单片机的串行通信发射机设计 14 基于单片机的简易智能电动车设计 15 基于单片机的太阳能热水器控制器设计 16 基于单片机的太阳能热水器控制器设计 17 MCS-51单片机温度控制系统的设计 18 直流电动机的转速检测与脉宽调速 19 基于单片机的智能机器人的设计 20 基于单片机的简易无线竞赛系统的设计 21 基于单片机的车辆闯红灯监控系统设计(89C51) 22 基于单片机控制的井下瓦斯监控系统设计 23 基于单片机的煤气泄漏检测报警装置设计 24 基于单片机的井式渗碳炉控制系统设计 25 基于单片机的蔬菜大棚温湿度智能控制系统设计 26 基于单片机的电子钟设计 27 基于单片机的电力线载波节电群控设计 28 基于单片机的液位控制器设计

29 基于单片机的串行通信发射机设计 30 基于单片机的智能八路抢答器设计 32 基于单片机的水位监控器设计(STC12C2052AD) 32 基于单片机的点阵电子显示屏设计 33 基于单片机的智能温度控制系统设计 34 基于单片机的智能时钟控制器设计 35 基于单片机的智能温控系统设计 36 基于单片机的智能寻迹避障小车设计 37 基于单片机的家用太阳能热水器控制器设计 38 基于单片机的新型抢答计分器设计 39 基于单片机的热敏电阻测温系统设计 40 基于单片机的林火监测系统-飞艇姿态控制系统设计 41 基于单片机的人性化时钟控制器设计 42 基于单片机的智能型电话远程遥控器设计 43 基于单片机的远程通讯控制器设计 45 基于单片机的智能水位控制器设计 46 基于单片机的水位控制系统设计 47 基于单片机的智能电动小车设计 48 基于单片机的数码电子时钟设计 49 -基于单片机的数控直流电源设计 50 基于单片机的交通灯控制器设计 51 基于单片机的数字温度计设计(STC89C51) 52 基于单片机的智能小车设计 53 基于单片机的温度控制器设计 54 基于单片机的串行通信发射机设计(版本3) 55 基于单片机的温度控制系统设计(版本1) 56 基于单片机的交通灯控制系统设计 D58-基于单片机的电子万年历设计 D59-基于单片机的水位控制器设计 D60-基于单片机的水位控制系统设计(版本2)

电子时钟设计(DS1302)基于51单片机

安康学院单片机课程设计报告书 课题名称:电子时钟的设计(DS1302) 姓名: 学号: 院系:电子与信息工程系 专业:电子信息工程 指导教师: 时间:2012年6月

课程设计项目成绩评定表设计项目成绩评定表

课程设计报告书目录 设计报告书目录 一、设计目的 (1) 二、设计思路 (1) 三、设计过程 (1) 3.1系统设计结构图 (1) 3.2 MCU微控制器电路 (2) 3.3 LCD液晶显示电路 (4) 3.4 实时时钟电路 (5) 3.5 复位电路 (5) 3.6 晶振电路 (6) 四、系统调试与结果 (6) 五、主要元器件与设备 (6) 六、课程设计体会 (7) 七、参考文献 (7)

一、设计目的 1、掌握电子时钟的基本工作方式。 2、进一步熟悉DS1302芯片的特性。 3、通过使用各基本指令,进一步熟练掌握单片机的编程和程序调试。 二、设计思路 利用AT89C52的特点及DS1302的特点,设计一种基于DS1302单片机控制,再利用数码管显示的数字钟。本系统硬件利用AT89S52作为CPU进行总体控制,通过DS1302时钟芯片获取准确详细的时间(年、月、日、周、日、时、分、秒准确时间),对时钟信号进行控制,同时利用液晶显示芯片LCD1602对时间进行准确显示年、月、日、周、日、时、分、秒。 三、设计过程 3.1系统设计结构图 图1系统设计结构图

图2 系统软件流程图 根据系统设计的要求和设计思路,确定该系统的系统设计结构图。如图1所示。硬件电路主要由MCU微处理控制器单元、DS1302时钟电路、储存器、复位电路、晶振电路、数码管显示模块构成。 3.2MCU微控制器电路 AT89S52作为系统的核心控制元件,只有它能正常工作后才能使其它的元件进入正常工作状态。因此,下面对AT89S52进行必要的说明,AT89S52的管脚如图3所示。

单片机课程设计题目

1.电子秒表设计:设计一个4位LED数码显示“秒表”,显示时间为00.00~99.99秒,每0.01 秒自动加一。另设计一个“开始”按键和一个“复位”按键。(2人) 2.简易4位(0—9999)计算器(+、-、*、/、四种运算)设计:设计一个能实现0-9整数 加法运算的计算器,利用LCD显示。键盘包括0-9及“+、-、*、/”和“=”及“清除” 16个按键。(除法应保留足够的的小数,满足共4位的显示)要有错误显示Err。(2人) 3.频率数显表:设计一个能实现对脉冲频率测量显示的电路。输入频率范围(0-10k),显 示为xxx.xx,用两个指示灯指示显示数字的单位,Hz和KHz两档,根据输入频率自动切换显示档。(脉冲信号是由外部信号发生器提供)(2人) 4.信号灯控制系统:南北线有红黄绿三只信号灯,东西线有红黄绿三只信号灯。 要求:(闪烁3次,每次亮灭时间各1s)时序要求如下(原始状态) 设计一个递增键和一个递减键,用于调节功能键选定的方向的绿灯时间,时间范围(10s-50s),每次以0.5S为增量。(2人) 5.简易电子时钟:用4位LED数码管分别显示小时数分钟和秒数,两个按键,一个为功能 键,用于切换显示界面(两个显示界面,一个是小时分钟,一个是秒数)长按此键3S 进入当前界面的参数修改界面。另一个按键用于参数修改(参数递增或递减),长按此键3s退参数修改,时间要求用单片机自带的定时器得到。(2人) 6.智能电子钟(LCD显示):以A T89C51单片机为核心,制作一个LCD显示的智能电子 钟:(1) 计时:秒、分、时、天、周、月、年。(2) 闰年自动判别。(3) 五路定时输出,可任意关断(最大可到16路)。(4) 时间、月、日交替显示。(5) 自定任意时刻自动开/关屏。(6) 计时精度:误差≤1秒/月(具有微调设置)。(7) 键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。采用时钟芯片DS1302进行制作 7.多路报警器设计。用AT89C51单片机设计报警系统,用16个开关模拟报警点,当有 开关闭合时,用P1.0产生方波信号驱动蜂鸣器作为报警信号,同时用2位数码管显示报警点(即是第几个开关)。(2人) 8.简易数字电压表设计。利用单片机AT89S51与AD设计一个数字电压表,能够测量0- 36V之间的直流电压值,用LCE显示(根据测量精度,自定显示的位数)。(2人) 9.波形发生器。三种信号:正弦波、方波、三角波。利用DA转换器设计一波形发生器,

51单片机课程设计源程序

TIME0_DOWN EQU F0 ;将F0设置为定时器0定时到标志 FINISH_ID EQU 30H ;学号发送标志 KEY_FLAG BIT 00H ;有键按下标志 KEY_LONG BIT 01H ;键长按 KEY_D EQU 31H ;键值存放地址 ADC0809_AD EQU 8000H ;设置ADC0809地址 DAC0832_AD EQU 0000H ;设置DAC0832地址 ADC_FLAG BIT 02H ;设置ADC0809读数据标志 ADC_DATE EQU 32H ;设置ADC0809数据地址 ADC_0 EQU 33H ;ADC0809转化为BCD码后个位存放地址 ADC_1 EQU 34H ;十分位存放地址 ADC_2 EQU 35H ;百分位存放地址 ADC_3 EQU 36H ;千分位存放地址 ORG 0000H ;程序开始,跳转至主程序 0000 020030 LJMP MAIN ORG 0003H ;外部中断0入口0003 020141 LJMP INT0_IN ORG 000BH ;设置定时器0中断入口地址 000B 020132 LJMP TIME0 ORG 0013H ;外部中断1入口0013 020151 LJMP INT1_IN ORG 0030H ;主程序开始地址 0030 758169 MAIN: MOV SP,#69H ;初始化堆栈指针 0033 C292 CLR P1.2 ;显示器清零 0035 D292 SETB P1.2 0037 753000 MOV FINISH_ID,#0 ;将标志位清零 003A C2D5 C LR TIME0_DOWN 003C C200 CLR KEY_FLAG 003E C201 CLR KEY_LONG 0040 753100 MOV KEY_D,#0 0043 C202 CLR ADC_FLAG 0045 753200 MOV ADC_DATE,#0 0048 753300 MOV ADC_0,#0 004B 753400 MOV ADC_1,#0 004E 753500 MOV ADC_2,#0 0051 753600 MOV ADC_3,#0 0054 C291 CLR P1.1 ;初始化键盘,行线置零,有键按下触发中断 0056 C293 CLR P1.3

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

基于单片机DS1302的时钟万年历(带闹钟)

#include #define uchar unsigned char #define uint unsigned int sbit lcdws=P2^1; //1602管脚定义 sbit lcden=P2^0; sbit lcdrs=P2^2; sbit key1=P2^3; //闹钟设置键 sbit key2=P2^4; sbit key3=P1^5;//功能键定义 sbit key4=P1^6;//增大键定义 sbit key5=P1^7;//减小键定义 uchar shi,fen,miao,ashi,afen,amiao,year,month,day,week; uchar s1num=0,s1num2=0,temp; bit flag; float f_temp; uint i,d; uchar code table2[]={0x20,0x20,0x2e,0x20,0xdf,0x43}; uchar code table[]="20 - - "; uchar code table1[]=" : : "; sbit ds=P1^0;//ds18b20信号线 sbit beep=P1^4; //蜂鸣器管脚定义 sbit ACC_7 = ACC^7; //位寻址寄存器定义 sbit SCLK = P1^2; // DS1302时钟信号sbit DIO= P1^1; // DS1302数据信号sbit CE = P1^3; //地址、数据发送子程序 //void delay2(uint ms) // { // uchar t; // while(ms--); for(t=0;t<120;t++); //} // void playmusic() // { // uint i2=0,j2,k2; // while(jiepai[i2]!=0||song[i2]!=0) // { // for(j2=0;j2

单片机课程设计题目11级1

题目1 电子时钟(LCD显示) 设计要求 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ●使用字符型LCD显示器显示当前时间。 ●显示格式为“时时:分分:秒秒”。 ●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引 脚上。 功能键K1~K4功能如下。 ●K1—进入设置现在的时间。 ●K2—设置小时。 ●K3—设置分钟。 ●K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。 题目2 基于数字温度传感器的数字温度计 设计要求 利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为?55℃~125℃,精确到0.5℃。所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。 题目3 十字路口交通灯控制 设计要求 设计一个十字路口交通灯控制器。用单片机控制LED模拟交通灯。东西

向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。 本项目为典型的LED显示和中断定时电路。利用定时器T0产生每10ms 一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,并显示相应的剩余时间。值得注意的是,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间。 题目4 节日彩灯控制器的设计 设计要求 以单片机为核心,设计一个LED显示的节日彩灯控制器,P1.2~P1.5引脚上接有4个按键,4个按键的各自的功能如下: ●P1.2—开始键,按此键则灯开始流动(由上而下)。 ●P1.3—停止键,按此键则停止流动,所有灯为暗。 ●P1.4—上,按此键则灯由上向下流动。 ●P1.5—下,按此键则灯由下向上流动。 本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,即可实现所要求的功能。 题目5 数字音乐盒的设计 设计要求 以单片机为核心,设计一个数字音乐盒: 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。采用LCD显示信息。开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。可通过功能键选择乐曲、暂停、播放。 题目6 单片机控制步进电机 设计要求

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

相关文档
最新文档