文档库 最新最全的文档下载
当前位置:文档库 › C语言模拟时钟转动课设报告-附代码

C语言模拟时钟转动课设报告-附代码

C语言模拟时钟转动课设报告-附代码
C语言模拟时钟转动课设报告-附代码

模拟时针转动程序

姓名:

学号:

完成日期:2012年12月

设计目的

加深对讲授内容的理解,尤其是一些语法规定。通过课程设计,自然地、熟练地掌握。熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。学会上机调试程序。熟悉C语言图形模式下的编程,掌握利用C语言相关函数开发电子时钟的基本原理。

能模拟机械钟表行走;要准确地利用数字显示时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致。

总体设计

电子时钟的功能描述

电子时钟流程图

模块描述

动画处理模块在屏幕上显示sin和cos型的动态函数图像,显示运动的问候语。

转时针动处理模块指针式的时钟表盘为椭圆形并且圆周上有分布均匀的12个刻度刻度显示清楚钟面上有长度不相同的指针即时针、分针、秒针指针的运动具有规律性为顺时针。

数字时钟处理模块数字钟显示时间的格式是年月日时分秒小时为24进制, 分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步且两个时钟所显示的时间与计算机的系统时间一致。

详细设计

time结构体

strume time

{

usigned char ti_min;

usigned char ti_hour;

usigned char ti_hud;

usigned char ti_sec;

};

time 结构体定义在dos.h文件中,可以保存系统的当前时间。

全局变量

double h,m,s;这三个变量分别保存小时,分钟,秒。

double x,y,x1,y1,x2,y2;保存数字时钟中小时分钟秒在屏幕中显示的位置。

struct time t[1];定义一个time结构类型的数组。

函数功能的描述

1.def()

函数原型: void def()

def()函数是用来输出一组彩带的,通过输入位置和颜色的变化来输出sin型的彩带,且在整个函数中保留结果。

2. abc()

函数原型: void abc()

abc()函数是用来在退出系统是输出运动的问候语,函数类型单一且比较简单。

3 .digitclock()

函数原型:void digitclock()

digitclock函数用于在(x,y)位置显示clock值,clock值为时分秒。

4. clockhandle()

函数原型:void clockhandle()

clockhandle()函数用于完成时针转动和数字时钟的显示,包括时针转动角度的运算,还有对声音的输出。

5 . main()

函数原型: void main()

main()函数是主函数,既包括绘画表盘的基本框架,又有对其他函数的调用。

函数测试与调试

在函数编写完成后,进行过多次测试。在测试过程中遇到很多的问题,像数字时钟的显示位置与理想中的有偏差,转动时针移动后痕迹不能清除。这些问题通过对clockhandle()的调整得到了很好的解决。

还有就是在动画处理上运动时间的间隔和遇到路程的测试遇到了问题,但最后通过查阅资料都得到了解决。

源程序清单

#include

#include

#include

#include

#include

#include

#define PI 3.1415926

#define ESC 0x11b

#define step 10

/*函数声明*/

int digithour(double);

int digitmin(double);

int digitsec(double);

void digitclock(int,int,int);

void clockhandle();

void abc();

void def();

double h,m,s,day,mon;

double x,x1,x2,y,y1,y2;

struct time t[1];

/*主函数*/

main()

