当前位置:文档之家› 钟表源程序代码

钟表源程序代码

钟表源程序代码
钟表源程序代码

钟表源程序代码

采用了easyx图形库

作者:转角梦覃飞絮

#include

#include

#include

#include

#include

#define PI 3.1415926

//自定义函数声明

void draw_biaozhen(int x,int y,int second,int minute,int hour);//画表针函数

void numbertime(int year,int month,int day,char week,int second,int minute,int hour);//显示数字时间

void draw_biaopan(int x,int y);//画表盘

void huaxian(); //画心形线

void main()

{

initgraph(640,480);

srand((unsigned)time(NULL));

int x=320,y=240; //设定表盘圆心位置

SYSTEMTIME time; //定义变量保存当前时间

//画心形线

outtextxy(20,40,"稍后进入钟表界面...");

huaxian();

cleardevice();

setwritemode(R2_XORPEN); //设置XOR绘图模式

//画表盘

draw_biaopan( x, y);

while(!kbhit()){ //有用户键就退出

GetLocalTime(&time);

numbertime(time.wYear ,time.wMonth,time.wDay ,time.wDayOfWeek ,time.wSecond ,time. wMinute,time.wHour);

//画指针

draw_biaozhen(x,y,time.wSecond ,time.wMinute ,time.wHour );

Sleep(1000);

//擦表针

draw_biaozhen(x,y,time.wSecond ,time.wMinute ,time.wHour );

//实现随机色文字

setcolor(RGB(rand()%255,rand()%255,rand()%255));

outtextxy(285,320," 笨蛋");

setfont(80,0,"宋体");

outtextxy(40,80,"开");

outtextxy(40,330,"心");

outtextxy(520,80,"快");

outtextxy(520,330,"乐");

setfont(0,0,"宋体");

}

closegraph();

}

//画表针函数

void draw_biaozhen(int x,int y,int second,int minute,int hour)

{

double a_sec,a_min,a_hour; //定义秒分时表针的弧度

int x_sec,y_sec,x_min,y_min,x_hour,y_hour; //定义秒分时表针末端位置//计算表针弧度

a_sec=second*2*PI/60;

a_min=minute*2*PI/60+a_sec/60;

a_hour=hour*2*PI/12+a_min/12;

//计算表针末端位置

x_sec=(int)(x+120*sin(a_sec));

y_sec=(int)(y-120*cos(a_sec));

x_min=(int)(x+80*sin(a_min));

y_min=(int)(y-80*cos(a_min));

x_hour=(int)(x+60*sin(a_hour));

y_hour=(int)(y-60*cos(a_hour));

//画秒针

setlinestyle(PS_SOLID,NULL,1);

setcolor(YELLOW);

line(x,y,x_sec,y_sec);

//画分针

setlinestyle(PS_SOLID,NULL,3);

setcolor(LIGHTGRAY);

line(x,y,x_min,y_min);

//画分针

setlinestyle(PS_SOLID,NULL,5);

setcolor(BLUE);

line(x,y,x_hour,y_hour);

}

//显示数字时间函数

void numbertime(int year,int month,int day,char week,int second,int minute,int hour)

{

char str[50];//用来存储时间字符

sprintf(str,"当前时间:%d年%d月%d日星期%d %d :%d :%d ",year,month,day,week,hour,minute,second);

setcolor(BLUE);

outtextxy(20,20,str);

outtextxy(20,40,"按任意键退出程序...");

}

// 画表盘函数

void draw_biaopan(int x,int y)

