Angelcat930
//我这里有一个定时的闹钟,你把蜂鸣器的中断改为LED就行了,可以通过P2^0--P2^3实现秒表的显示和以及调时调分和调节闹钟以及闹钟的开关,有问题可以给我留言QQ834589429
#include<> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
sbit A1=P2^0;
sbit A2=P2^1;
sbit A3=P2^2;
sbit A4=P2^3;
sbit beep=P1^4;
unsigned char Shiwan;
unsigned char Wanwei;
unsigned char Qianwei;
unsigned char Baiwei;
unsigned char Shiwei;//定义十位
unsigned char Gewei,Naoling1,Naoling2,Naoling3,Naoling4; //定义个位
static unsigned char hour=12,minute=30,second=0,count=0;
static unsigned char alarmhour=12,alarmminute=29,i=0,j=0,k;
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
void xianshi(void)
{
Gewei=tab[second%10]; //个位显示处理
Shiwei=tab[second/10];//十位显示值处理
if(second%2==0)
{
Baiwei=tab[minute%10];
Qianwei=tab[minute/10];// 千位
}
else
{
Baiwei=(tab[minute%10]|0x80);//百位显示处理:加点的字码
Qianwei=(tab[minute/10]|0x80);
}
if(second%2!=0)
{
Wanwei=tab[hour%10];
Shiwan=tab[hour/10];
}
else
{
Wanwei=(tab[hour%10]|0x80);
Shiwan=(tab[hour/10]|0x80);
}
Naoling1=~tab[alarmhour%10];
Naoling2=~tab[alarmhour/10];
Naoling3=~tab[alarmminute%10];
Naoling4=~tab[alarmminute/10];
}
void timer0() interrupt 3 using 1
{
TH1=0x3c; //中断设置初始化
TL1=0xb0;
if(alarmhour==hour&&alarmminute==minute&&j==1)
{
beep=0;
}
}
/******************************************************************/
/* 定时器中断函数 */
/******************************************************************/
void timer1() interrupt 1 using 0
{
TH0=0xd8; //重新赋值
TL0=0xf0;
count++;
xianshi();
if (count==99) //100x10ms=1S,大致延时时间
{
count=0;
second++; //秒加1
if(second==60)
minute++;
{
if(second==60)
second=0;
{
if(minute==60)
hour++;
{
if(minute==60)
minute=0;
{
if(hour==24)
hour=0;
}
}
}
}
}
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
void main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal,工作在模式1,16位定时
TH0=0xd8;
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1; //打开定时开关
xianshi();
EA=1;ET0=1;TMOD |=0x21;TR0=1; //开中断总开关,计数器0允许中断,设置中断模式,启动计数器0
ET1=1;TR1=1;
while(1)
{
{
if(!A3)
{
delay(10000);
if(!A3)
{
i++;if(i==7)i=0;
xianshi();
}
}
}
{
if(!A4)
{
delay(10000);
if(!A4)
{
i--;if(i==255)i=6;
xianshi();
}
}
}
switch(i)
{
case 0: //正常显示控制
{
P1=0x1e; //片选个位
P0=~Baiwei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Qianwei;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=~Wanwei; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~Shiwan; //显示千位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
} ;break;
case 1: //调分控制
{
if(second%2!=0)
{
P1=0x1e; //片选个位
P0=~Baiwei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Qianwei;//显示十位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
}
else
delay(300);
delay(300);
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
minute++;if(minute==61)minute=0;
xianshi();
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
minute--;if(minute==255)minute=59;
xianshi();
}
}
}
};break;
case 2: //调时控制
{
if(second%2==0)
{
P1=0x1b; //片选百位
P0=~Wanwei; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~Shiwan; //显示千位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
}
else
delay(300);
delay(300);
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
hour++;if(hour==24)hour=0;
xianshi();
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
hour--;if(hour==255)hour=23;
xianshi();
}
}
}
};break;
case 3: //秒显示控制
{
P1=0x1e; //片选个位
P0=~Gewei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Shiwei;//显示十位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
};break;
case 4://闹钟控制
{
if((!A1)||(!A2))
{
delay(10000);
if((!A1)||(!A2))j++;
if(j==2)
j=0;
}
switch (j)
{
case 0:{
P1=0x1e; //片选个位
P0=~0x71; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~0x71;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=~0x3f; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~0x40; //显示千位
delay(300); //短暂延时
delay(300);
};break;
case 1:{
P1=0x1e; //片选个位
P0=~0x37; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~0x3f;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=0xff; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~0x40; //显示千位
delay(300); //短暂延时
delay(300);
}
}
};break;
case 5://闹铃分钟调整
{
{
P1=0x1e;
P0=Naoling3;
delay(300);
P1=0x1d;
P0=Naoling4;
delay(300);
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
}
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
alarmminute++;if(alarmminute==61)alarmminute=0;
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
alarmminute--;if(alarmminute==255)alarmminute=59;
}
}
}
};break;
case 6://闹铃小时调整
{
{
P1=0x1b;
P0=Naoling1;
delay(300);
P1=0x17;
P0=Naoling2;
delay(300);
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
}
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
alarmhour++;if(alarmhour==24)alarmhour=0;
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
alarmhour--;if(alarmhour==255)alarmhour=23;
}
}
};break;
default :break;
}
}
}
}
大尾巴喵姬
相关资料:多功能数字钟设计 一 简介时钟, 自从它发明的那天起,就成为人类的朋友,但随着时间的推移,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。本方案设计的多功能电子钟除了传统的显示时间功能之外还可以测试温度、电网频率、电压、并提供了过压报警、非接触止闹等功能。其中温度采用AD590温度传感器电路测得,非接触止闹则采用红外控制技术实现。二 方案论证时钟模块方案 方案一 基本门电路搭建 用基本门电路来实现数字钟,电路结构复杂,故障系数大,不易调试。 方案二 单片机编程 用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单、调试也相对方便。与第一种方案比较优点是非常明显的。我们选择了第二种方案测温模块方案 方案一 热电阻测温 热电阻测量温度,精度和灵敏度都可以,但是它的电阻值与温度的线性关系不好.不便用数字的方法处理。 方案二 热电偶测温 热电偶是温度测量中应用最广泛的一种传感器 .在一般的测量和控制中,常用于中高温的温度检测.在 测量中需要温度的冷端补偿,在数字电子中实现不方便 方案三 AD590加运算放大器 二端式半导体温度传感器 AD590的工作电压要求不高,测温的范围比较宽最重要的是它的输出电流是紧随温度变化的电流源,所以它的线性非常好.我们选择了这种方案。测电压模块方案 方案一 取样测试。用高速的取样电压取样,可得电压的峰值与主频率,并根据其电压大小进行相应的报警操作。此方案功能实现复杂,造价相对较高,不适合一般的家用。方案二 测得电压有效值 测电压的有效值的方法比较简单,可以把一段时间内的电压的整体情况反映出来 ,但不能测出电压的瞬时变化的情况,对电网的突然冲击不能测出.方案三 测得峰值推得有效值。交流电经过整流滤波后得到直流电压大小就是交流电的峰值,分压测出此电压大小,后根据交流电有效值和峰值的关系可推得有效值。这种方案采用的电路简单,实现方便,易于调试,精度较高, 为我们的设计采用。非接触止闹模块方案 方案一 声音止闹声音代替肢体给人带来了很大便利,但是要采用声控装置不得不考虑外界噪声对正常声音信号带来的干扰,而这一点又很难控制,因此虽然声控方便,但在这里不太适用所以割舍。方案二 红外止闹红外控制技术现在已被广泛地应用到各个领域,此技术有其独特的特点,首先操作方便抗干扰性好、探测灵敏度高、工作湿度范围宽设计电路有不太复杂,造价也不高,由于这些特点我们选用了红外遥控来止闹。显示模块方案 方案一 段码显示。段码显示需要专门的驱动,增大了硬件电路,调试不易。而且用段码表示不够直观,因此不采用这种方案 方案二 单片机控制液晶显示。控制部分集成在单片机内软件调试,硬件集成度大,为本方案所采用。综上所述得到以下方块图:三 各模块功能单片机控制显示部分:液晶显示片上显示时间、电压、温度,键盘控制,键盘如下图所示:调节 ↑ 闹铃 ↓ 闹铃键用来设置闹铃,闹铃响时按下闹铃键可用来止闹,平时闹铃键可用来设置闹铃的开关,闹铃关时按下此键闹铃功能将被打开,反之闹铃功能将被关闭。需要调节时间时,按动调节按钮,显示片上需要设置的时间值以闪烁的方式出现,以示区别,表示当前调节内容,再次按动,跳至下个需要设置的时间值,我们可以通过切换选择我们需要调整的时间部分,然后按“上”“下”按钮进行设定。其中时钟部分以二十四或十二小时(AM/PM)制显示。 此外单片机还控制温度和电压的测量,通过测温端和测电压端输出的电压,由相应的函数关系求得被测端的被测参数,然后显示在液晶显示屏上.测温部分原理方块图:温度检测电路的设计,电路图如下:测温元件使用温度传感器AD590。A/D590在0℃时输出的电流I=273 uA,温度T每增加1℃,I增加1u A。输出的电压变化为:Δv=1uA×R2系统要求电压变化范围在0—5伏,可解得R2<,设计中R2采用了52K的电阻。当温度为-10摄氏度时,要求输出电压尽量接近于0 V,U0=(It-Vcc/R1) ×R2=0由上述公式,得R1约为56k,本设计中取R1=转换及显示电路的设计。本设计中所采用的单片机内置十位A/D转换器,显示电路也是通过编程单片机控制,控制程序见附录。 电压测量及欠压过压报警电压测试电路如下:交流电经变压器后,经半波整流后分压测得电压。电路图如下: 在变压器的中线上引出15v的交流电压,经过二极管以后相当滤掉了 负向电压。当电压从峰值下降到一定程度时,电容C1开始放电。取R3*C1>60ns,电阻上得到约等于交流电峰值的直流电压,分压后测得输出电压,有电路连接和交流电峰值、有效值的关系,把三极管的基极接到单片机的一个控制口上,控制电容放电,保证每次的采样结果的正确性,也可以防止放电电流对电源的影响。由于我们已经知道现在用的是标准的电源,所以我们可以用电源的有效值计算出电压的最大值用于电压的上下限的报警。我们用计数器接在J2 J3两端,通过每分钟计的的高电平或低电平个数就可以得出电网的频率。非接触止闹:我们用红外控制技术控制闹钟的关闭。发射电路如下图其中38khz方波发生电路由555接成,经74ls08后由三极管驱动两个发光二极管,当按钮按下时,发出控制光线。接收电路如下图所示:当接收到红外信号时,OUT端产生低电平信号,传到控制端,实现止闹功能。单片机控制系统原理图如下: 控制系统主要由单片机应用电路、存储器接口电路、LCD显示接口电路、键盘电路、模拟量输入输出接口电路、供电电路及程序下载和调试接口电路组成。其中单片机应用电路是系统工作的核心,它主要负责控制各个部分协调工作.由于系统构成接口较多,为了更好的组织各个功能部件正常工作,我们选用功能强大的AVR单片机作为主控CPU.它集各种存储器(FLASH,RAM,EEPROM)、模拟器件(A/D转换器,模拟比较器)于一体,同时还集成了各种总线控制器等数字通信器件,是真正的片上系统(SOC).由于本系统涉及各种数字和模拟电子器件的应用,因此使用此单片机作为本系统的主控CPU,使开发速度大大提高。四 系统调试过程与测试结果本实验需要调试的主要有两部分:温度测试部分的调试和电压测试部分的调试温度测试部分实验数据如下 温度T(℃) 理论AD590输出电流(uA) 理论电压值Ut (V) 实际电压值Uo (V) 0 273 10 283 20 293 30 303 40 313 50 323 60 333 70 343 100 373 表中AD590输出理论电流值由AD590本身的性质决定,理论电压输出则由仿真软件仿真计算得到。可以看出,理论电压和实际电压有明显的差别,实际输出电压高于理论算得的电压值,经不断分析测试可作如下总结:由于系统本身工作产生热量,使得AD590所测温度高于环境温度,但可以看出,实际电压值与温度依然呈线性关系变化,于是对测得数据进行一元线性回归处理,用最小二乘法求得此线性关系的斜率和初象,得到输出电压与温度变化之间的函数变化关系如下:T=(100Uo-64)/ 在所得式中代入测得数据计算,其误差都不超过1摄氏度,可验证所得式的正确性。将此公式写入单片机控制程序中,就可以根据输入的电压变化得到相应的温度值。电压调试部分:测输入交流电压和输出交流电压的值,调10K电位器,市的交流输入为15是电压在到3V之间。保持电位器不变化,测得输入输出电压关系,得出相应函数关系。输入电压为十五伏时一边调电位器,一边观察输出电压。接入输出电压的电阻为时输出电压在要求范围。这时测输入电压输出电压值如下表: 输入经变压器后的交流电压Ui’ (v) 输出直流电压Uo (v) 3 15 由表中数据可得以下结论:输入和输出约成正比变化,而经变压器后的电流是原电流的3/22,在由上述关系可得Vi=Vo*测试过程中,经变压器后的交流电压和输出的直流电压线性关系符合得很好,上式作为最后的结果被写在程序中.五 结束语这款多功能计数器采用了现在广泛使用用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用大屏幕液晶显示、红外遥控装置和电压报警装置使人机交互简便易行,较为有效地完成了题目的要求。其他相关:仅供参考,请自借鉴希望对您有帮助
吕鹤是谁
1. EDA教学实验设计实例——电子秒表电路的设计 被引次数:1次 艾明晶 金惠华 文献来自:仪器仪表学报 2001年 第S2期 MAX+PLUS开发系统本文详细介绍了一个 EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想 ,对电子秒表电路的核心芯片——计时控制芯片进行设计 ,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种 EDA软件平台——美国 Altera公司的 M ... 2. EDA教学实验设计实例——电子秒表电路的设计 艾明晶 金惠华 文献来自:中国仪器仪表学会第三届青年学术会议论文集(下) 2001年 第总第期 北京 100083本文详细介绍了一个EDA教学实验的设计实例——电子秒表电路的设计。作者采用顶层图形设计的思想,对电子秒表电路的核心芯片——计时控制芯片进行设计,并介绍了在设计中所解决的各个关键问题。本文使用目前流行的一种EDA软件平台——美国Altera公司的MAX+PL ... 3. 风扇电子定时器设计一例 仇德明 潘裕明 文献来自:家电科技 1987年 第03期 秒表:金雀电子秒表,上海手 表五厂产 现将以上5个样机试验结果进行分析,以便对本电路按理论计算式所得的定时时间T的置信度作一讨论:由于影响T的因素较多,如电容漏电流的离散性、不稳定性、门电路闭值电平vT。的差异 ... 本文介绍一种以数字电路为主兼顾成本与质量两者关系的三小时电子定时电路,具有一定的实用性。 ... 4. 实用多功能电子时钟设计 被引次数:1次 翟玉文 徐宏亮 艾学忠 王庆伟 赵岩 文献来自:吉林化工学院学报 2001年 第01期 通过按键可进行电子时钟与电子秒表功能的切换 ,可对电子时钟的显示内容、时间对时、闹钟定时等功能进行设定和对电子秒表开始计时、暂?... 动态显示介绍一种以AT89C5 1单片机为核心的实用多功能电子时钟设计 .该时钟具有年、月、日、星期、时、分、秒显示和整点音乐报时及定时闹钟等功能 ,也可作电子秒表使?... 5. 数字秒表的实验设计 邹华 文献来自:潍坊教育学院学报 1997年 第01期 、(图二J这样整个数字秒表就设计出来了。从电路图上可以看出,所用器件都比较简单,除有一定实用价值外,作为一个学生实验来做,既可系统地巩固所学知识,又有利于理论联系实际,实践证明,效果很好。39数字秒表的实验设计@邹华<正>秒表是一种 ... 6. 简易电子钟的设计 王韧 俞斌 文献来自:电子世界 2005年 第07期 仅通过程序设计,即可为电子钟增加年、月、日、星期以及闹铃、秒表等功能。◆图4图5图6图7简易电子钟的设计@王韧$湖南工学院电气与信息工程系 @俞斌$湖南工学院电气与信息工程?... 7. 用电子秒表取代打点计时器 朱成标 文献来自:物理实验 1995年 第03期 连接外接微动开关的引线aa'与bb'和电子秒表的连接方法如图2所示.aa'与相连的开关ANI、KZ相当于电子秒表按钮M,对电子秒表有复位/中间计时的控制作用 ... 电子秒表即可获得相应的计时控制信号.二、电子秒表的实验计时方法电子秒表用于实验计时有三种计时方法,即同步计时、中途一次计时、中途二物理实验第15卷第8期次计时 ... 8. 语音智能电子体温计设计 支长义 程志平 焦留成 文献来自:微计算机信息 2007年 第07期 450002河南郑州$郑州大学电气工程学院根据设计要求,以SPCE061A新型单片机为基础,通过对温度采样信号分析研究,给出了语音智能电子体温计设计电路,测试结果表明,该电路较为理想。SPCE061A单片机 ... 9. 电子秒表自动计时的研究 谢志堃 文献来自:绍兴文理学院学报 2004年 第10期 并用这个信号去控制电子秒表的触发端,以实现电子秒表自动起、停的计时功能.1电子秒表的自动计时研究 电子秒表具有分段计时的功能,因此可以用来测量运动物体经过某段距离的时间间隔 ... 通过对电子秒表的研究发现,从电子秒表的触发方式来看,只需对计时触发端提供一个电压就可以对电子秒表加以控制,实现自动计时的功能 ... 希望以上资料对你有帮助!
一篇完整的论文,题目,摘要(中英文),目录,正文(引言,正文,结语),致谢,参考文献。规定的格式,字体,段落,页眉页脚,开始写之前,都得清楚的,你的论文算是写好
推荐你去淘宝的:翰林书店,店主应该能下载到这类论文。我去下过,很及时的
一.课题意义:温度是工业中非常关键的一项物理量,在农业、工业、各种高新技术的开发和研究中也是一个非常普遍和常用的测量参数。目前,随着信息技术的发展,传感技术的广
电子证据立法研究论文参考文献 参考文献:[1]刘品新。中国电子证据立法研究[M].北京:中国人民大学出版社2005:6.
本科毕业论文开题报告要求多少字,这个并没有统一的规定,具体多少要看学校的要求了。一般来说,毕业论文的开题报告都是要在1000字以上的。当然这个数据也只是仅供作者