{

int driver,mode=0,i,j;

driver=DETECT; /*自动检测显示设备*/ initgraph(&driver,&mode,""); /*初始化图形系统 */ setlinestyle(0,0,3);

setbkcolor(0);

/*画主体框架的边线*/

setcolor(12);

line(82,430,558,430);

line(70,62,70,418);

line(82,50,558,50);

line(570,62,570,418);

line(70,62,570,62);

line(76,56,295,56);

line(342,56,564,56);

/*画主体框架的边角弧线*/

setlinestyle(0,0,3);

arc(82,62,90,180,12);

setlinestyle(0,0,3);

arc(558,62,0,90,12);

setlinestyle(0,0,3);

arc(82,418,180,279,12);

setlinestyle(0,0,3);

arc(558,418,270,360,12);

setlinestyle(0,0,7);

setcolor(9);

outtextxy(301,53,"CLOCK");

setcolor(15);

outtextxy(299,53,"CLOCK"); /*显示标题*/

setcolor(9);

rectangle(342,72,560,380); /*绘制矩形时钟框架 */

setwritemode(0); /*规定划线的方式(将所画位置的原来信息覆盖)*/

setcolor(13);

outtextxy(405,75,"BeiJing Shijian");

/*绘制电子时钟的边框*/

setlinestyle(0,0,1);

setcolor(7);

line(392,310,510,310);

line(392,330,510,330);

arc(392,320,90,270,10);

arc(510,320,270,90,10);

/*绘制数字时钟的分隔符*/

setcolor(5);

for(i=431;i<=470;i+=39)

for(j=317;j<=324;j+=7){

setlinestyle(0,0,3);

circle(i,j,1);

}

/*绘制表示小时的圆点*/

for(i=0,m=0,h=0;i<=11;i++,h++){

x=100*sin((h*60+m)/360*PI)+451;

y=200-100*cos((h*60+m)/360*PI);

setlinestyle(0,0,3);

setcolor(5);

circle(x,y,1);

}

/*绘制表示分针或秒针的圆点*/

setcolor(3);

for(i=0,m=0;i<=59;m++,i++){

x=100*sin(m/30*PI)+451;

y=200-100*cos(m/30*PI);

setlinestyle(0,0,1);

circle(x,y,1);

}

setlinestyle(0,0,5);

setcolor(5);

outtextxy(110,90,"Name :Li Jianli"); outtextxy(110,105,"Xuehao:12020326"); setcolor(10);

outtextxy(108,90,"Name");

outtextxy(108,105,"Xuehao");

setcolor(14);

outtextxy(180,410,"Press Esc to change windows!");

def();

clockhandle(); /*开始调用时针处理程序*/

abc();

closegraph(); /*关闭图形函数*/

return 0;

}

/*时针处理函数*/

void clockhandle()

{

int k=0,n=0;

setcolor(15);

gettime(t); /*获取系统时间*/ h=t[0].ti_hour;

m=t[0].ti_min;

x=50*sin((h*60+m)/360*PI)+451; /*时针的x坐标值*/ y=200-50*cos((h*60+m)/360*PI); /*时针的y坐标值*/ line(451,200,x,y);

x1=80*sin(m/30*PI)+451; /*分针的x坐标值*/ y1=200-80*cos(m/30*PI); /*分针的y坐标值*/ line(451,200,x1,y1);

/*在数字时钟中显示时间*/

digitclock(408,318,digithour(h));

digitclock(446,318,digitmin(m));

setwritemode(1); /*设置图形方式下划线输出模式*/ for(;k!=ESC;){

setcolor(12);

/*声音处理*/

sound(500); /*以频率为500Hz打开PC扬声器*/ delay(700); /*发一个500Hz的音调,维持700毫秒*/

sound(200);

delay(300);

nosound(); /*关闭PC扬声器*/

s=t[0].ti_sec;

m=t[0].ti_min;

h=t[0].ti_hour;

x2=98*sin(s/30*PI)+451; /*秒针的x坐标值*/

y2=200-98*cos(s/30*PI); /*秒针的y坐标值*/

line(451,200,x2,y2);

/*运动的问候语*/

setfillstyle(0,2);

bar(100,115,320,150);

setcolor(4);

settextstyle(1,0,99);

outtextxy(101+n*5,140,"Welcome!");

n=n+1;

if(n>28) n=0;

/*利用此循环,延时一秒*/

while(t[0].ti_sec==s&&t[0].ti_min==m&&t[0].ti_hour==h) { gettime(t);

if(bioskey(1)!=0){

k=bioskey(0);

}

}

/*数字时钟的秒针*/

setcolor(15);

digitclock(485,318,digitsec(s)+1);

/*用原来的颜色在原来位置再绘制秒针,清除当前秒针*/ setcolor(12);

x2=98*sin(s/30*PI)+451;

y2=200-98*cos(s/30*PI);

line(451,200,x2,y2);

/*分针处理*/

if(t[0].ti_min!=m){

/*消除当前分针*/

setcolor(15);

x1=80*sin(m/30*PI)+451;

y1=200-80*cos(m/30*PI);

line(451,200,x1,y1);

/*绘制新的分针*/

m=t[0].ti_min;

digitclock(446,318,digitmin(m)); /*在数字时钟中显示新的钟值*/

x1=80*sin(m/30*PI)+451;

y1=200-80*cos(m/30*PI);

line(451,200,x1,y1);

}

/*小时处理*/

if((t[0].ti_hour*60+t[0].ti_min)!=(h*60+m)){

/*消除当前时针*/

setcolor(15);

x=50*sin((h*60+m)/360*PI)+451;

y=200-50*cos((h*60+m)/360*PI);

line(451,200,x,y);

/*绘制新的时针*/

h=t[0].ti_hour;

digitclock(408,318,digithour(h));

x=50*sin((h*60+m)/360*PI)+451;

y=200-50*cos((h*60+m)/360*PI);

line(451,200,x,y);

}

}

}