{

int x1,y1,x2,y2,x3,y3,x4,y4,r=150;

setcolor(RED);

circle(x,y,38);

circle(x,y,2);

setlinestyle(PS_SOLID,NULL,2);

circle(x,y,150);

for(int i=0;i<6;i++) //12个刻度

{

setcolor(YELLOW);

x1=x+(int)(r*cos(2*PI*i/12));

y1=y-(int)(r*sin(2*PI*i/12));

x2=x+(int)(0.94*r*cos(2*PI*i/12));

y2=y-(int)(0.94*r*sin(2*PI*i/12));

x3=x+(int)(r*cos(2*PI*i/12+PI));

y3=y-(int)(r*sin(2*PI*i/12+PI));

x4=x+(int)(0.94*r*cos(2*PI*i/12+PI));

y4=y-(int)(0.94*r*sin(2*PI*i/12+PI));

line(x1,y1,x2,y2);line(x3,y3,x4,y4);

}

for(i=0;i<30;i++) //其他的小刻度

{

setcolor(RED);

x1=x+(int)(r*cos(2*PI*i/60));

y1=y-(int)(r*sin(2*PI*i/60));

x2=x+(int)(0.97*r*cos(2*PI*i/60));

y2=y-(int)(0.97*r*sin(2*PI*i/60));

x3=x+(int)(r*cos(2*PI*i/60+PI));

y3=y-(int)(r*sin(2*PI*i/60+PI));

x4=x+(int)(0.97*r*cos(2*PI*i/60+PI));

y4=y-(int)(0.97*r*sin(2*PI*i/60+PI));

line(x1,y1,x2,y2);line(x3,y3,x4,y4);

}

setcolor(LIGHTRED);

outtextxy(316,368,"6");

outtextxy(312,98,"12");

outtextxy(185,232,"9");

outtextxy(450,232,"3");

}

//画心型线函数

void huaxian()

{

double x1, y1, r1;

while(!MouseHit()){

for(int k=0;k<=3;k++){

setcolor(RGB(rand()%255, rand()%255, rand()%255));

for(int i=0; i<90; i++) {

for (int j=0; j<90; j++) {

r1 = PI/45 * i * (1 - sin(PI/45 * j)) * 18;

x1 = r1 * cos(PI/45 * j) * sin(PI/45 * i) + 320;

y1 = -r1 * sin(PI/45 * j) + 120;

// 画圆

fillcircle((int) x1, (int) y1, 1);

}

Sleep(30);

}

// 画完后暂停1秒

Sleep(1000);

}

} }

电子时钟课程设计.

单片机实训课题电子时钟 班级11电气本1班学号4110211140 姓名陈后亥 指导教师叶文通 日期2013.12.30~2014.1.3

摘要 随着时代的进步,越来越多的电子厂品趋向于低成本,高性能,耐用性好的方向发展。特别是趋向于自动化控制的方向走。89c51作为控制芯片是最好不过的选择啦。它具有强大的功能,并且简单易于操作,安全性与稳定性较高,价格便宜,适合中小型电子厂品开发中的控制器。就像我们的课程设计,基于89c51单片机的电子时钟的课程设计。 这款课程设计用到的主要材料有89c51单片机,1602液晶显示屏,矩阵键盘,以及一些电容电阻元件等等。 使用89c51作为电子时钟的控制器很简单,就是由于其经济型与稳定性和易操作性。显示电路上,选择使用1602液晶显示屏上。1602不仅操作上臂数码管简单许多,而且使用1602能在很大程度上是电路图尽量简化,便于操作与错误的检修。并且1602价格也比较便宜。 基于89c51电子时钟的设计,利用了单片机内部的一个自带定时/计数器来实现定时功能,并通过内部程序,实现对时分秒,年月日这几个输出数值的自增,并且通过编写程序,实现通过键盘控制时分秒,年月日大小的调整,这是必要的功能。最后通过1602液晶显示电路将时间显示在其上。 这样的电子时钟比较精准,其主要误差来源与晶振的误差,即使是这样,他的误差也只是微妙级别,对于日常生活中的时间计数是足够的。 关键词:89c51单片机;1602液晶显示屏;矩阵键盘;keil软件

目录摘要 1单片机简介 1.1 单片机概述 1.2 单片机基本结构 21602液晶显示屏简介 1.11602显示原理 1.21602指令集合 3 电子时钟硬件设计 3.1 功能框图 3.2 单片机复位与晶振电路 3.3 1602显示电路 3.4 总体电路设计 4 电子时钟软件设计 4.1 程序流程框图 4.2 程序源代码 参考文献 致谢

数字时钟正确代码

module clock(CLK,RST,EN,S1,S2,spk,HOURH,HOURL,MINH,MINL,SECH,SECL); input CLK,RST,EN,S1,S2; output spk; output[3:0] HOURH,HOURL,MINH,MINL,SECH,SECL; reg spk; reg[3:0] SECL,SECH,MINL,MINH,HOURL,HOURH; always @(posedge CLK or negedge RST) if(!RST) begin SECL<=0;SECH<=0;MINL<=0;MINH<=0;HOURL<=0;HOURH<=0; end //系统复位 else if(EN) //EN为低电平时时钟暂停 begin if(!S1) //调节小时 begin if(HOURL==9) begin HOURL<=0; HOURH<=HOURH+1; end

