文档库 最新最全的文档下载
当前位置:文档库 › 光控数字温度时钟课程设计报告

光控数字温度时钟课程设计报告

光控数字温度时钟课程设计报告
光控数字温度时钟课程设计报告

序号:20

光电技术课程设计题目:光控数字温度时钟

学生王较军班级电子2011-2BF 学号物理与电子学院专业电子科学与技术指导老师梅孝安职称副教授

完成时间2015年6月12日

(湖南理工学院物理与电子学院)

整体设计思想

本次实验采用通用51单片机(AT89C51)。DS1302作为基本时钟,并带有蜂鸣器模块,实现报时闹铃功能。使用TLC1543芯片(10位串行A/D)作为温度光强采集模块。温度采集采用热敏电阻、光强采集采用光敏电阻。亮度控制采用D/A输出(DAC0808),采用LED数码管动态显示。出于方便、高效考虑,设置两个按钮一为功能键,一为加键。

系统硬件电路设计(

本设计硬件总设计图如图1所示。温度由热敏电阻采集经处理后转换为温度显示,光强每经过一段时间间隔由光敏电阻采集一次,转换为数字信号后通过DACO8O8芯片控制(D\A输出)达到调节LED数码管显示亮度的目的。

图1 设计总电路图

DS1302模块

DS1302模块以DS1302时钟芯片为主体构成,用于基本的时间显示。其硬件结构图如图2所示。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,,且具有闰年补偿等多种功能。DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM 寄存器。缺点是时钟精度不高,易受环境影响,出现时钟混乱。模块软件设计见设计报告系统程序设计部分。

图2 DS1302模块电路图

数码管及数码管驱动模块

(1)数码管模块如图3所示:

图3 数码管模块

在数码管显示上将第三个数码管反向安置,使得第二、第三个数码管的小数点位组成一对,实现时钟的秒显示功能。第三个数码管译码表:0xc0, 0xcf, 0xa4, 0x86, 0x8b, 0x92, 0x90, 0xc7, 0x80, 0x82, 0x70

(2)数码管驱动模块,如图4,图5所示:

图4 数码管驱动模块

图5 数码管驱动模块

其中,DAC0808用于实现亮度调节(D\A转换),

温度光强采集模块

模块结构如图6所示

图6 温度光强采集模块

采集温度用热明电阻,热敏电阻的主要特点是:①灵敏度较高,其电阻温度系数要比金属大10~100倍以上,能检测出10-6℃的温度变化;②工作温度范围宽,常温器件适用于-55℃~315℃,高温器件适用温度高于315℃(目前最高可达到2000℃),低温器件适用于-273℃~-55℃;③体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;④使用方便,电阻值可在0.1~100kΩ间任意选择;⑤易加工成复杂的形状,可大批量生产;⑥稳定性好、过载能力强。

采集光强使用光敏电阻,光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主要是金属的硫

化物、硒化物和碲化物等半导体。通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。入射光消失后,由光子激发产生的电子—空穴对将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到一定波长的光线照射时,电流就会随光强的增大而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。半导体的导电能力取决于半导体导带内载流子数目的多少。

蜂鸣器和按键模块

图7为蜂鸣器模块实现闹铃,整点报时功能。图8为按键模块,K1为加键用于调节数据的大小,K2为功能键用于实现不同功能的转换。

图7为蜂鸣器模块

图8 按键模块

系统软件设计

(1)主程序

(2)

(3)

#include

#include "shu_ma_guan.h"

#include "myds1302.h"

#include "key.h"

#include "naozhong.h"

#include "TLC1543.h"

#include

uint temperature_convert(void);

void brilliance_control(void);

int main(void)

{

uint temporary_temp=0;

TMOD =0x11; //T0,T1均工作于方式1(16位定时/计数),软件启动TH0 = (65535-50000)/256; //一次中断时间为 50ms(12MHz下) TL0 = (65535-50000)%256;

TH1 = (65535-50000)/256; //一次中断时间为 50ms(12MHz下) TL1 = (65535-50000)%256;

EA =1; //开总中断

ET0 =1; //开定定时器T0中断

ET1 =1; //开定定时器T1中断

TR1=1; //打开定时器T1,隔一段时间调节一次亮度

TLC1543_Init(); //初始化TLC1543

Read_Time();

Write_Time(); //设置初始时间

brilliance_control(); //亮度初始设置

while(1) //while

{

alarm_clock(); //闹钟判别,与撤消

set_key_scan(); //设置键扫描,获取状态state信息

switch(state)

{

case 0: //显示时间

Read_Time(); //读取时间信息,存放在全局 calendar结构对象Time中

if((Time.DS1302_miao<0x25&&Time.DS1302_miao>=0x20)

|| (Time.DS1302_miao<0x50&&Time.DS1302_miao>=0x45)) //20-25/45-50秒间显示温度

{

temporary_temp =temperature_convert(); //将TLC1543转换的数字是转换成对应的温度

xianshi_num(temporary_temp);

}

else

{

shijian_xianshi(Time.DS1302_shi, Time.DS1302_feng); //显示时间

}

break;

case 1: //调整闹钟

case 2:

case 3:

tiao_naozhong();

break;

case 4: //调整时间

case 5:

tiaoshi();

break;

default : break;

} //endswitch

}//endwhile

return 0;

}

//将TLC1543转换的数字是转换成对应的温度

//返回:参数对应的温度

uint temperature_convert(void)

{

float temp_num=0;

TR1 =0;

temp_num =TLC1543_ReadADC(0x00);

TR1 =1;

//对采集到的数字量作处理

temp_num =10*temp_num*5.0/1024; //10倍电压

//matlab polyfit最小二乘法曲线拟合(4阶)

temp_num =0.000035*pow(temp_num,4) -0.005092*pow(temp_num,3)+ 0.262544*pow(temp_num,2) -7.884431*temp_num+ 123.031448;

return (uint)(temp_num*10);

}

//亮度控制

//说明:调用TLC1543_ReadADC(1) 通道1获取光敏电阻的AD转换值,

// TLC5615_WriteDAC(xxx)进行DA转换

//参数:无

//返回:无

void brilliance_control(void)

{

uint temp=0;

temp =TLC1543_ReadADC(0x01);

//对获取的AD值处理

temp = temp/4; //将10位数字量转换为8位数字量

temp =100*temp*5.0/256; //100倍采集到的电压值

if(temp >59) //弱光

P3 =125;

else if(temp >28) //一般光强

P3 =175;

else

P3 =255;

P3 =(uchar)temp; //送到DAC0808转换,控制亮度

}

void Timer_T1(void) interrupt 3 //T1中断服务程序

{

static uint num_time=0; //计数器

TH1 = (65535-50000)/256; //一次中断时间为 50ms(12MHz下) TL1 = (65535-50000)%256;

num_time++;

if(num_time%10 ==0) //控制时间显示时小数点的闪烁

{

twinkle =!twinkle;

}

if(num_time >=20) //中断20次,每1s调节一次亮度

{

num_time =0;

brilliance_control(); //亮度控制

}

TR1 =1;

}

(4)DS1302程序

#include "myds1302.h"

#include "shu_ma_guan.h"

sbit SDA = P1^5; //DS1302双向数据线

sbit SCLK = P1^6; //时钟线

sbit RST = P1^7; //控制线

//以BCD码存放时间信息

struct calendar Time ={0x05, 0x59, 0x50};

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

//从DS1302读出一个字节

//参数:无

//返回:读取的字节

uchar DS1302ReadByte(void)

{

uchar i=0;

uchar date=0; //读取的字节

_nop_();

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

{

date = date >>1; //从低位至高位读入

if (SDA) //读出1

{

date |=0x80;

}

SCLK =1; //产生上升沿

_nop_();

SCLK =0;

_nop_();

}

return date;

}

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

//向DS1302写入一个字节

//参数:uchar dat 要写入的字节

//返回:无

void DS1302WriteByte(uchar dat)

{

uchar i=0;

SCLK =0;

_nop_();

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

{

SDA =dat&0x01; //DS1302数据是从低位开始传输的

_nop_();

SCLK =1; //产生上升沿

_nop_();

SCLK =0;

dat =dat>>1; //将高位移至低位

}

}

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

//从DS1302读数据

//说明:先写要读数据地址,再读数据

//参数:uchar cmd 要写入的控制字(数据所在的地址)

//返回:读取的数据

uchar DS1302Read(uchar cmd)

{

uchar dat=0;

RST =0; //初始CE线置为0

SCLK =0; //时钟拉低

_nop_();

RST =1; //CE线拉高,开始传输

DS1302WriteByte(cmd); //传输命令字,要操作的时间/日历的地址dat =DS1302ReadByte(); //读取数据

SCLK =1;

RST =0; //读取结束,CE置为0,结束数据传输

return dat;

}

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

//向DS1302写数据

//说明:先写地址,再写数据

//参数:uchar cmd 要写入的控制字, uchar dat 要写入的数据

//返回:无

void DS1302Write(uchar cmd, uchar dat)

{

RST =0; //初始CE线置为0

SCLK =0; //时钟拉低

_nop_();

RST =1; //CE线拉高,开始传输

DS1302WriteByte(cmd); //传输命令字,要写入的时间/日历的地址DS1302WriteByte(dat); //要写入的日期/时间

SCLK =1; //时钟拉高

RST =0; //读取结束,CE置为0,结束数据传输

}

//从DS1302读出时间参量

//说明:全局结构体变量Time用于存放时间参量

//参数:无

//返回:无

void Read_Time(void)

{

Time.DS1302_shi = DS1302Read(READ_Hour); //读取小时

Time.DS1302_feng = DS1302Read(READ_Minutes); //读取分钟

Time.DS1302_miao = DS1302Read(READ_Seconds); //读取秒数

//对读取的时间进行有效处理(去除掉与时间信息无关的位的影响)

if(Time.DS1302_shi>0x23) Time.DS1302_shi =0; //如果使用12小时制,则需要对读取的时间进行处理

if(Time.DS1302_feng>0x59) Time.DS1302_feng =0;

if(Time.DS1302_miao>0x59) Time.DS1302_miao -=0x80; //暂停模式下秒的最高位为 1

}

//将Time结构中的时间参量写入DS1302

//说明:全局结构体变量Time用于存放时间参量

//参数:无

//返回:无

void Write_Time(void)

{

if(Time.DS1302_shi>0x23) Time.DS1302_shi =0;

if(Time.DS1302_feng>0x59) Time.DS1302_feng =0;

if(Time.DS1302_miao>0x59) Time.DS1302_miao =0;

DS1302Write(WRITE_WP, WP_OFF); //写保护关,(否则不能写入)

DS1302Write(WRITE_Hour, Hour_24(Time.DS1302_shi)); //设置小时

DS1302Write(WRITE_Minutes, Time.DS1302_feng); //设置分钟

DS1302Write(WRITE_Seconds, Time.DS1302_miao); //设置秒

DS1302Write(WRITE_WP, WP_ON); //写保护开

}

(5)数码管模块程序

#define LED_OFF 1#include "shu_ma_guan.h"

#include "myds1302.h"

#define LED_ON 0

sbit T_shi_s =P2^0;

sbit T_shi_g =P2^1;

sbit T_feng_s =P2^2;

sbit T_feng_g =P2^3;

//0~9共阳极字形码(不带点),减0x80对应数值表示显示小数点

uchar code table0[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

//0~9共阳极字形倒码(不带点)

uchar code table1[]={0xc0, 0xcf, 0xa4, 0x86, 0x8b, 0x92, 0x90, 0xc7, 0x80, 0x82, 0x70}; //'*C'

uchar twinkle =1; //控制时间显示时小数点的闪烁

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

//功能显示一位数据

//参数:uchar num 要显示的数据, uchar zf 是否带点(0不带,1带)

// uchar liangdu 显示时间用于控制亮度取(共NUM ms,显示liangdu,灭NUM-liangdu)

//返回:无

void xianshi_yiwei(uchar num, uchar zf, uchar liangdu)

{

if (zf) //带点显示

{

P0 = table0[num] - 0x80;

}

else //不带点显示

{

P0 = table0[num];

}

delay_ms(liangdu);

P0 = 0xff; //关闭显示,消影

delay_ms(NUM-liangdu);

}

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

//功能显示一位数据(用倒置的数码管)

//参数:uchar num 要显示的数据, uchar zf 是否显示点(0--不显示,1--显示),

// uchar liangdu 显示时间用于控制亮度取(共NUM ms,显示liangdu,灭NUM-liangdu)

//返回:无

void xianshi_yiwei_dao(uchar num, uchar zf, uchar liangdu)

{

if (zf !=0) //带点显示

{

P0 = table1[num] - 0x80;

}

else //不带点显示

{

P0 = table1[num];

}

delay_ms(liangdu);

P0 = 0xff; //关闭显示,消影

delay_ms(NUM-liangdu);

}

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

//功能:显示时间

//参数:uchar shi 小时, uchar fen 分钟, uchar miao //返回:无

void shijian_xianshi(uchar shi, uchar fen)

{

uchar temp=0; //分离个十位

//显示小时

if(Time.DS1302_shi>0x09)

{

temp = shi/16; //十进制转换为BCD码

T_shi_s =LED_ON; //数码管小时十位开

xianshi_yiwei(temp, 0, NUM);

T_shi_s =LED_OFF; //数码管小时十位关}

T_shi_g =LED_ON;

temp = shi%16;

xianshi_yiwei(temp, twinkle, NUM);

T_shi_g =LED_OFF;

//显示分钟

T_feng_s =LED_ON;

temp = fen/16;

xianshi_yiwei_dao(temp, twinkle, NUM);

T_feng_s =LED_OFF;

T_feng_g =LED_ON;

temp = fen%16;

xianshi_yiwei(temp, alarm_on_off, NUM);

T_feng_g =LED_OFF;

}

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

//功能:显示调整状态时的时间 (要调的两位闪烁--调时,要调的一位闪烁--调闹钟)

//参数:uchar shi 小时, uchar fen 分钟, uchar miao 秒, uchar clock_alarm 调的是时间还是闹钟

//返回:无

void xianshi_shijian_adjust(uchar shi, uchar fen, uchar clock_alarm)

{

static uchar frequency=0; //用于闪烁控制

uchar temp=0; //分离个十位

uchar liang_mie_shi =NUM; //默认亮

uchar liang_mie_feng =NUM; //默认亮

frequency++;

if(frequency >40) //如果闪烁太快人眼可能看起来是一直亮的

{

frequency=0;

}

else

{

if(frequency >25) //frequency不要用于控制秒闪烁,秒闪烁频率小于点switch(state) //根据状态控制不同的位闪烁

{

case 1: //闹钟的小时

case 4: //时间的小时

liang_mie_shi = 0;

break;

case 2: //闹钟的分钟

case 5: //时间的分钟

liang_mie_feng = 0;

break;

default : break;

}

}

if(Time.DS1302_shi>0x09)

{

//显示小时

temp = shi/16; //十进制转换为BCD码

T_shi_s =LED_ON;

if(clock_alarm ==ADJUS_CLOCK)

xianshi_yiwei(temp, 0, liang_mie_shi); //调时间闪烁else

if(clock_alarm ==ADJUS_ALARM) //调闹钟不闪烁

xianshi_yiwei(temp, 0, NUM);

T_shi_s =LED_OFF;

}

T_shi_g =LED_ON;

temp = shi%16;

xianshi_yiwei(temp, 1, liang_mie_shi);

T_shi_g =LED_OFF;

//显示分钟

T_feng_s =LED_ON;

temp = fen/16;

if(clock_alarm ==ADJUS_CLOCK) //调时间闪烁

xianshi_yiwei_dao(temp, 1, liang_mie_feng);

else

if(clock_alarm ==ADJUS_ALARM) //调闹钟不闪烁

xianshi_yiwei_dao(temp, 1, NUM);

T_feng_s =LED_OFF;

T_feng_g =LED_ON;

temp = fen%16;

xianshi_yiwei(temp, alarm_on_off, liang_mie_feng);

T_feng_g =LED_OFF;

}

//显示带一位小数的温度

//说明:xianshi_temperature(10)则显示 10

//参数:uint num要显示的数

//返回:无

void xianshi_num(uint num)

{

uchar i=0;

uchar j=0;/////

j=num%10;////

num /=10;////

//显示*C (温度单位)

T_feng_s = LED_ON;

xianshi_yiwei_dao(10, 0, NUM); //10---*C

T_feng_s = LED_OFF;

//低位至高位

i =num%10;

T_shi_g = LED_ON;

xianshi_yiwei(i, 0, NUM);

T_shi_g = LED_OFF;

num /=10;

if(num >0)

{

i =num%10;

T_shi_s = LED_ON;

xianshi_yiwei(i, 0, NUM);

T_shi_s = LED_OFF;

}

T_feng_g = LED_ON;////

xianshi_yiwei(j, 0, NUM);///

T_feng_g = LED_OFF;///

}

(4)闹钟模块程序

#include "naozhong.h"

#define BEEP_ON 0

#define BEEP_OFF 1

sbit BEEP =P2^6; //蜂呜器

uchar integral_point_flag =0; //1--整点,0--闹钟

//定义结构体用于存放闹钟时间

struct calendar Naozhong ={0x06, 0x30, 0x00};

uchar alarm=0; //用于标记闹钟是否在响(1--在响,0-没响)

//蜂呜器响

void beep_on(void)

{

BEEP =BEEP_ON; //打开蜂鸣器

}

//蜂呜器关

void beep_off(void)

{

BEEP =BEEP_OFF; //关闭蜂鸣器

}

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

//是否到了设定闹钟时间

void alarm_clock(void)

{

if(Time.DS1302_shi >=0x06 && Time.DS1302_shi <=0x19 && 0== Time.DS1302_feng && 0== Time.DS1302_miao) //整点报时

{

integral_point_flag =1;

TR0 =1; //打开T0定时器可用于控制整点报时响的次数

}

if(alarm_on_off ==ALARM_ON) //闹钟打开

{

//闹钟;闹钟响一段时间自动关闭或者闹钟响后手动关闭

if(Time.DS1302_shi==Naozhong.DS1302_shi && Time.DS1302_feng==Naozhong.DS1302_feng

&&Time.DS1302_miao==Naozhong.DS1302_miao)

{

integral_point_flag =0;

alarm =1; //闹钟时间到

beep_on(); //打开蜂呜器 ;在按键扫描中关闭

TR0 =1; //打开T0定时器可用于控制闹钟响的时间

}

}

}

void Timer_T0(void) interrupt 1 //T0中断服务程序,用于闹钟报时

{

static uchar numx=0; //整点报时计数器

static uint num_niao=0; //闹钟计数器

static uchar hour=0; //小时数

static num=0; //计数器,增值键和设置键被按下的时间

TR0 =0;

TH0 = (65535-50000)/256; //一次中断时间为 50ms(12MHz下)

TL0 = (65535-50000)%256;

if(state!=0) //设置状态下,计算增值键和设置键被按下的时间

{

num++;

if(num >=2) //发生2次中断

{

num =0;

key_long_press++; //增值键按下时间增加

}

else

if( integral_point_flag==0) //闹钟状态

{

num_niao++;

if(num_niao>1200) //闹钟响了一分钟则关闭

{

integral_point_flag =2; //报时标志置于空闲

num_niao=0; //计数器清零

alarm =0; //取消闹钟

TR0 =0; //关闭定时器T0

BEEP =BEEP_OFF; //关闹钟

}

}

else

if(integral_point_flag==1) //整点报时状态

{

numx++;

if(numx%10 ==0)

{

BEEP = ~BEEP;

if(Time.DS1302_shi >0x12)

{

hour = Time.DS1302_shi -0x12; //13点换成一点.

}

else

{

hour = Time.DS1302_shi;

}

hour = 10*(hour/16) + hour%16; //BCD码表示的时间转换为10进制时间

if(numx > 20*hour)

{TR0 =0; //关闭定时器T0

BEEP =BEEP_OFF; //关闭蜂鸣器

integral_point_flag =2; //报时标志置于空闲

numx =0; //计数器清零

}

}

}

}

(5)TLC1543程序

#include "TLC1543.h"

sbit TLC1543_SDO =P1^0; //TLC1543 串行数据线

sbit TLC1543_ADDR =P1^1; //TLC1543 地址线(通道选择线) sbit TLC1543_CS =P1^2; //TLC1543 片选线(低电平有效) sbit TLC1543_CLK =P1^3; //TLC1543 时钟线

sbit TLC1543_EOC =P1^4; //TLC1543 转换完成

//TLC1543初始化

void TLC1543_Init(void)

{

uchar i=0;

TLC1543_CS =1; //不选中 TLC1543

TLC1543_CLK =0;

}

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

//读取第ain通道的ADC转换值

//参数:uchar ain 转换通道 0--10

//返回:转换的数字值

uint TLC1543_ReadADC(uchar ain)

{

uint dat=0;

uchar i=0, j=0;

uchar ch=0; //

ain <<=4; //从高位开始传输

ch =ain;

//因为CPU读入的数据是芯片上次A/D转换完成的数据。

//所以在使用多通道时至少读两次同一通道才能读到该通道的值for(i=0; i<2; i++)

{

dat =0;

ch =ain;

// TLC1543_EOC =1;

数字时钟课程设计方案设计方案

课程设计题目名称:数字时钟 专业名称:电气工程及其自动化班级: ******** 学号: *******8 学生姓名: ******* 任课教师: *******

《电子技术课程设计》任务书

2.对课程设计成果的要求〔包括图表(或实物)等硬件要求〕:设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用Protel软件绘出原理图(SCH)和印制电路板(PCB),器件的选择要有计算依据。 3.主要参考文献:⑴《电子技术课程设计指导》彭介华编,高等教育出版社,1997年10月 ⑵《数字电子技术》康华光编著高等教育出版社, 2001年 要求按国标GB 7714—87《文后参考文献著录规则》书写。 4.课程设计工作进度计划: 序号起迄日期工作内容 初步设想和资料查询,原理图的绘画 1 2015.11.18-2015.12.21 仿真调试,元件参数测定,实物的拼接与测试 2 2015.12.21-2016.1.8 叙写设计报告,总结本次设计,论文提交 3 2016.1.8-2016.1.18 主指导教师日期:年月日

摘要 数字时钟已成为人们日常生活中必不可少的必需品,广泛于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。并且数字时钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。报告围绕此次数字钟的设计进行介绍、总结,包含了设计的步骤,前期的准备,装配的过程。在实装时,采用了74LS90进行计数,用CD4060产生秒脉冲,CD4511进行数码管转换显示,还要考虑电路的校时、校分,每块芯片各设计为几进制等等,最后实现了数字钟设计所要求的各项功能:时钟显示功能;快速校准时间的功能。 关键字:数字时钟校时CD4511

微机原理课程设计数字时钟程序

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 电子信息科学与工程 课程名称:微型计算机原理及应用 学年学期: 2 01 1 —2012 学年第1 学期 指导教师: 20 0 1 1年 1 2月 课程设计成绩评定表

目录 一、课设题目及目的………………………………….4 二、设计任务………………………………………….4 三、总框图及设计流程 (4) 四、?源程序清单 (6) 五、?调试结果及显示 (19) 六、?个人贡献………………………………………….19 七、课程设计总结及体会 (21) 一、课设题目及目的 实习题目:数字时钟程序 实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。

二、课设任务 本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通过合理的操作能修改时和分的内容来修改时间。再有,可以给它设定一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。除此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年xx 月xx日。 ' *

DB '***********PRESS ESCBUTTON TO EXIT**************',0AH,0DH,'$' TN DB'PLEASE INPUT THE NEW TIME(HH:MM:SS):',0DH,0AH,'$' TMDB'PLEASE INPUT THE ALARM TIME (HH:MM:SS):',0DH,0AH,'$' MUSICMESS DB'PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW)',0DH,0AH,'$' MESS2DB'TIME IS:',0AH,0DH,'$' MESS3DB 'TODAY IS:',0AH,0DH,'$' DBUFFER1DB20DUP('') T_BUFFD B 40 ;在数据段开一段时间显示缓冲区 DB ? DB 40DUP(?) HOR DB? MIN DB? SEC DB? TEMPHOR DB ? TEMPMIN DB? TEMPSEC DB? MUSIC DW 800;存放音乐的频率数DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS CODESEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: CALL CLEAR ;调用清屏子程序 DISPLAY:;时间显示部分 MOV AX,DATA MOVDS,AX MOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BX MOV AH,2CH;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中 INT 21H ;判断时间是否相等SUB DH,1;秒数+1修正 CALL CHECK ;.........................................................................

《数字逻辑》数字时钟课程设计报告资料

《数字逻辑》课程设计报告 题目数字时钟 学院(部)信息工程学院 专业计算机科学与技术 班级计算机一班 学生姓名 学号20132402 6 月29 日至 7 月 3 日共1 周 指导教师(签字)

题目 一.摘要: 钟表的数字化给人们的生产生活带来了极大的方便,并且极大的扩展了钟表原先的报时功能。诸如定时自动报有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常警、学校的按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯,甚至各种定时电气的自启用等。所现实的意义。本次数电课设我组设计的数字时钟是由石英晶体振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路和计时电路组成,石英晶体振荡器产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器在七段显示器上显示时间。 二.关键词: 校时计时报时分频石英晶体振荡器 三.技术要求: 1、有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能; 2、有计时功能,时钟不会在计时的时候停下。计时范围是0~99秒; 3、有闹铃功能,闹铃响的时间由使用者自己设置,闹铃时间至少一分钟; 4、要在七段显示器(共阴极6片)显示时间; 5、电子钟要准确正常地工作。 四、方案论证与选择: 钟表的是长期使用的器件,误差容易积累由此增大。所以要求分频器产生的秒脉冲要极其准确。而石英晶体产生的信号是非常稳定的,所以我们使用石英晶体产生的信号经过分频电路作为秒脉冲。秒脉冲信号经过6级计数器,分别得到“秒”、“分”、“时”的个位、十位的计时。由实际的要求,“秒”、“分”计数器为60进制的计数器,小时为24进制。由于74LS160十进制加法计数器易于理解使用,我们在设计各个计数器时都是由采用74LS160芯片级联构成。在计时部分,最小单位是0.01s,我们采用555多谐振荡器产生100HZ的信号作为秒脉冲进入一个4级计数器,计时范围是0~99秒。石英晶体

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

电子时钟课程设计_数电课程设计数字电子时钟的实现

电子时钟课程设计_数电课程设计数字电子 时钟的实现 课程设计报告设计题目:数字电子时钟的设计与实现班级: 学号: 姓名: 指导教师: 设计时间: 摘要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表的报时。诸如,定时报警、按时自动打铃、时间程序自动控制等,这些,都是以钟表数字化为基础的。功能数字钟是一种用数字电路实现时、分、秒、计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。从原理上讲,数字钟是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟,而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及使用方法。通过此次课程设计可以进一步学习与各种组合逻辑电路与时序电路的原理与使用方法。通过仿真过程也进一步学会了Multisim 7的使用方法与注意事项。

本次所要设计的数字电子表可以满足使用者的一些特殊要求,输 出方式灵活,如可以随意设置时、分、秒的输出,定点报时。由于集 成电路技术的发展,,使数字电子钟具有体积小、耗电省、计时准确、 性能稳定、维护方便等优点。 关键词:数字钟,组合逻辑电路,时序电路,集成电路目 录摘要 (1) 第1章概述 (3) 第2章课程设计任务及要求 (4) 2.1设计任务 (4) 2.2设计要求 (4) 第3章系统设计 (6) 3.1方案论证 (6) 3.2系统设计 (6) 3.2.1 结构框图及说明 (6) 3.2.2 系统原理图及工作原理 (7) 3.3单元电路设计 (8) 3.3.1 单元电路工作原理 (8) 3.3.2 元件参数选择···································14 第 4章软件仿真 (15) 4.1仿真电路图 (15) 4.2仿真过程 (16)

数字电子时钟课程设计

数字电子技术基础课程设计报告 班级:姓名: 学号: 一、设计目的 1掌握专业基础知识的综合能力。 2完成设计电路的原理设计、故障排除。 3逐步建立电子系统的研发、设计能力,为毕业设计打好基础。 4让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法。 5进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力。 6培养书写综合实验报告的能力。 二、设计仪器 1 LM555CH 2 74LS161N 74LS160N 74LS290 3 74LS00 74LS08 4 电源电阻电容二极管接地等 三数字电子钟的基本功能及用途 现在数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性

能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。 电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。 多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。具有时间显示、走时准确、显示直观、精度、稳定等优点。电路装置十分小巧,安装使用也方便。同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。 四设计原理及方框图 数字钟实际上是一个对标准频率进行计数的计数电路,标准的1HZ时间信号必须做到准确稳定。由图可见:本数字钟电路主要由震荡器、、时分秒计数器、译码显示器构成。它们的工作原理是:由震荡器产生的高频脉冲信号作为数字钟的时间基准,送入秒计数

单片机原理实验1602显示温度时钟

《单片机原理实验》 考 试 报 告 题目:1602显示温度时钟及星期

1602显示温度时钟及星期 摘要:本次实验利用STC89C51单片机作为控制器,通过keil编写程序,并且将生成hex文件写入单片机的内存中,实现对单片机的I/O口,液晶显示屏1602和温度传感器DS18B20操作,最终实现在液晶显示器1602上显示时钟,星期以及实时温度的功能。关键词:STC89C52单片机,液晶显示器1602,DALLAS公司生产的DS18B20数字温度计,时钟,温度,星期 1.引言 在开始的时候只是想用1602显示成数字温度计,可是在做完温度计之后发现1602屏上还有足够的空间用来显示时钟,所以就在原来的数字温度的程序上进行了扩展,加入了时钟的显示程序以及星期的显示程序。确定了要显示的内容之后,通过计算字符的个数,对要显示的东西进行了布局,使得其显示看起来比较协调美观。在做这个实验的时候,数字温度计的程序是最难的部分,我花了两天的时间把参考书上的一个用数码管显示温度的程序读懂,弄清楚DS18B20操作时序和数码管显示温度的基本步骤和原理之后,再结合我已经掌握的1602显示器的知识,尝试这把数码管显示改为1602显示,这个过程就是写这个程序最重要的地方,由于数码管显示原理与数码管显示原理完全不同,要进行比较大的调整,从写完这个程序和到完全调试好这个程序并且进行成功仿真花了大半天的时间。当我调试完了程序和仿真之后,我在面包板上用相应的元器件搭出了仿真时候的电路,当我把程序写入单片机内,1602显示的实验室温度为30.7。成功之后,我再把以前写过的数字钟的程序逐渐的移植到这个程序当中,并且重新设置相关的参数,经过半天的调试,最终取得了理想中的结果。 2.原理 使用的STC89c51单片机对所有的元器件进行控制。外接时钟信号的晶振的频率为12MHz,所以其机器周期为1us,在写数字钟的程序是用的是中断计时,因此赋的初值为(65536-50000),即为50ms,中断进行20次后就是一秒,因此也就可以实现比较精准的定时了。 温度传感器DS18B20采用的是单总线协议,与单片机连接只需要一个I/O端口就可以实现双向通信。它只有三个引脚,一个接高电平,一个接地,还一个就是单总线,在接单总线通常要求外接一个约为5k欧的电阻,仿真实验时我采用的是4.7k欧,搭建实物电路用的是4.3k欧。该单条信号线既可以传输时钟,又可以传输数据,而且数据传输是双向的,因而这种单总线控制技术具有线路简单硬件开销少,成本低廉,便于总线扩展和维护。 液晶显示屏1602可以显示两行字符,每行最多可以显示16个字符,液晶第3端为对比度调节端,通过一个10k欧的电位器接地来调节液晶显示器的对比度,在仿真时可以不接入,但是在搭建实物电路时必须接上,以免烧坏器件造成损失。 通过先学习以上元器件的工作原理及操作时序,然后在keil上编写出控制这些器件正常工作的程序,并且生成hex文件以供单片机识别和使用。 3.电路

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

电子时钟课程设计55026

. 单片机课程设计题目:电子时钟 班级: 姓名: 学号: 指导教师: 设计时间:

.

摘要 针对数字时钟的问题,利用8051单片机,proteus软件,vw(伟福)等软件,运用单片机中定时计数器T0,中断系统以及按键的控制实现了电子时钟的设计。设计的电子时钟通过数码管显示,并能通过按键的设计实现小时与分钟的调整。时间的启动与暂停等等。 关键字:数字时钟;单片机;定时计数器 .

1 引言 时钟,自他发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术不断的发展,人们对时间计量的进度要求越来越高,应用越来越广。怎样让时钟更好地为人类服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现金,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都使用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示器,减小了计时误差,这种表具有时、分、秒显示的功能,还可以进行时、分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准震荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,及定时时间,它通常有两种方法实现:一是软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要起不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。本文主要介绍用单片机内部的定时计数器来实现电子时钟的方法,以单片机为核心,辅以必要电路,构成了一个单片机电子时钟。 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是LED指示灯,也可以是LED数码管,也可 .

数字钟课程设计

数字逻辑电路课程设计 课题:数字钟 姓名:刘亮 班级:通信2班 学号:21 成绩: 指导教师:查根龙 开课时间: 2014-2015学年第2学期

摘要 (1) ABSTRACT (2) 第1章设计背景 (3) 1.1设计任务 (3) 1.2设计要求 (3) 1.3 设计目的 (3) 第2章课程设计方案 (4) 2.1 数字钟的基本组成和工作原理 (4) 2.2 振荡电路 (5) 2.3 分频电路 (6) 2.4时分秒计数电路 (7) 2.5 校时校分功能 (10) 2.6整点报时电路 (10) 2.7上下午显示电路 (11) 第三章课程总结 (12) 第四章参考文献 (13) 第五章附件 (14) 5.1 电路原理图 (14) 5.2 元器件清单 (14)

摘要 电子钟在现代社会已经使用的非常广泛,伴随着数字电路技术的发展,数字钟的出现,更加方便了大家的生活,同时也大大地促进了社会的进步。数字电路具有电路简单、可靠性高、成本低等优点,本设计就以数字电路为核心设计智能电子钟。 数字钟就是由电子电路构成的计时器。是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和、报时、上下午显示等附加功能。主电路系统由秒信号发生器、时、分、秒计数器,译码器及显示器,校时电路,上下午显示,整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。秒信号产生器将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24和12小时的累计。计数器用的是74160。译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过六位LED七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的 关键词:计时器;计数;译码;报时;校时校分

电子电工课程设计(多功能数字时钟万历)

物理与电子科学学院电子电工实验 基于DS1302多功能数字时钟--万年历 实验报告 实验名称:基于DS1302多功能数字钟 试验日期: 2014年 01 月 05 日 专业:电子信息工程 姓名:刘斌 班级:物电 1105 班 学号: 2011112030560

一、设计理念: 电子万年历是一个应用非常广泛的实用日常计时工具,带有显示温度,显示世纪,年,月,日,星期,时,分,秒和按键可调时间及其按键设置闹钟的功能,同时具有月末自动更新,闰年补偿功能,整点报时等多种功能。环境温度检测系统在日常生活和工业应用非常广泛,能实时采集周围的温度信息进行显示。 此系统是基于STC89C52单片机设计的,包含液晶显示模块,DS1302实时时钟模块,DS18B20温度采集模块,键盘扫描模块,蜂鸣器报警模块。STC89C52作为控制核心,具有功耗低,功能强等特点,电压可选3到5V电源供电。显示模块采用1602液晶动态显示,相对数码管而言经济实用,占用空间小,对于显示数字、字母最为合适,而且与单片机连线简单,占用IO口相对较少。实时时钟芯片DS1302是一款经济实惠功能强大的较新型产品,该器件提供RTC/日历,可外加器件实现定时闹钟等功能,如果检测到主电源故障,该器件可自动切换到备用电源供电,可以保证在断电情况下精准走时,计时。温度检测显示模块采用数字式温度传感器DS18B20,该芯片具有精度高,测量范围广等优点,易与单片机连接,模块电路组成简单并同时具有温度报警功能。 关键词:STC89C52,DS1302,DS18B20,1602液晶显示,电子万年历,采集设备周围环境温度、整点报时,闹钟时分通过按键设置,时、分、秒、年、月、日、星期通过按键进行调节校准……

数字电路课程设计--数字时钟

数字电路课程设计--数字时钟

《数字时钟》技术报告 概要 数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 一、系统结构。 (1)功能。 此数字钟能显示“时、分、秒”的功能,它的计时周期是24小时,最大能显示23时59分59秒,并能对时间进行调整和校对,相对于机械式的手表其更为准确。 (2)系统框图。

译码器译码器译码器 时计数分计数秒计 校时电路 振荡器分频器 系统方框图 (3)系统组成。 1.秒发生器:由555芯片和RC组成的多谐振荡器,其555上3的输出频率由接入的电阻与电容决定。 2.校时模块:由74LS03中的4个与非门和相应的开关和电阻构成。 3.计数器:由74LS90中的与非门、JK触发器、或门构成相应芯片串接得到二十四、六十进制的计数器,再由74LS90与74LS08相连接而得到秒、分、时的进分别进位。 4.译码器:选用BCD锁存译码器4511,接受74LS90来的信

(完整版)数字电路课程设计--数字时钟

《数字时钟》技术报告 概要 数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24 小时,显示满刻度为23 时59 分59 秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时” 、“分”、“秒” 的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555 震荡器,74LS90 及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 一、系统结构。 (1)功能。此数字钟能显示“时、分、秒”的功能,它的计时周期是24 小时,最大能显示23 时59 分59 秒,并能对时间进行调整和校对,相对于机械式的手表其更为准确。 2)系统框图

系统方框图 1 (3)系统组成。 1.秒发生器:由555 芯片和RC 组成的多谐振荡器,其555 上3 的输出频率由接入的电阻与电容决定。 2.校时模块:由74LS03 中的4 个与非门和相应的开关和电阻构成。 3.计数器:由74LS90 中的与非门、JK 触发器、或门构成相应芯片串接得到二十四、六十进制的计数器,再由74LS90 与74LS08 相连接而得到秒、分、时的进分别进位。 4.译码器:选用BCD 锁存译码器4511,接受74LS90 来的信号,转换为7 段的二进制数。

5.显示模块:由7 段数码管来起到显示作用,通过接受CD4511 的信号。本次选用的是共阴型的CD4511 。 二、各部分电路原理。 1.秒发生器:555 电路内部(图2-1)由运放和RS 触发器共同组成,其工作原理由8处接VCC ,C1 处当 Uco=2/3Vcc>u11 时运放输出为1,同理C2 也一样。最终如图3 接口就输出矩形波,而形成的秒脉冲。 图 2-2 555 功能表 2.校时模块:校时模块主要由74LS03中的4个与非门构成(图2-3),由其功能图看得出只要有一个输入端由H 到L 或者从L 到H 都会使输出端发生高低变化。因此通过开关的拨动产生高低信号从而对时、分处的计数器起到调数作用。

带温度显示的数字时钟设计

目录 1 前言....................................................................................................................................1 2功能描述与总体方案. (2) 2.1功能描述 (2) 2.2系统组成 (2) 3硬件设计 (3) 3.1时钟电路 (3) 3.2复位电路 (3) 3.3 DS1302时钟电路 (4) 3.4 DS18B20温度计电路 (4) 3.5 按键电路 (5) 3.6 显示电路 (6) 3.7 闹铃模块电路 (7) 4软件设计 (8) 4.1 主函数流程图 (8) 4.2 18B20温度计流程图 (9) 4.3 按键电路流程图 (10) 5结语 (11) 6参考文献 (12) 7附录 (13)

前言 单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本文主要介绍由单片机控制的带有温度显示的电子钟的设计。随着人们生活水平的日益提高,人们对生活的要求越来越高,原有的事物已经不能满足人们的生活需求了,一些带有新功能的事物已经在慢慢的取代旧事物。就像电子钟一样,人们用电子钟不仅仅只是看时间了,人们还需要看温度了。越来越多的新功能更贴近人们的生活了,所以也越来越受人们所喜欢。带有温度的的电子钟可以使人们随时都可以了解温度的变化。本文介绍了设计的框架结构和组成模块以及各模块的原理,介绍了各部分硬件设计和各部分软件设计以及软件流程图。该设计是以AT89C51单片机为控制核心的集多种功能于一体的数字钟。该数字钟实现了具有时间显示功能;具有温度显示功能。硬件设计分为单片机控制模块、按键模块、温度模块、时钟模块、显示模块等几个部分。 功能描述与总体方案 2.1功能描述 根据主要功能要求,该设计利用51单片机实现了电子时钟、温度的显示以及设置闹铃等功能。具体可分为一下几种: (1)显示当前的时间,24时制的时、分、秒; (2)可调节时间;

电子技术课程设计数字时钟

目录 目录 (1) 前言 (2) 内容摘要 (2) 设计要求 (2) 第一章方案设计 (3) 第二章硬件设计及仿真 (4) 2.1振荡器的设计 (4) 2.2分频器的设计 (6) 2.3时间计数器的设计 (7) 2.3.1六十进制计数器 (7) 2.3.2二十四进制计数器 (8) 2.4译码器与显示器的设计 (9) 2.5校时电路 (10) 第三章电路的总体设计 (11) 第四章元器件清单及部分芯片介绍 (12) 4.1元器件清单 (12) 4.2部分芯片功能介绍 (13) 4.2.1 74LS90N (13) 4.2.2 555 (14) 第五章总结 (16) 附录参考文献 (17)

前言 内容摘要 数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒。一个基本的数字钟电路主要由秒信号发生器、“时、分、秒、”计数器、译码器及显示器组成。由于采用纯数字硬件设计制作,与传统的机械表相比,它具有走时准,显示直观,无机械传动装置等特点。 本设计中的数字时钟采用数字电路实现对“时”、“分”、“秒”的显示和调整。通过采用各种集成数字芯片搭建电路来实现相应的功能。具体用到了555震荡器,74LS90及与非,异或等门集成芯片等。该电路具有计时和校时的功能。 在对整个模块进行分析和画出总体电路图后,对各模块进行仿真并记录仿真所观察到的结果。 实验证明该设计电路基本上能够符合设计要求! 设计要求 (1)、要求电路能够产生定时脉冲; (2)、要求电路能够根据对定时脉冲的计算得到时,分,秒;(3)、要求电路能够产生时,分,秒。

数字时钟课程设计报告

《电子线路课程设计报告》 系另 1」: 机电与自动化学院 专业班级:电气及自动化技术1001 学生姓名:陈星涯 指导教师:梁宗善 i=r (课程设计时 间: 2012年1月3日——2012年1月13日) 华中科技大学武昌分校 1.课程设计目的................................................. 3页 2.课程设计题目描述和要求....................................... 3页 2.1课程设计题目............................................. 3页

2.2课程设计要求............................................. 3页 3. ......................................................................................................... 比较和选定设计的系统方案.................................................... 4页 3.1数字钟的构成............................................. 4页 4.单元电路设计及工作原理....................................... 5页 4.1时基电路................................................. 5页 a. 多谐振荡器的工作原理................................... 5页 4.2计数器................................................... 7页 a.中规模计数器组件介绍.................................. 7页 b.60 进制计数器 .......................................... 8页 C.12 翻1计数器........................................... 9页 4.3译码器................................................... 10页 4.4显示器................................................... 10页 4.5校时电路................................................. 11页 4.6定时控制电路............................................. 12页 4.7仿广播电台正点报时电路................................... 13页 5.调试过程及分析............................................... 14页 5.1显示器故障排查........................................... 14页 5.2计数器调试及分析......................................... 15页 5.3校时电路的调试........................................... 16页 5.4增加抗干扰电路........................................... 16页 5.5闹时电路的调试........................................... 17页 5.6仿广播电台整点报时电路调试............................... 17页 6.课程设计总结................................................. 17页 7.参考文献..................................................... 19页 8.附件一:电子时钟主体电路电路图............................... 20页 9.附件二:扩展电路电路图....................................... 21页 10.附件三:系统所需元器件清单 ................................ 22页 11.课程设计成绩.............................................. 23页 一、设计任务与目的 数字时钟是一种利用数字电路技术实现时、分、秒计时的装置,与传统的

时钟与温度

摘要:本次设计以AT89S52芯片为核心,辅以必要的外围电路,设计了多功能电子时钟,它由5V USB直流电源供电。在硬件方面,除了CPU外,使用一LCD1602来进行显示,使用DS1302精确计时,用DS18B20作为温度信号传感器;与传统的数字时钟相比,该时钟能与PC时间同步,便于使用者在PC上就完成对时钟的快速设置。软件系统开发使用C语言。通过LCD1602能够准确显示年、月、日、星期、时、分、秒以及温度。四个简单的按键实现对时间的调整,闹钟设置等。整个电子钟系统能完成时间的显示,调时,定时闹钟,报警等功能。 关键词:单片机、LCD、PC同步 目录 一. 设计目的 (01) 二. 设计任务及要求 (01) 三. 功能描述 (01) 四. 系统图 (02) 五. 系统器件简介 (02) 六. 原理图 (04) 七. 元件清单 (04) 八. I/O 分配 (05) 九. 程序流程图 (05) 十. 源程序 (06) 十一. 项目调试说明 (24) 十二. 总结 (24) 十三. 参考资料 (24) 一. 设计目的 1.通过设计,掌握单片机C语言的编程方法及思想; 2.了解时钟芯片DS1302、单线数字温度传感器DS18B20、液晶显示器LCD1602的使用方法; 3.通过设计,掌握独立式键盘的编程控制并认识独立式键盘在实际中运用; 4.通过PC同步设计,了解PC与单片机数据交换的方式; 5.通过设计,初步了解单片机系统开发的基本方法和调试手段。 二. 设计任务及要求 任务:设计一个可同步PC调时的数字电子时钟 要求: 1.用DS1302来实现对时间的计算; 2.用LCD1602来显示时间; 3.用独立式键盘来进行调时; 4.用DS18B20获取温度参数; 5.用CH341T与PC进行数据同步。 三. 功能描述 1.设置按键进行时间、闹铃以及PC同步设置,调整内容切换。 2.进入设置界面后,在按设置键可以将设置焦点移到下一个设置项中。 3.在设置界面按+键后被设置的选项增加1;按-键后被设置的选项减少1。 4.在设置状态按下退出键立即返回时间显示界面。 5.在时间显示界面按退出键,进入秒表模式。

数字时钟课程设计

1 绪论 1.1 课题背景及目的 在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着数字集成电路性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。 1.2数字时钟的应用 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示日期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展

相关文档
相关文档 最新文档