/*在指定位置显示数字时钟*/

void digitclock(int x,int y,int clock)

{char bufferl[10];

setfillstyle(0,2);

bar(x,y,x+15,328); /*画一个二维码*/

if(clock==60) clock=0;

sprintf(bufferl,"%d",clock);

outtextxy(x,y,bufferl);

}

/*将double型的小时数转换成int型*/ int digithour(double h)

{ int i;

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

{if(h==i) return i;}

}

/*将double型的分针数转换成int型*/ int digitmin(double m)

{int i;

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

{if(m==i) return i;}

}

/*将double型的秒钟数转换成int型*/ int digitsec(double s)

{int i;

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

{if(s==i) return i;}

}

/*滚动的字幕*/

void abc()

{

int n,size,q=0;

static int startx=5;

static int starty=10;

setbkcolor(1);

while(q<10)

{

q=q+1;

for(n=1;n<=35;n++)

{

cleardevice();

setcolor(2);

setlinestyle(0,0,1);

setfillstyle(1,10);

rectangle(startx+n*step,starty+n*step,startx+n*step+160,start

y+n*step+80); /*绘制矩形*/

floodfill(startx+n*step+10,starty+n*step+20,2);

settextstyle(1,0,20);

outtextxy(startx+40+n*step,starty+n*step+40,"Thank you!"); delay(6e10);

}

}

}

/*绘画彩带函数*/

void def()

{

double a;

int d,e,color=1;

for (a=75;a<=300;a+=1)

{

setcolor(color);

/*计算划线位置*/

d=220+30*cos(a/47.75 );

e=200+30*sin(a/47.75-PI/2);

line(a,d,a+30,d);

line(a,e,a+30,e);

setcolor(color+5);

line(a,d+90,a+30,d+90);

line(a,e+90,a+30,e+90);

delay(10000);

color++;

if(color>15)

color=1;

}

getch();

}

运行结果

电子时钟的初运行状态

电子时钟的转动与运行

退出电子时钟

小结

通过这次的编程训练,让我对C语言有了更好的理解,在学习生活的同时能够更好的去利用这门课程。

实时时钟设计实验报告

实验报告