else begin if(HOURH==2&&HOURL==3) begin HOURL<=0;HOURH<=0; end else HOURL<=HOURL+1; end end else if(!S2) //调节分钟 begin if(MINL==9) begin MINL<=0; if(MINH==5) MINH<=0; else MINH<=MINH+1; end

else MINL<=MINL+1; end else if(SECL==9) //时钟正常跳动状态 begin SECL<=0; if(SECH==5) begin SECH<=0; if(MINL==9) begin MINL<=0; if(MINH==5) begin MINH<=0;

单片机电子时钟程序

程序开始 ORG 0000H AJMP MAIN ORG 000BH AJMP CLOCK ORG 0100H 主程序开始: MAIN: MOV SP,#70H MOV 6EH,#00H ;显示缓存器初始值设定 MOV 6DH,#00H MOV 6CH,#00H MOV 6BH,#00H MOV 6AH,#00H MOV 69H,#00H MOV 50H,#00H ;秒,分,小时初始值设定 MOV 51H,#00H MOV 52H,#00H MOV DPTR,#0F003H ;8255端口定义,PA,PB为输出 MOV A,#80H MOVX @DPTR,A MOV 4FH,#00H MOV TMOD,#01H ;定时器T0及TL0,TH0初始值设定 MOV TH0,#3CH MOV TL0,#0B0H SETB EA ;开总中断 SETB ET0 ;开定时器中断 SETB TR0 循环程序开始,并显示时间: START: MOV A,50H LCALL BCD MOV 6AH,A ;显示秒十位 MOV 69H,B ;显示秒个位 MOV A,51H LCALL BCD MOV 6CH,A ;显示分十位 MOV 6BH,B ;显示分个位 MOV A,52H LCALL BCD ;调用十六进制至BCD码转换子程序 MOV 6EH,A MOV 6DH,B LCALL DIS ;调用显示子程序 LCALL KEY ;调用键盘子程序 AJMP START ;主程序结束

BCD: MOV B,#0AH ;BCD码转换子程序 DIV AB RET CLOCK: PUSH ACC ;保护现场 PUSH PSW CLR TR0 MOV TH0,#3CH ;定时参数重新设置 MOV TL0,#0B0H SETB TR0 INC 4FH ;100ms单元加1 MOV A,4FH CJNE A,#0AH,D0 ;100ms单元=10,就秒单元加1 MOV 4FH,#00H ;100ms单元内容清0 MOV A,50H ADD A,#01H ;秒单元加1 MOV 50H,A CJNE A,#3CH,D0 ;秒单元内容=60,则秒单元清0 MOV 50H,#00H MOV A,51H ;分,时单元代码 ADD A,#01H MOV 51H,A CJNE A,#3CH,D0 MOV 51H,#00H MOV A,52H ADD A,#01H LCALL RING ;报警子程序 MOV 52H,A CJNE A,#18H,D0 MOV 52H,#00H D0: POP PSW ;出栈,退出中断子程序 POP ACC RETI RING: MOV R3,A CLR P1.0 LCALL DELL50 SETB P1.0 LCALL DELL50 DJNZ R3,RING RET 键盘子程序: KEY: JB P1.7,MSET ;秒设定子程序 LCALL DELL ;防抖动延时 JB P1.7,MSET INC 50H

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

时钟flash代码