源代码: #pragma sfr //使用特殊功能寄存器 #pragma EI //开中断 #pragma DI //关中断 #pragma access //使用绝对地址指令 #pragma interrupt INTTM000 Time //定义时间中断函数为Time #pragma interrupt INTKR OnKeyPress //定义按键中断为OnKeyPress #pragma interrupt INTP5 OnKeyOver //定义INT中断为OnKeyOver void Init_Led(); void InitKey_INTKR(); void Init_Lcd(); void Init_Inter(); void LightOneLed(unsigned char ucNum); void LightOff(); int Count_Day(int month); char i=0; //定义变量i,是切换时间的标志 int key=0; //定义key=0 int temp=1; //用于存放当前月的天数 int temp1=1; int second=0; //默认的秒second=0 int minute=0; //默认的分minute=0 int hour=12; //默认的时hour=12 int day=1; //默认的天day=1 int month=5; //默认的月month=5 int year=2014; //默认的年year=2014 int c_hour=1; //默认的闹钟时=1 int c_minute=1; //默认的闹钟分=1 int buffs[2]; //秒的数码显示缓存区 int buffm[2]; //分的数码显示缓存区 int buffh[2]; //时的数码显示缓存区 int buffday[2]; //天的数码显示缓存区 int buffmonth[2]; //月的数码显示缓存区 int buffyear[4]; //年的数码显示缓存区 int buffmd[4]; //月,天的数码显示缓存区 int buffhm[4]; //时,分的数码显示缓存区 int buffms[4]; //分,秒的数码显示缓存区 int buffch[2]; //闹钟时的数码显示缓存区 int buffcm[2]; //闹钟分的数码显示缓存区 unsigned char Que = 0; //INT中断中间变量 int LCD_num[10]={0X070d,0x0600,0x030e,0x070a,0x0603,0x050b,0x050f,0x0700,0x070f,0x070b};// 数字0~~9的显示码 unsigned char Scond; //…………………………延时函数1……………………// void Delay(int k){ i nt i,j; f or(i=0;i

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

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

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

实时时钟实验报告

嵌入式系统开发实验报告 实验四:实时时钟实验 班级:应电112 姓名:张志可 学号: 110415151 指导教师:李静 实验日期: 2013年9月25日

实验四:实时时钟实验 一、实验目的 1. 了解实时时钟的硬件控制原理及设计方法。 2. 掌握 S3C2410X 处理器的 RTC 模块程序设计方法。 二、实验设备 硬件:Embest ARM 教学实验系统,ULINK USB-JTAG 仿真器套件,PC 机。 软件:MDK 集成开发环境,Windows 98/2000/NT/XP。 三、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的 RTC,还有大容量的存储器、温度传感器和 A/D 数据采集通道等,已成为集 RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如 I2C、SPI、MICROWIRE 和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C2410X 实时时钟(RTC)单元 S3C2410X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。 四、实验内容 学习和掌握 Embest ARM 教学实验平台中 RTC 模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用 EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。

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);

数字电子时钟实验报告

华大计科学院 数字逻辑课程设计说明书 题目:多功能数字钟 专业:计算机科学与技术 班级:网络工程1班 姓名:刘群 学号: 1125111023 完成日期:2013-9

一、设计题目与要求 设计题目:多功能数字钟 设计要求: 1.准确计时,以数字形式显示时、分、秒的时间。 2.小时的计时可以为“12翻1”或“23翻0”的形式。 3.可以进行时、分、秒时间的校正。 二、设计原理及其框图 1.数字钟的构成 数字钟实际上是一个对标准频率 1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。图 1 所示为数字钟的一般构成框图。 图1 数字电子时钟方案框图

⑴多谐振荡器电路 多谐振荡器电路给数字钟提供一个频率1Hz 的信号,可保证数字钟的走时准确及稳定。 ⑵时间计数器电路 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成。其中秒个位和秒十位计数器、分个位和分十位计数器为60 进制计数器。而根据设计要求,时个位和时十位计数器为24 进制计数器。 ⑶译码驱动电路 译码驱动电路将计数器输出的8421BCD 码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。 ⑷数码管 数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。本设计提供的为LED数码管。 2.数字钟的工作原理 ⑴多谐振荡器电路 555 定时器与电阻R1、R2,电容C1、C2 构成一个多谐振荡器,利用电容的充放电来调节输出V0,产生矩形脉冲波作为时钟信号,因为是数字钟,所以应选择的电阻电容值使频率为1HZ。 ⑵时间计数单元 六片74LS90 芯片构成计数电路,按时间进制从右到左构成从低位向高位的进位电路,并通过译码显示。在六位LED 七段显示起上显示

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

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书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进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

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

目录 1、引言·3 2、总体设计·4 3、详细设计·5 3.1硬件设计·5 3.2软件设计·10 4、实验结果分析·26 5、心得体会·27 6、参考文献·27

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机 AT89C51

1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

大连理工大学数字电路课程设计报告:多功能数字时钟设计

大连理工大学本科实验报告题目:多功能数字时钟设计 课程名称:数字电路与系统课程设计 学院(系):信息与通信工程学院 专业:电子信息工程 班级: 学生姓名: 学号: 完成日期:2014年7月16日 2014 年7 月16 日

题目:多功能数字时钟设计 1 设计要求 1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能; 2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒); 3) 具有整点报时功能,从00分00秒起,亮灯十秒钟; 4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零; 5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒; 6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。 2 设计分析及系统方案设计 2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。 2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。 具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。 进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒内未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。 从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。 2.3多功能数字钟的秒表功能部分:计时范围从00分00.00秒至59分59.99秒。可由复位键0异步清零,并由开关1控制计时开始与停止。 将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示 2.4多功能数字钟的闹钟功能部分:进入闹钟功能模式后,通过按键2(设定小时)和按键1(设定分钟)设定闹钟时间,当按下按键一秒内未松手时,可进行快速设定时间。当时钟进入闹钟设定的时间(判断时钟的时信号时针,分针分别与闹钟设定的时信号时针、分针是否相等),则以LED灯连续亮10秒钟进行提示,并由开关0控制闹钟的开和关。 2.5 多功能数字钟的倒计时功能部分:可通过按键3(设定分针)和按键2(设定秒针)设定倒计时开始,当按下按键一秒内未松手时,可进行快速设定时间。当没有手动时间设定时,系统默认为60秒倒计时。倒计时的时钟与数字钟的时钟相同,每迎到一个1s时钟上升

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

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

C语言模拟时钟转动课程设计报告

《C语言程序设计》 课 程 设 计 报 告 题目:模拟时钟转动程序 班级: 组别: 组员: 指导教师:

目录 第一章课程设计的题目 (2) 1.1 C语言课程设计的题目 (2) 第二章课程设计的要求 (2) 2.1 C语言课程设计的要求 (2) 第三章课程设计的目的 (2) 3.1 C语言课程设计的目的 (2) 第四章课程设计的内容 (3) 4.1 C语言课程设计的程序清单和注释 (3) 第五章课程设计的运行结果 (7) 5.1 C语言课程设计的运行结果 (7) 第六章课程设计的结果分析 (8) 6.1 C语言课程设计的结果分析 (8) 第七章课程设计的心得体

会 (9) 7.1 C语言课程设计的心得体会 (9) 模拟时钟转动程序 第一章课程设计的题目 1.1 C语言课程设计的题目 本次为期两周的课程设计的题目为设计一个模拟时钟转动的程序。 第二章课程设计的要求 2.1 C语言课程设计的要求 能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。

第三章课程设计的目的 3.1 C语言课程设计的目的 加深对讲授内容的理解,尤其是一些语法规定。通过课程设计,自然地、熟练地掌握。熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。学会上机调试程序。 第四章课程设计的内容 4.1 C语言课程设计的程序清单和注释 模拟时钟转动程序清单+注释 #include //包含窗口头文件 #include //头文件,包含了一些数学计算的函数 #define TWOPI (2*3.14159) #define IDTIMER 1 //计时器ID #define ANGLE TWOPI/360 //2PI LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam ); //回调函数 Int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow ) // 应用启动函数mian { TCHAR szClassName[] = TEXT("analogCloc"); MSG msg; //定义消息 HWND hwnd; //窗口句柄 WNDCLASS wndclass; //系统支持结构,定义并初始化窗口结构 wndclass.cbClsExtra = 0; //窗口类无扩展 wndclass.cbWndExtra = 0; //窗口势力无扩展 wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH); //窗口背景为白色 wndclass.hCursor = NULL;