精美的时钟 我们用Flash来制作一个精美的小时钟,你可以把它拖到电脑屏幕的一角,使工作中的你可以方便的查看当前时间. 1. 首先启动Flash,新建一个影片,设置影片舞台大小和背景颜色。 2. 首先制作时钟里的时针.新建一个影片剪辑元件,命名为hours,进入元件的编辑区后,使用矩形工具绘制一个细长的无边框的矩形,填充色为灰色,颜色代码为#999999。(做好后,应竖直摆放,居中,下端对齐中心,分针、秒针元件照此行事。) 3. 然后制作时钟里的分针.新建一个影片剪辑元件,命名为minutes,进入元件的编辑区后,使用矩形工具绘制一个细长的无边框的矩形,填充色为深灰色,颜色代码为#666666。 4. 最后制作时钟里的秒针.新建一个影片剪辑元件,命名为seconds,进入元件的编辑区后,使用矩形工具绘制一个细长的无边框的矩形,填充色为红色,颜色代码为#FF0000。 5. 新建一个图形元件,命名为outeregde,进入元件的编辑区后,使用前面实例中介绍的方法制作一个圆环,填充色为灰色,颜色代码为#999999,用作时钟的边框。 6. 回到主场景中,将影片默认的图层Layer1重命名为outeredge,然后将元件outeregde拖到舞台上,调整其位置到舞台的中央. 7. 新建一个图层numbers,使用文本工具分别输入从1到12这12个数字,并绕着时钟边框排列其位置。 8. 新建一个图层clockhands,分别将元件Hours, minutes和Seconds拖到场景中,然后使用椭圆工具绘制一个黑色无边框的正圆,将其放置在表盘的中心,然后分别将时针,分针和秒针放到表盘的中心,使三个表针的下部和中心位置对齐。 9. 最后添加一个图层命名为Action,设置控制时钟运行的Action脚本. (其余各图层均延至第二帧) 在第1帧添加如下Action: time = new Date();// 定义time为Date日期对象 hours = time.getHours();// 取得当前系统的小时,并赋给变量hours minutes = time.getMinutes();// 取得当前系统的分钟,并赋给变量minutes seconds = time.getSeconds();// 取得当前系统的秒钟,并赋给变量seconds if (hours>12) {

51 数字时钟 89C52 单片机C语言程序

数字时钟89C52 单片机C语言程序 STC89C52| /************** 【数字时钟】****************/ /****【功能】1、时间显示2、秒表3、闹钟4、日期显示都可以设置****/ #include /*包含器件配置文件*/ #define uchar unsigned char /*宏定义字符型数据整型数据*/ #define uint unsigned int uchar code H[] = {0x0f, 0x07, 0x0b, 0x0d, 0x0e}; /*按键【P3】端口断码用于按键*/ char Code[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; /*显示【0 1 2 3 4 5 6 7 8 9】数字的数码管的段码*/ uchar code C[] = {0x0, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F}; /*列扫描控制LED1位2位3位4位5位6位7位8位*/ uchar MON[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; uchar A; uchar BIN=0; /* 【BIN】作为倒计时开始的标志*/ uchar hour = 0; /* 定义[时][分][秒] */ uchar min = 0; uchar sec = 0; uint shi=12; uint fen=30; uchar Mmin=0; uchar Msec=30; uchar M0=0; uchar m=0; uchar year=9; uchar month=7; uchar month2; uchar day=19; uchar set1 = 1; /* set1=1 是调节时分秒set1=2时时调节年月日set=3时事调节闹钟*/ uchar set2 = 1; /* set2=1时是调节【时】位set2=2时事调节【分】位*/ uint x = 0; /* x 每【0.01s】自加一*/ void Delay(uint k);

电子课课程设计电子钟

南航数字电子技术课程设计报告 题目:数字钟的设计与制作 学年:06学年学期:第二学期 专业:机械工程及自动化 班级:0504107 学号姓名:李晓云 吉晶晶 时间:2006年6月30日— 2006年7月3日 数字电子技术课程设计报告 一、设计目的 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 因此,我们此次设计与制作数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.