数字时钟实验报告

单片机 数字时钟设计 实训报告 系别 专业 姓名 学号

摘要 单片机是把中央处理器CPU,随即存取存储器RAM,只读存储器ROM,定时器/计数器以及输入/输出即I/O接口电路等主要计算机部件,集成在一块集成电路上的微机。虽然只是一个芯片,但从组成和功能上来看,已具备微型系统的属性。单片机的发展经历了4个阶段,其向着低功耗CMOS化,微型单片化,主流与多品种共存的方向发展。单片机在工业自动化,仪器仪表,家用电器,信息和通讯产品及军事方面得到了广泛应用。另外,其发展前景不错。 本次实训以设计制作数字时钟为例,来加深我们对单片机特性和功能的了解,加强我们的编程思想。为今后从事单片机程序产品的开发,打下了良好的理论与实践基础。理论服务于实践,将知识转化为能力,也是本次试训的另一个重要目的。

目录 一、整体设计方案 (3) 1. 方案设计要求 (3) 2. 方案设计与论证 (3) 3. 整体设计框图 (4) 二、数字时钟的硬件设计 (4) 1. 最小系统设计 (4) 2. LED显示电路 (8) 3. 键盘控制电路 (9) 4. 数字时钟的原理图 (10) 三、数字时钟的软件设计 (11) 1. 系统软件设计流程图 (11) 2. 数字时钟主程序 (14) 四、调试与仿真 (18) 1. 数字时钟系统PROTUES仿真 (18) 2. 软件与硬件调试 (19) 3. 系统性能测试与功能说明 (19) 4. 出现问题及解决 (19) 五、实验结论 (20) 六、心得体会 (21) 附录:1.原器件清单 (22) 2.参考文献 (22)

一、整体方案设计 1. 方案设计要求 设计制作一个数字时钟,要求能实现基本走时,并以数字形式显示时、分、秒;采用24小时制;能校时、校分、校秒;也可以添加其他功能. 2. 方案设计与论证 方案一: 采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。 方案二: 采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。 方案三: 采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。 经过综合考虑成本问题以及他人接受程度,选择第三种方案实现设计要求。

多功能数字钟实验报告

《多功能数字钟电路的设计、制作》 课程设计报告 班级:(兴) 2008级自动化 姓名:胡荣 学号:2008960623 指导教师:刘勇 2010年11月13日

目录 一、设计目的.................................1 二、设计内容及要求...........................1 三、总设计原理...............................1 四、主要元件及设备...........................2 五、单元电路的设计...........................5 1、数字电子计时器组成原理.................5 2、用74LS160实现12进制计数器..............6 3、校时电路...............................7 4、时基电路设计...........................8 六、设计总电路图.............................8 七、设计结果及其分析.........................8 八、设计过程中的问题及解决方案...............9 九、心得体会.................................9 十、附录.....................................10

多功能数字钟电路设计 一、设计目的 通过课程设计要实现以下两个目标:一、初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;二、课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让我们开始从理论学习的轨道上逐渐引向实际方面,运用已学过的分析和设计电路的理论知识,逐步掌握工程设计的步骤和方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。 二、设计内容及要求 1、功能要求: ①基本功能: 以数字形式显示时、分、秒的时间,小时计数器的计时要求为“12翻1”,并要求能手动快校时、快校分或慢校时、慢校分。 ②扩展功能: 定时控制,其时间自定;仿广播电台正点报时—自动报正点时数。 2、设计步骤与要求: ①拟定数字钟电路的组成框图,要求先实现电路的基本功能,后扩展功能,使用的器件少,成本低; ②设计各单元电路,并用Multisim软件仿真; ③在通用电路板上安装电路,只要求显示时分; ④测试数字钟系统的逻辑功能; ⑤写出设计报告。设计报告要求:写出详细地设计过程(含数字钟系统的整机逻辑电路图)、调试步骤、测试结果及心得体会。 三、总设计原理 数字电子钟原理是一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。 四、主要元件及设备 1、给定的主要器件: 74LS00(4片),74LS160(4片)或74LS161(4片),74LS04(2片),74LS20(2片),74LS48(4片),数码管BS202(4只),555(1片),开关(1个),电阻47k(2个)电容10uF(1个)10nF(1个) 各元件引脚图如下图:

数字时钟设计实验报告

电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路与校时电路构成电路。 秒时钟信号发生器可由振荡器与分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时与分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器就是数字电子钟的核心部分,它的精度与稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一就是产生标准秒脉冲信号,一就是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数与进位功能。利用74LS161与74LS11设计6进制计数器显示秒的十位 ,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0

模拟时钟转动程序课程设计报告

《高级语言》课程设计 课题名称模拟时钟转动程序 学院信息工程专业网络工程地点 D507 学生姓名钟都华学号 13046130 开课时间 2013 至 2014 学年第 2 学期 同组人李卓 成绩

一、课程设计的目的和要求 1.课程设计的目的 本程序旨在训练读者的基本编程能力,使读者熟悉C语言图形模式下的编程。本程序中涉及时间结构体、数组、绘图等方面的知识。通过本程序的训练,使读者能对C 语言有一个更深刻的了解,掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。 2.课程设计的要求 能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确的利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。 二、设计 如下图,此电子时钟主要由以下4个功能模块组成。 1.界面显示模块 电子时钟界面显示在调用时钟运行处理之前完成,在这里主要调用了C语言图形系统函数和自负屏幕处理函数画出时钟程序的主界面。主界面包括类似Windows自带的电子时钟的界面和帮助界面两部冯。电子时钟界面包括一个模拟时钟运转的钟表和一个显示时间的数字钟表。在帮助界面中,主要包括一些按键的操作说明。 2.按键控制模块 按键控制模块主要完成两大部分功能。第一,读取用户按键的键值。第二,通过对键盘按键值得判断,执行相应的操作,如光标移动、修改时间。 3.时钟动画处理模块 在时钟动画处理模块中,它通过对相关条件的判断和时钟坐标值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟时钟运转的功能。

多功能数字时钟实验报告

重庆交通大学 开放性实验报告 (A类) 项目名称:多功能数字钟电路设计专业班级:电子2班 学生姓名:何昕泽 小组成员:何聪、范瑞

目录 多功能数字时钟设计 (3) 摘要 (3) 1.系统原理框图 (4) 2.单元电路设计与仿真 (5) 2.1时间脉冲产生电路 (5) 2.2时间计数器电路 (6) 2.3 十二与二十四小时的切换 (8) 2.4校时电路 (8) 2.5报时电路 (9) 2.6电路总图 (9) 3.PCB板的制作 (10) 3.1 原理图的绘制 (10) 3.2 PCB的制作 (11) 3.3 PCB图 (12) 4.心得与体会 (12) 附录原件清单 (13) 附件1 仿真电路图.......................................... 错误!未定义书签。附件2 电路原理图.......................................... 错误!未定义书签。附件3 PCB图............................................... 错误!未定义书签。

多功能数字时钟设计 摘要 数字电子钟实际上是一个对标准频率(1Hz)进行计数的计数电路。 由振荡电路形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果以“时”、“分”、“秒”的数字显示出来。秒计数器电路计满60 后触发分计数器电路,分计数器电路计满60 后触发时计数器电路,当计满24 小时后又开始下一轮的循环计数。 一般由振荡电路、计数器、数码显示器等几部分组成。 振荡电路:主要用来产生时间标准信号,由NE555 组成的多谐振电路产生,但是因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以一般采用石英晶体振荡器。 分频器:因为振荡器产生的标准信号频率很高,要是要得到“秒”信号,需一定级数的分频器进行分频。 计数器:有了“秒”信号,则可以根据60 秒为 1 分,24 小时为1 天的进制,分别设定“时”、“分”、“秒”的计数器,分别为60 进制,60 进制,24 进制计数器,并输出一分,一小时的进位信号。 校时器:由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路可以对分和时进行校时。 报时器:计时过程要具有报时功能,当时间到达整点前10 秒开始,蜂鸣器开始鸣叫。