二、设计内容及要求 (1)设计指标 ①由晶振电路产生1HZ标准秒信号; ②分、秒为00~59六十进制计数器; ③时为00~23二十四进制计数器; ④周显示从1~日为七进制计数器; ⑤具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时 间; ⑥整点具有报时功能,当时间到达整点前鸣叫五次低音(500HZ),整点 时再鸣叫一次高音(1000HZ)。 (2)设计要求 ①画出电路原理图(或仿真电路图); ②元器件及参数选择; ③电路仿真与调试。 (3)制作要求自行装配和调试,并能发现问题和解决问题。 (4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。 三、原理框图 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。数字电子钟的总体图如图(1)所示。由图

模拟时钟源代码

void CTest13_4Doc::m_TickAdd() { this->m_sec ++; if(this->m_sec == 60) { this->m_min ++; this->m_sec = 0; } if(this->m_min == 60) { this->m_hour ++; this->m_min = 0; } if(this->m_hour>= 12) { this->m_hour -= 12; } } void CTest13_4Doc::M_MoveClockHands() { intpx, py; double degree; //设置秒针的终点坐标 degree = this->m_sec * 6 - 90; px = cos((degree/180.0)*PI)* sLen + 250; py = sin((degree/180)*PI)* sLen + 250; this->m_secEndPoint.x = px; this->m_secEndPoint.y= py; //设置分针的终点坐标 degree = this->m_min * 6 - 90; px = cos((degree/180.0)*PI) * mLen + 250; py = sin((degree/180)*PI) * mLen + 250; this->m_minEndPoint.x = px; this->m_minEndPoint.y = py; //设置时针的终点坐标 degree = this->m_hour * 30 - 90; px = cos((degree/180.0)*PI) * hLen + 250; py = sin((degree/180.0)*PI) * hLen + 250; this->m_hourEndPoint.x = px;

电子时钟单片机【完整版】

烟台南山学院 单片机课程设计题目电子时钟 姓名: 所在学院 所学专业: 班级: 学号: 指导教师: 完成时间:

随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。 由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。 在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。实验证明效果良好,可以投入使用。 本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS—51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。在本学期的开始我们进行了计算机工程实践,在实践中我们以微机原理与接口技术课程中所学知识为基础,设计了电子时钟系统。本系统为多功能数字钟的系统。本设计以单片机AT89c51为控制核心,选用DS1302串行时钟芯片,RT1602液晶显示器实现液晶显示当前时间、日期、星期。本电子时钟具有日期、时、分、秒的显示、调整功能,采用的时间制式为24小时制,时间显示格式为时(十位、个位)、分(十位、个位)、秒(十位、个位)。 关键词:单片机 AT89S52 电子时钟汇编语言

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

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

电子时钟代码

西安邮电大学 硬件课程设计报告 院系名称:计算机学院 学生姓名:王哲 指导老师:杨锐 班级:0901 学号: 时间:

porta equ1400h portb equ1401h portc equ1402h portcontrol equ1403h timer0equ1440h timer1equ1441h timer2equ1442h timer_control equ1443h ;------------------------------------------------------------- data segment ledbuf db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码 datbuf db00h,00h,00h,00h;存放要显示4位 copybuf db00h,00h,00h,00h data ends ;-------------------------------------------------------------- code segment assume cs:code,ds:data ;--------------------------------------- start:mov ax,data mov ds,ax call read_cmos call p8254 mov dx,portcontrol;将8255设为A\B口输出,A为段码输出,B为位码输出 mov al,10000001B out dx,al ;--------------------------------------------------------------- loop2:call disp mov dx,1402h in al,dx mov bl,al and bl,02h test bl,02h jnz reset mov bh,al and bh,04h test bh,04h

8位数码管显示电子时钟c51单片机程序

8位数码管显示电子时钟c51单片机程序 时间:2012-09-10 13:52:26 来源:作者: /* 8位数码管显示时间格式05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char StrTab[8]; //定义缓冲区 unsigned char minute=19,hour=23,second; //定义并初始化为12:30:00 void delay(unsigned intt) { while(--cnt); } /******************************************************************/ /* 显示处理函数 */ /******************************************************************/ void Displaypro(void) { StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; } main()

电子时钟课程设计模板

电子时钟课程设计 电子时钟设计 一、课程设计目的和意义 掌握8255、 8259、 8253芯片使用方法和编程方法, 经过本次课程设计, 学以致用, 进一步理解所学的相关芯片的原理、内部结

构、使用方法等, 学会相关芯片实际应用及编程, 系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法, 掌握一般的设计步骤和流程, 使我们以后搞设计时逻辑更加清晰。 二、开发环境及设备 1、设计环境 PC机一台、 windows 98系统、实验箱、导线若干。 2、设计所用设备 8253定时器: 用于产生秒脉冲, 其输出信号可作为中断请示信号送IRQ2。 8255并口: 用做接口芯片, 和控制键相连。 8259中断控制器: 用于产生中断。 LED: 四个LED用于显示分: 秒值。 KK1或KK2键与K7键, 用于控制设置。 三、设计思想与原理 1、设计思想 在本系统设计的电子时钟以8088微处理器作为CPU, 用8253做定时计数器产生时钟频率, 8255做可编程并行接口显示时钟和控制键电路, 8259做中断控制器产生中断。在此系统中, 8253的功能是定时, 接入8253的CLK信号为周期性时钟信号。8253采用计数器0, 工作于方式2, 使8253的OUT0端输出周期性的负脉冲信

号。即每隔20ms, 8253的OUT0端就会输出一个负脉冲的信号, 此信号接8259的IR2, 当中断到50次数后, CPU即处理, 使液晶显示器上的时间发生变化。 其中8259只需初始化ICW1, 其功能是向8259表明IRx输入 是电瓶触发方式还是上升沿触发方式, 是单片8259还是多片8259。8259接收到信号后, 产生中断信号送CPU处理。 2、设计原理 利用实验台上提供的定时器8253和扩展板上提供的8259以 及控制键和数码显示电路, 设计一个电子时钟, 由8253中断定时, 控制键控制电子时钟的启停及初始值的预置。电子时钟的显示格 式MM: SS由左到右分别为分、秒, 最大记时59: 59超过这个时间分秒位都清零从00: 00重新开始。 基本工作原理: 每百分之一秒对百分之一秒寄存器的内容加一, 并依次对秒、分寄存器的内容加一, 四个数码管动态显示分、秒 的当前值。 三、设计所用芯片结构 1、 8259A芯片的内部结构及引脚 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路, 只需对8259A编程, 就能够管理8级中断, 并选择优先模式和中断请求方式, 即中断

单片机电子时钟课程设计设计报告

单片机电子时钟设计 一、作品功能介绍 该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。 功能介绍: (1)上电以后自动进入计时状态,起始于00:00:00。 (2)设计键盘调整时间,完成时间设计,并设置闹钟。 (3)定时时间为1/100秒,可采用定时器实现。 (4)采用LED数码管显示,时、分,秒采用数字显示。 (5)采用24小时制,具有方便的时间调校功能。 (6)具有时钟和秒表的切换功能。 使用方法: 开机后时钟在00:00:00起开始计时。 (1)长按P3.2进入调分状态:分单元闪烁,按P3.2加1,按P3.3减1.再长按P3.2进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。 (2)(2)按P3.3进入设定闹时状态: 12:00: ,可进行分设定,按P3.4分加1,再按P3.2为时调整,按P3.4时加1,按P3.3调闹钟结束.在闹铃时可按P3.2停闹,不按闹铃1分钟。 (3)按下P3.4进入秒表状态:再按P3.4秒表又启动,按P3.4暂停,再按P3.4秒表清零,按P3.4退出秒表回到时钟状态。 二、电路原理图 如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图 各个模块设计 1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机, 它完全兼容传统的8051,8031的指令系统,他的运行速度 要比8051快最高支持达33MHz的晶体震荡器,在此系统中 使用12MHz的晶振。 AT89S52具有以下标准功能: 8k字节Flash,256字节 RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三 个16 位定时器/计数器,一个6向量2级中断结构,全双 工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模 式下,CPU停止工作,允许RAM、定时器/计数器、串口、中 断继续工作。掉电保护方式下,RAM内容被保存,振荡器被

时钟代码及注释

HOUR EQU 36H MIN EQU 37H SEC EQU 38H CHOUR1 EQU 39H;定义3个闹钟的时分CMIN1 EQU 40H CHOUR2 EQU 41H CMIN2 EQU 42H CHOUR3 EQU 43H CMIN3 EQU 44H ORG 0000H;设定各个中断入口 LJMP MIAN ORG 0003H LJMP W AIZD0 ORG 000BH LJMP DINGSHI ORG 0030H MIAN:MOV TMOD,#02H;使用定时器模式2 MOV TH0,#06H;设定初值为250us MOV TL0,#06H SETB TR0 SETB EA;打开各个中断 SETB ET0 SETB EX0 SETB PT0;定时器0优先级最高 MOV HOUR,#0 MOV MIN,#0 MOV SEC,#0 MOV P0,#0FFH MOV CHOUR1,#6;闹钟1设置默认数值 MOV CMIN1,#0 MOV CHOUR2,#8;闹钟2设置默认数值 MOV CMIN2,#0 MOV CHOUR3,#14;闹钟3设置默认数值 MOV CMIN3,#0 D0: ACALL XIANSHISEC ACALL XIANSHIMIN ACALL XIANSHIHOUR ACALL JIANGE ACALL CLOCKZ AJMP D0;要循环扫描才能动态显示CLOCKZ:;闹钟的调用函数 MOV A,HOUR;闹钟一点判断

CJNE A,CHOUR1,CN2;判断小时到了没有小时 MOV A,MIN CJNE A,CMIN1,CN2;判断分钟到时没 SETB P3.4;开闹钟 ACALL DELAY CLR P3.4 CN2: MOV A,HOUR;闹钟2点判断 CJNE A,CHOUR2,CN3;判断小时到了没有小时 MOV A,MIN CJNE A,CMIN2,CN3;判断分钟到时没 SETB P3.4;开闹钟 ACALL DELAY CLR P3.4 CN3: MOV A,HOUR;闹钟2点判断 CJNE A,CHOUR3,CNO;判断小时到了没有小时 MOV A,MIN CJNE A,CMIN3,CNO;判断分钟到时没 SETB P3.4;开闹钟 ACALL DELAY CLR P3.4 CNO: RET SHUJU:INC 31H MOV R0,31H CJNE R0,#40,OUT0;时间达到10ms则执行下一行程序,否则返回OUT0 MOV 31H,#0 MOV R0,#0 INC 32H MOV R1,32H CJNE R1,#100,OUT0;时间达到1s则执行下一行程序,否则返回OUT0 MOV 32H,#0 MOV R1,#0 INC SEC MOV R2,SEC CJNE R2,#60,OUT0;时间达到60s则执行下一行程序,否则返回OUT0 MOV R2,#0 MOV SEC,#0 INC MIN MOV R3,MIN CJNE R3,#60,OUT0;时间达到60min则执行下一行程序,否则返回OUT0 MOV R3,#0 MOV MIN,#0 INC HOUR

电子时钟程序代码

#include #define uchar unsigned char #define uint unsigned int uchar code weixuan[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //位选,控制哪个数码管亮。(从右到左) uchar code duanxuan[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf, 0xff}; //0-9,'-','灭' uchar data timedata[3]={0x00,0x00,0x00}; //时间缓冲区,分别为:秒、时、分。 uchar data datetime[8]={0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xc0,0xc0}; //时间缓冲区,初始化显示00-00-00。 uchar tt1,tt2,tt,tt0,num=0; uchar flag,flag1,flag2,flash; sbit key1=P1^3; sbit key2=P1^5; sbit key3=P1^7; //**************延时函数********************************* void delay(uint del) { uchar i, j; for(i=0; i

电子时钟课程设计

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

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

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

时间代码

<SCRIPT language="javascript"> <!-- function initArray() { for(i=0;i<initArray.arguments.length;i++) this[i]=initArray.arguments[i]; } var isnMonths=new initArray("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"); var isnDays=new initArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"); today=new Date(); hrs=today.getHours(); min=today.getMinutes(); sec=today.getSeconds(); clckh=""+((hrs>12)?hrs-12:hrs); clckm=((min<10)?"0":"")+min;clcks=((sec<10)?"0":"")+sec; clck=(hrs>=12)?"下午":"上午"; var stnr=""; var ns="0123456789"; var a=""; function getFullYear(d) { yr=d.getYear();if(yr<1000) yr+=1900;return yr;} document.write("<table>"); //下面各行分别是一种风格,把不需要的删掉即可 document.write("<TR><TD>风格一:</TD><TD>"+isnDays[today.getDay()]+","+isnMonths[today.getMonth()]+""+tod ay.getDate()+"日,"+getFullYear(today)+"年"); document.write("<TR><TD>风格二:</TD><TD>"+clckh+":"+clckm+":"+clcks+""+clck+"</TD></TR>"); document.write("<TR><TD>风格三:</TD><TD>"+isnDays[today.getDay()]+","+isnMonths[today.getMonth()]+""+tod ay.getDate()+"日,"+getFullYear(today)+"年"+clckh+":"+clckm+":"+clcks+""+clck+"</TD></TR>"); document.write("<TR><TD>风格四:</TD><TD>"+(today.getMonth()+1)+"/"+today.getDate()+"/"+(getFullYear(today) +"").substring(2,4)+"</TD></TR>"); document.write("<TR><TD>风格五:</TD><TD>"+hrs+":"+clckm+":"+clcks+"</TD></TR>"); document.write("<TR><TD V ALIGN=TOP>风格

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