数字万年历简易C语言程序源代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit rs=P2^0; // lcd 控制端 sbit en=P2^2; // lcd 控制端 sbit all=P2^1; // lcd 控制端 sbit s0=P1^5; //时间调节 sbit s1=P1^6; sbit s2=P1^7; sbit voice=P2^7; int nt; sbit DQ=P2^6; sbit DS1302_CLK = P2^3; //实时时钟时钟线引脚sbit DS1302_IO = P2^4; //实时时钟数据线引脚sbit DS1302_RST = P2^5; //实时时钟复位线引脚sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; unsigned char time; #define ads_y 0 #define ads_mo 3 #define ads_d 6 #define ads_w 9 #define ads_h 65 #define ads_m 68 #define ads_s 71 #define DS1302_SECOND 0x80 //写入ds地址宏定义 #define DS1302_MINUTE 0x82 #define DS1302_HOUR 0x84 #define DS1302_WEEK 0x8A #define DS1302_DAY0x86 #define DS1302_MONTH 0x88 #define DS1302_YEAR 0x8C

【精】数字时钟实验报告

一.指标要求: 1.显示时、分、秒。.采用24小时制。 2.具有校时功能,可以对小时和分单独校时,对分校时的时候,停止分向小 时进位。校时时钟源可以手动输入或借用电路中的时钟。 3.为了保证计时准确、稳定,由晶体振荡器提供标准时间的基准信号。二.设计计算: 1.总体方案设计:数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。用六片74LS248D和六片74LS161D芯片实现数字电子时钟的设计。 具体设计如下: 首先秒的设计,它为六十进制 , 即显示 00—59 秒,它的个位为十进制,十位为六进制。对于个位而言,当信号从0000—1001时采用反馈清0法进行清0,同时向十位产生一个进位。与此同时,当十位从0000—0101时,也采用反馈清零法清0,然后重新开始下一循环。分的设计同秒相同,通过级联(用与非门的输出结果控制分的时钟信号)实现秒向分的进位。小时的设计为二十四进制计数器 ,显示为 00—23, 个位仍为十进制,但当十进位计到 2,而个位计到4时清零,就为二十四进制了,也同样通过级联(同秒向分的进位)实现分向时的进位。整个过程通过而实现显示秒向分进位,分向时进位,从时、分、秒。

2.单元电路设计: 1、秒脉冲发生器 数字钟实际上是一个对标准频率(1HZ)迚行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。秒脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,本实验为了得到稳定的连续脉冲,我们选用了有极高的频率稳定性的石英晶体多谐振荡器。采用石英晶体多谐振荡器发出频率很大的脉冲。当今 不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。

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

目录 第一部分设计任务和要求 1.1单片机课程设计内 容 (2) 1.2单片机课程设计要求………………………………………………… 2 1.3系统运行流程………………………………………………………… 2 第二部分设计方案 2.1 总体设计方案说明 (2) 2.2 系统方框图 (3) 2.3 系统流程图 (3) 第三部分主要器材及基本简介 3.1 主要器材 (4) 3.2 主要器材简介 (4) 第四部分系统硬件设计 4.1 最小系统 (6) 4.2 LCD显示电路 (6) 4.3 键盘输入电路 (7) 4.4 蜂鸣器和LED灯电路 (7)

第五部分仿真电路图与仿真结果 (8) 第六部分课程设计总结 (8) 第七部分参考文献 (9) 附录A 实物图 附录B 系统源程序 第一部分设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序

用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。第二部分设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图

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