首页

毕业论文

首页 毕业论文 问题

双日历电子钟毕业论文

发布时间:

双日历电子钟毕业论文

数字电子钟设置成24小时制的操作方法如下: 按下复位键即可将数码电子钟设置成24小时制,按下上调键3秒种左右,此时可以进行12/24小时制的切换。 希望我的回答能够帮助到您哦。

电路图在我空间相册 : oo

找一下256正确宣示都亮的段,对比你的256那段没有宣示出来出来。应该就是那一段的引脚短路或者短路啦。。。

呵呵。我没有做过这个。要现在做。得花时间,不好意思。如果我有现成的。我肯定给你。急求数字电子钟逻辑电路设计

一点都没有,里面就是那么几个零件做的,没高压没高频,说白了,就是没有产生辐射的条件。除非你的东西外壳是铀做的(根本不可能)

基本功能:时间显示,在制作的过程中,你也会学到许多关于数字电路的知识,比如:计数器,译码器等。如果你是基于单片机的,是一个很好的单片机练习课题。

00h ajmp start 03h ajmp jia 0bh ajmp saomiao 13h ajmp jian 1bh ajmp jishu 2bh start: mov ie,#10001111b mov ip,#00000010b mov tmod,#00100010b mov th1,#6 mov tl1,#6 mov th0,#88h mov tl0,#88h setb it1 setb it0 mov r4,#11111110b mov sp,#30h mov 20h,#00h mov p3,#0ffh mov r0,#00h mov r1,#00h mov r2,#00h mov r3,#00h mov r5,#00h mov dptr,#table setb tr1 setb tr0 loop: mov a,r0 mov b,#40 div ab jz chuli mov r0,#00h inc r5 mov a,r5 mov b,#100 div ab jz chuli cpl mov r5,#00h inc r1 mov a,r1 cpl a mov p2,a cpl a mov b,#60 div ab jz chuli mov r1,#00h inc r2 mov a,r2 mov b,#60 div ab jz chuli mov r2,#00h inc r3 mov a,r3 mov b,#24 div ab jz chuli mov r3,#00h chuli: mov a,r2 mov b,#10 div ab mov 10h,b mov 11h,a mov a,r3 mov b,#10 div ab mov 12h,b mov 13h,a jb mov r1,#00h mov 87h,#01h ljmp loop jia: push a inc r2 mov a,r2 mov b,#60 div ab jz next1 mov r2,#00h next1: lcall ys clr ie0 pop a reti jian: push a inc r3 mov a,r3 mov b,#24 div ab jz next2 mov r3,#00h next2: lcall ys clr ie1 pop a reti jishu: inc r0 reti saomiao: push a mov a,r4 rl a mov p0,#0ffh d0: cjne a,#11111110b,d1 mov p1,a mov r4,a mov a,11h jnz zc mov a,r4 rl a mov p1,a zc: mov a,10h movc a,@a+dptr mov p0,a sjmp over d1: cjne a,#11111101b,d2 mov p1,a mov r4,a mov a,11h jz over movc a,@a+dptr mov p0,a sjmp over d2: cjne a,#11111011b,d3 mov p1,a mov r4,a mov a,12h movc a,@a+dptr mov p0,a mov c, mov sjmp over d3: cjne a,#11110111b,d4 mov p1,a mov r4,a mov a,13h jz over movc a,@a+dptr mov p0,a sjmp over d4: mov a,#11111110b ajmp d0 over: pop a reti ys: mov 14h,#0ffh a0: mov 15h,#0ffh a1: djnz 15h,a1 djnz 14h,a0 ret table: db 0c0h db 0f9h db 0a4h db 0b0h db 099h db 092h db 082h db 0f8h db 080h db 090h end

数字9是显示的,过了一秒再进位,中间一共过了10秒钟啊。

到中国知网论文数据库找,论文多,而且质量高。自己懒得找,可以去淘宝的(翰林书店)店铺看看,店主应该能帮你下载到这论文的

电子手表和数字电子钟,只是大小不一样,其功能都是大同小异的。

电子钟相关毕业设计 ·数字电子钟的电路设计 (字数:9242,页数:22 )·数字电子钟的设计与制作 (字数:8017,页数:22 )·数字钟的设计 (字数:6208,页数:21 )·基于8051单片机的数字钟 (字数:21638,页数:50)·基于单片机的电子时钟控制系统 (字数:7935,页数:42 )·数字电路数字钟设计 (字数:4846,页数:21 )·电子闹钟设计 (字数:4094,页数:19 )·定时闹钟设计 (字数:5714,页数:24 )·智能定时闹钟设计 (字数:3826,页数:18 )·下棋定时钟设计 (字数:5290,页数:24 )·多功能数字钟设计与制作 (字数:13129,页数:34)·基于单片机的电子钟设计 (字数:7710,页数:24 )·基于单片机的数字电子钟设计 (字数:10301,页数:42)·基于Labview的虚拟数字钟设计 (字数:17457,页数:32)·电子日历钟 (字数:10677,页数:33)·数字钟的设计与制作 (字数:4922,页数:23 )·单片机数字钟设计 (字数:15355,页数:47)·基于单片机的数字钟设计 (字数:12541,页数:27)·单片机定时闹钟设计 (字数:8450,页数:24 )·万年历可编程电子钟控电铃 (字数:14371.页数:41)·数字定时闹钟设计 (字数:7770,页数:28 )·基于EDA技术的数字电子钟设计 (字数:12247,页数:32)·多功能时钟打点系统设计 (字数:8353,页数:31 )·智能音乐闹钟设计 (字数:10002,页数:37)·基于AT89S51单片机的数字电子钟设计 (字数:14560,页数:39)

Computers have accelerated the transformation of the world's human pace, but it is after all bulky. SCM in this case was born. As of today, SCM application rapid development of technology, looking around us now in all spheres of life, from missiles, navigation equipment, to the various instruments on the aircraft control from a computer network communications and data transmission, industrial automation to real-time process control and data processing, and our lives extensive use of the smart card, electronic pets, which is inseparable from the microcontroller. Monolithic single-chip micro-computer or computer. (Single-Chip Microcomputer) is the set of CPU, RAM, ROM, the timing, number and variety of interface integrated microcontrollers. Its small size, low cost, high performance, which are widely used in smart industries, and industrial automation. And 51 Series SCM SCM is the most typical and the most representative one. The graduation design Through the study, and thereby achieve the study, design, development hardware and software capabilities. Based on a microcontroller based on the will to achieve timing, stopwatch, calendar, alarm clocks, and other functions of a multi-functional electronic clock design study, in detail, the computer application of data conversion, Principle LCD, keyboard scanning principle, SCM regularly interrupted principle. Thereby achieve studying and understanding the relevant directives SCM in all aspects of the application. By AT89S52 system, temperature detection chip, the clock chips, liquid crystal displays, memory, Regulators and electricity supply of components, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time temperature display. Also calculated with the calendar and clock, calendar calibration, regular hours and set the alarm function. The article attached circuit diagram, the PCB plans and procedures checklist for the reference of our readers. Due to limited, and it will inevitably be lighter inadequate, locations will give teachers and students correction and criticism. Keywords : stopwatch, alarm clock, calendar time

电子日历设计的毕业论文

到看一下吧,这里有讲解51单片机的

昨天才把我的毕业论文删掉。。

电子信息工程大学毕业论文 (张清卓)从21世纪开始,无线传感器网络就开始引起了学术界,军事界和工业界的极大关注。美国和欧洲相继启动了许多关于无线传感器网络的研究计划。随着科学技术的迅猛发展,人类目前已经置身于信息时代,信息的获取是实现信息化的前提,获取物理家门口满怀欣喜的一种重要工具就是传感器。无线传感器网络是当前国际上备受关注的,由多学高度交叉的新兴研究热点领域⑴它综合了传感器技术,嵌入式计算技术及无线通信技术等三大技术,能够通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式所感知信息传送到用户终端。 无线传感器网络可以用于监控温度,湿度,压力,土壤构成,噪声,机械应力等多种环境条件,使用户可以深入的了解和把我周围的世界。无线传感器网络的随机布设,自组织,环境适应等特点使其在军事国防,环境监测,生物医疗,抢先去救灾以及商业应用等领域具有广阔的应用前景,和很高的应用价值⑵。当然,在空进搜索和灾难拯救等特殊领域,无线传感器网络也有其得天独厚的技术优势。

#include<>#include""#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;//flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)sbit rs=P1^0;sbit en=P1^2;sbit rw=P1^1; //如果硬件上rw接地,就不用写这句和后面的rw=0了sbit led=P3^7; //LCD背光开关//DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P2^2;sbit SCLK=P2^1;sbit RST=P2^2;sbit ACC0=ACC^0;sbit ACC7=ACC^7;/************************************************************ACC累加器= 就是ACC的第0位。Acc可以位寻址。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************///校时按键与C51的引脚连接定义sbit key1=P2^4; //设置键sbit key2=P2^5; //加键sbit key3=P2^6; //减键sbit buzzer=P2^0;//蜂鸣器,通过三极管9012驱动,端口低电平响/**************************************************************/uchar code tab1[]={"20 - - "}; //年显示的固定字符uchar code tab2[]={" : : "};//时间显示的固定字符//延时函数,后面经常调用void delay(uint xms)//延时函数,有参函数{ uint x,y; for(x=xms;x>0;x--) for(y=120;y>0;y--);}/********液晶写入指令函数与写入数据函数,以后可调用**************//*在这个程序中,液晶写入有关函数会在DS1302的函数中调用,所以液晶程序要放在前面*/write_1602com(uchar com)//****液晶写入指令函数****{ rs=0;//数据/指令选择置为指令 rw=0; //读写选择置为写 P0=com;//送入数据 delay(1); en=1;//拉高使能端,为制造有效的下降沿做准备 delay(1); en=0;//en由高变低,产生下降沿,液晶执行命令}write_1602dat(uchar dat)//***液晶写入数据函数****{ rs=1;//数据/指令选择置为数据 rw=0; //读写选择置为写 P0=dat;//送入数据 delay(1); en=1; //en置高电平,为制造下降沿做准备 delay(1); en=0; //en由高变低,产生下降沿,液晶执行命令}lcd_init()//***液晶初始化函数****{ write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);//开显示不显示光标 write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示 write_1602com(yh+1);//日历显示固定符号从第一行第1个位置之后开始显示 for(a=0;a<14;a++) { write_1602dat(tab1[a]);//向液晶屏写日历显示的固定符号部分 //delay(3); } write_1602com(er+2);//时间显示固定符号写入位置,从第2个位置后开始显示 for(a=0;a<8;a++) { write_1602dat(tab2[a]);//写显示时间固定符号,两个冒号 //delay(3); }}/*********************over***********************//***************DS1302有关子函数********************/void write_byte(uchar dat)//写一个字节{ ACC=dat; RST=1; for(a=8;a>0;a--) { IO=ACC0; SCLK=0; SCLK=1; ACC=ACC>>1; }}uchar read_byte()//读一个字节{ RST=1; for(a=8;a>0;a--) { ACC7=IO; SCLK=1; SCLK=0; ACC=ACC>>1; } return (ACC);}//----------------------------------------void write_1302(uchar add,uchar dat)//向1302芯片写函数,指定写入地址,数据{ RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0;}uchar read_1302(uchar add)//从1302读数据函数,指定读取数据来源地址{ uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp);}uchar BCD_Decimal(uchar bcd)//BCD码转十进制函数,输入BCD,返回十进制{ uchar Decimal; Decimal=bcd>>4; return(Decimal=Decimal*10+(bcd&=0x0F));}//--------------------------------------void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4){RST=0;SCLK=0;write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据12write_1302(0x8a,0x04);//向DS1302内写周寄存器8aH写入初始周数据4write_1302(0x86,0x07);//向DS1302内写日期寄存器86H写入初始日期数据07write_1302(0x88,0x01);//向DS1302内写月份寄存器88H写入初始月份数据01write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据10write_1302(0x8e,0x80); //打开写保护}//------------------------------------//温度显示子函数void write_temp(uchar add,uchar dat)//向LCD写温度数据,并指定显示位置{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0xdf);//显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码 write_1602dat(0x43); //显示"C"符号,0x43是液晶屏字符库里大写C的地址码 }//------------------------------------//时分秒显示子函数void write_sfm(uchar add,uchar dat)//向LCD写时分秒,有显示位置加、现示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(er+add);//er是头文件规定的值0x80+0x40 write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------//年月日显示子函数void write_nyr(uchar add,uchar dat)//向LCD写年月日,有显示位置加数、显示数据,两个参数{ uchar gw,sw; gw=dat%10;//取得个位数字 sw=dat/10;//取得十位数字 write_1602com(yh+add);//设定显示位置为第一个位置+add write_1602dat(0x30+sw);//数字+30得到该数字的LCD1602显示码 write_1602dat(0x30+gw);//数字+30得到该数字的LCD1602显示码 }//-------------------------------------------void write_week(uchar week)//写星期函数{ write_1602com(yh+0x0c);//星期字符的显示位置 switch(week) { case 1:write_1602dat('M');//星期数为1时,显示 write_1602dat('O'); write_1602dat('N'); break; case 2:write_1602dat('T');//星期数据为2时显示 write_1602dat('U'); write_1602dat('E'); break; case 3:write_1602dat('W');//星期数据为3时显示 write_1602dat('E'); write_1602dat('D'); break; case 4:write_1602dat('T');//星期数据为4是显示 write_1602dat('H'); write_1602dat('U'); break; case 5:write_1602dat('F');//星期数据为5时显示 write_1602dat('R'); write_1602dat('I'); break; case 6:write_1602dat('S');//星期数据为6时显示 write_1602dat('T'); write_1602dat('A'); break; case 7:write_1602dat('S');//星期数据为7时显示 write_1602dat('U'); write_1602dat('N'); break;}}//****************键盘扫描有关函数**********************void keyscan(){ if(key1==0)//---------------key1为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(key1==0)//延时后再次确认按键按下 { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key1); key1n++; if(key1n==9) key1n=1;//设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环 switch(key1n) { case 1: TR0=0;//关闭定时器 //TR1=0; write_1602com(er+0x09);//设置按键按动一次,秒位置显示光标 write_1602com(0x0f);//设置光标为闪烁 temp=(miao)/10*16+(miao)%10;//秒数据写入DS1302 write_1302(0x8e,0x00); write_1302(0x80,0x80|temp);//miao write_1302(0x8e,0x80); break; case 2: write_1602com(er+6);//按2次fen位置显示光标 //write_1602com(0x0f); break; case 3: write_1602com(er+3);//按动3次,shi //write_1602com(0x0f); break; case 4: write_1602com(yh+0x0e);//按动4次,week //write_1602com(0x0f); break; case 5: write_1602com(yh+0x0a);//按动5次,ri //write_1602com(0x0f); break; case 6: write_1602com(yh+0x07);//按动6次,yue //write_1602com(0x0f); break; case 7: write_1602com(yh+0x04);//按动7次,nian //write_1602com(0x0f); break; case 8: write_1602com(0x0c);//按动到第8次,设置光标不闪烁 TR0=1;//打开定时器 temp=(miao)/10*16+(miao)%10; write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);//miao数据写入DS1302 write_1302(0x8e,0x80); break; }} }//------------------------------加键key2---------------------------- if(key1n!=0)//当key1按下以下。再按以下键才有效(按键次数不等于零) { if(key2==0) //上调键 { delay(10); if(key2==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key2); switch(key1n) { case 1:miao++;//设置键按动1次,调秒 if(miao==60) miao=0;//秒超过59,再加1,就归零 write_sfm(0x08,miao);//令LCD在正确位置显示"加"设定好的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回 //write_1602com(0x0b); break; case 2:fen++; if(fen==60) fen=0; write_sfm(0x05,fen);//令LCD在正确位置显示"加"设定好的分数据 temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi++; if(shi==24) shi=0; write_sfm(2,shi);//令LCD在正确的位置显示"加"设定好的小时数据 temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week++; if(week==8) week=1; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri++; if(ri==32) ri=1; write_nyr(9,ri);//令LCD在正确的位置显示"加"设定好的日期数据 temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue++; if(yue==13) yue=1; write_nyr(6,yue);//令LCD在正确的位置显示"加"设定好的月份数据 temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian++; if(nian==100) nian=0; write_nyr(3,nian);//令LCD在正确的位置显示"加"设定好的年份数据 temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } //------------------减键key3,各句功能参照'加键'注释--------------- if(key3==0) { delay(10);//调延时,消抖动 if(key3==0) { buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!key3); switch(key1n) { case 1:miao--; if(miao==-1) miao=59;//秒数据减到-1时自动变成59 write_sfm(0x08,miao);//在LCD的正确位置显示改变后新的秒数 temp=(miao)/10*16+(miao)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 //write_1602com(0x0b); break; case 2:fen--; if(fen==-1) fen=59; write_sfm(5,fen); temp=(fen)/10*16+(fen)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi--; if(shi==-1) shi=23; write_sfm(2,shi); temp=(shi)/10*16+(shi)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 4:week--; if(week==0) week=7; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:ri--; if(ri==0) ri=31; write_nyr(9,ri); temp=(ri)/10*16+(ri)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 6:yue--; if(yue==0) yue=12; write_nyr(6,yue); temp=(yue)/10*16+(yue)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 7:nian--; if(nian==-1) nian=99; write_nyr(3,nian); temp=(nian)/10*16+(nian)%10;//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break;} } } }}//-------------------------------void init() //定时器、计数器设置函数{ TMOD=0x11; //指定定时/计数器的工作方式为3 TH0=0; //定时器T0的高四位=0 TL0=0; //定时器T0的低四位=0 EA=1; //系统允许有开放的中断 ET0=1; //允许T0中断 TR0=1; //开启中断,启动定时器}//*******************主函数**************************//***************************************************void main(){ lcd_init(); //调用液晶屏初始化子函数 ds1302_init(); //调用DS1302时钟的初始化子函数 init(); //调用定时计数器的设置子函数 led=0; //打开LCD的背光电源 buzzer=0;//蜂鸣器长响一次 delay(80); buzzer=1; while(1) //无限循环下面的语句: { keyscan(); //调用键盘扫描子函数 }}void timer0() interrupt 1 //取得并显示日历和时间{ //Init_DS18B20();//温度传感器DS18b2初始化子函数,在头文件中 flag=ReadTemperature();//将18b2头文件运行返回的函数结果送到变量FLAG中,用于显示 //读取秒时分周日月年七个数据(DS1302的读寄存器与写寄存器不一样):miao = BCD_Decimal(read_1302(0x81)); fen = BCD_Decimal(read_1302(0x83)); shi = BCD_Decimal(read_1302(0x85)); ri = BCD_Decimal(read_1302(0x87)); yue = BCD_Decimal(read_1302(0x89)); nian=BCD_Decimal(read_1302(0x8d)); week=BCD_Decimal(read_1302(0x8b)); //显示温度、秒、时、分数据: write_temp(12,flag);//显示温度,从第二行第12个字符后开始显示 write_sfm(8,miao);//秒,从第二行第8个字后开始显示(调用时分秒显示子函数) write_sfm(5,fen);//分,从第二行第5个字符后开始显示 write_sfm(2,shi);//小时,从第二行第2个字符后开始显示 //显示日、月、年数据: write_nyr(9,ri);//日期,从第二行第9个字符后开始显示 write_nyr(6,yue);//月份,从第二行第6个字符后开始显示 write_nyr(3,nian);//年,从第二行第3个字符后开始显示 write_week(week);}

安卓日历开发闹钟毕业论文

环境搭建就不讲了,直接说开发。

小闹钟程序开发中的要点就是:

1、时间选择对话框(TimePicker)

2、获取闹钟管理器并对其进行设置

3、注册广播接收器

掌握了这两点,写程序就很简单了。

1、新建android项目:Alarm,sdk版本选择,Package name:,Main Activity:Alarm

2、编写界面:直接修改layout中的文件,代码如下:

Xml代码

基于51单片机的遥控电子钟的设计 第二十六页Ji Yu 5 1 Dan Pian Ji De Yao Kong Dian Zi Zhong De She Ji更新时间:2011-1-4点击:2作者:佚名【内容摘要】本毕业设计项目根据毕业设计任务书指定和我校高职高专特点的要求,体现毕业生的实践动手能力、创新思维、解决问题的能力和对所学知识的综合运用能力,为学校教学楼设计制作一套遥控电子钟系统,整个系统中的大型数码管、控制电路、遥控发射和接收电路、印刷电路板、编程器以及外壳等自己设计制作,可实现如下功能: 1、 采用数字显示,外形美观、大方,显示醒目、直观。 2、 秒、分钟及小时的显示,计时准确,每年的时间误差小于一分钟。 3、 可显示星期,不得有误差。 4、 可用遥控来对数字钟进行调整,便于使用。市电断电后能继续保持时间的正常运行,来电后恢复显示。 标签收藏:51单片机 遥控电子钟 设计 遥控 电子钟 单片机 该文章转自《论文帮 - 应用基础频道》

目录摘 要 IAbstract II目录 III第一章 绪 论 - 1 课题的背景 - 1 课题意义 - 2 本章小结 - 3 -第二章 总体设计方案与论证 - 4 电源模块方案的选择与论证 - 4 时钟电路方案的选择与论证 - 4 显示电路方案的选择与论证 - 5 闹钟电路方案的选择与论证 - 5 键扫描电路方案的选择与论证 - 6 本章小结 - 6 -第三章 系统硬件设计 - 7 主控芯片STC89C52的介绍 - 7 STC89C52的主要性能参数 - 7 STC89C52单片机的功能特性概述: - 8 时钟部分功能介绍及电路设计 - 11 显示模块功能介绍及电路设计 - 14 闹钟电路模块介绍及电路设计 - 16 功能按键模块介绍及电路设计 - 17 电源模块介绍及电路设计 - 17 本章小结 - 18 -第四章 系统软件设计 - 19 日历程序设计 - 19 时间调整程序设计 - 20 闹钟设置程序设计 - 22 闹钟蜂鸣程序设计 - 23 本章小结 - 23 -第五章 系统调试 - 24 系统的调试 - 24 系统的调试出现的问题及解决 - 24 本章小结 - 24 -第六章 结 论 - 25 -参考文献 - 26 -致 谢 - 27 -附录 - 28 -附录一 :本设计电路原理图 - 28 -附录二:数字日历钟电路设计的C程序 - 29 -

辉光管电子钟毕业论文

我博客上有电子钟的程序,欢迎去参考。

数字电子钟的设计 一、 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。尤其在医院,每次护士都会给病人作皮试,测试病人是否对药物过敏。注射后,一般等待5分钟,一旦超时,所作的皮试试验就会无效。手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。所以,要制作一个定时系统。随时提醒这些容易忘记时间的人。 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 (二)论文的研究内容和结构安排 本系统采用石英晶体振荡器、分频器、计数器、显示器和校时电路组成。由LED数码管来显示译码器所输出的信号。采用了74LS系列中小规模集成芯片。使用了RS触发器的校时电路。总体方案设计由主体电路和扩展电路两大部分组成。其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。论文安排如下: 1、绪论 阐述研究电子钟所具有的现实意义。 2、设计内容及设计方案 论述电子钟的具体设计方案及设计要求。 3、单元电路设计、原理及器件选择 说明电子钟的设计原理以及器件的选择,主要从石英晶体振荡器、分频器、计数器、显示器和校时电路五个方面进行说明。 4、绘制整机原理图 该系统的设计、安装、调试工作全部完成。 二、设计内容及设计方案 (一)设计内容要求 1、设计一个有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能的电子钟。 2、用中小规模集成电路组成电子钟,并在实验箱上进行组装、调试。 3、画出框图和逻辑电路图。 4 、功能扩展: (1)闹钟系统 (2)整点报时。在59分51秒、53秒、55秒、57秒输出750Hz音频信号,在59分59秒时,输出1000Hz信号,音像持续1秒,在1000Hz音像结束时刻为整点。 (3)日历系统。 (二)设计方案及工作原理 数字电子钟的逻辑框图如图1所示。它由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分。 图1 数字电子钟逻辑框图 三、单元电路设计、原理及器件选择 (一)石英晶体振荡器 1、重要概念的解释 (1) 反馈:将放大电路输出量的一部分或全部,通过一定的方式送回放大电路的输入端。 (2) 耦合:是指信号由第一级向第二级传递的过程。 2、石英晶体振荡器的具体工作原理 石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。它被广泛应用于彩电、计算机、遥控器等各类振荡电路中。它还具有压电效应:在晶体某一方向加一电场,晶体就会产生机械变形;反之,若在晶片的两侧施加机械压力,则在晶片相应的方向上将产生电场,这种物理现象称为压电效应。在这里,我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。 用反相器与石英晶体构成的振荡电路如图2所示。利用两个非门G1和G2 自我反馈,使它们工作在线性状态,然后利用石英晶体JU来控制振荡频率,同时用电容C1来作为两个非门之间的耦合,两个非门输入和输出之间并接的电阻R1和R2作为负反馈元件用,由于反馈电阻很小,可以近似认为非门的输出输入压降相等。电容C2是为了防止寄生振荡。例如:电路中的石英晶体振荡频率是4MHz时,则电路的输出频率为4MHz。 图2 石英晶体振荡电路 (二)分频器 1、8421码制,5421码制 用四位二进制码的十六种组合作为代码,取其中十种组合来表示0-9这十个数字符号。通常,把用四位二进制数码来表示一位十进制数称为二-十进制编码,也叫做BCD码,见表1。 表1 8421码 5421码 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 1000 6 0110 1001 7 0111 1010 8 1000 1011 9 1001 1100 2、分频器的具体工作原理 由于石英晶体振荡器产生的频率很高,要得到秒脉冲,需要用分频电路。例如,振荡器输出4MHz信号,通过D触发器(74LS74)进行4分频变成1MHz,然后送到10分频计数器(74LS90,该计数器可以用8421码制,也可以用5421码制),经过6次10分频而获得1Hz方波信号作为秒脉冲信号。(见图3) 图3 分频电路 3、图中标志的含义 CP——输入的脉冲信号 C0——进位信号 Q——输出的脉冲信号 (三)计数器 秒脉冲信号经过6级计数器,分别得到“秒”个位、十位,“分”个位、十位以及“时”个位、十位的计时。“秒”、“分”计数器为60进制,小时为24进制。 1、60进制计数器 (1) 计数器按触发方式分类 计数器是一种累计时钟脉冲数的逻辑部件。计数器不仅用于时钟脉冲计数,还用于定时、分频、产生节拍脉冲以及数字运算等。计数器是应用最广泛的逻辑部件之一。按触发方式,把计数器分成同步计数器和异步计数器两种。对于同步计数器,输入时钟脉冲时触发器的翻转是同时进行的,而异步计数器中的触发器的翻转则不是同时。 (2)60进制计数器的工作原理 “秒”计数器电路与“分”计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图4所示,采用两片中规模集成电路74LS90串接起来构成的“秒”、“分”计数器。 图4 60进制计数电路 IC1是十进制计数器,QD1作为十进制的进位信号,74LS90计数器是十进制异步计数器,用反馈归零方法实现十进制计数,IC2和与非门组成六进制计数。74LS90是在CP信号的下降沿翻转计数,Q A1和 Q C2相与0101的下降沿,作为“分”(“时”)计数器的输入信号,通过与非门和非门对下一级计数器送出一个高电平1(在此之前输出的一直是低电平0)。Q B2 和Q C2计数到0110,产生的高电平1分别送到计数器的清零R0(1), R0(2),74LS90内部的R0(1)和R0(2)与非后清零而使计数器归零,此时传给下一级计数器的输入信号又变为低电平0,从而给下一级计数器提供了一个下降沿,使下一级计数器翻转计数,在这里IC2完成了六进制计数。由此可见IC1和 IC2串联实现了六十进制计数。 其中:74LS90——可二/五分频十进制计数器 74LS04——非门 74LS00——二输入与非门 2、24进制计数器 小时计数电路是由IC5和IC6组成的24进制计数电路,如图5所示。 当“时”个位IC5计数输入端CP5来到第10个触发信号时,IC5计数器自动清零,进位端QD5向IC6“时”十位计数器输出进位信号,当第24个“时”(来自“分”计数器输出的进位信号)脉冲到达时,IC5计数器的状态为“0100”,IC6计数器的状态为“0010”,此时“时”个位计数器的QC5和“时”十位计数器的QB6输出为“1”。把它们分别送到IC5和IC6计数器的清零端R0(1)和R0(2),通过7490内部的R0(1)和R0(2)与非后清零,从而完成24进制计数。 图5 24进制计数电路 (四) 译码与显示电路 1、显示器原理(数码管) 数码管是数码显示器的俗称。常用的数码显示器有半导体数码管,荧光数码管,辉光数码管和液晶显示器等。 本设计所选用的是半导体数码管,是用发光二极管(简称LED)组成的字形来显示数字,七个条形发光二极管排列成七段组合字形,便构成了半导体数码管。半导体数码管有共阳极和共阴极两种类型。共阳极数码管的七个发光二极管的阳极接在一起,而七个阴极则是独立的。共阴极数码管与共阳极数码管相反,七个发光二极管的阴极接在一起,而阳极是独立的。 当共阳极数码管的某一阴极接低电平时,相应的二极管发光,可根据字形使某几段二极管发光,所以共阳极数码管需要输出低电平有效的译码器去驱动。共阴极数码管则需输出高电平有效的译码器去驱动。 2、译码器原理(74LS47) 译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表2列出了74LS47的真值表,表示出了它与数码管之间的关系。 表2 输 入 输 出 显示数字符号 LT(——) RBI(——-) A3 A2 A1 A0 BI(—)/RBO(———) a(—) b(—) c(—) d(—) e(—) f(—) g(—) 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 X 0 0 0 1 1 1 0 0 1 1 1 1 1 1 X 0 0 1 0 1 0 0 1 0 0 1 0 2 1 X 0 0 1 1 1 0 0 0 0 1 1 0 3 1 X 0 1 0 0 1 1 0 0 1 1 0 0 4 1 X 0 1 0 1 1 0 1 0 0 1 0 0 5 1 X 0 1 1 0 1 1 1 0 0 0 0 0 6 1 X 0 1 1 1 1 0 0 0 1 1 1 1 7 1 X 1 0 0 0 1 0 0 0 0 0 0 0 8 1 X 1 0 0 1 1 0 0 0 1 1 0 0 9 X X X X X X 0 1 1 1 1 1 1 1 熄灭 1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄灭 0 X X X X X 1 0 0 0 0 0 0 0 8 (1)LT(——):试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT(——)=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。 (2)BI(—):灭灯输入,是为控制多位数码显示的灭灯所设置的。BI(—)=0时。不论LT(——)和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。 (3)RBI(——-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(——-)=0作用下,使译码器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。 (4)RBO(———):灭零输出,它和灭灯输入BI(—)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。 3、译码器与显示器的配套使用 译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示,通常显示器与译码器是配套使用的。我们选用的七段译码驱动器(74LS47)和数码管(LED)是共阳极接法(需要输出低电平有效的译码器驱动)。译码显示电路如图6所示。 图6 译码显示电路 (五)校时电路 1、RS触发器(见图7) 图7 基本RS触发器 R(—) S(—) Q Q(—) 说 明 0 1 1 0 1 1 0 0 0 1 0或1 1 1 0 1或0 1 置0 置1 保持原来状态 不正常状态,0信号消失后,触发器状态不定 2、无震颤开关电路 无震颤开关电路的原理:(见图8)当开关K的刀扳向1点时,S(—)=0,R(—)=1,触发器置1。S(—)端由于开关K的震颤而断续接地几次时,也没有什么影响,触发器置1后将保持1状态不变。因为K震颤只是使S(—)端离开地,而不至于使R(—)端接地,触发器可靠置1。 当开关K从S(—)端扳向R(—)端时,有同样的效果,触发器可靠置0。从Q端或Q(—)端反映开关的动作,输出电平是稳定的。 3、校时电路的实现原理 当电子钟接通电源或者计时发现误差时,均需要校正时间。校时电路分别实现对时、分的校准,由于4个机械开关具有震颤现象,因此用RS触发器作为去抖动电路。采用RS基本触发器及单刀双掷开关,闸刀常闭于2点,每搬动一次产生一个计数脉冲,实现校时功能,电路如图8所示。 图8 校时电路 (六)调 试 毕满清等.电子技术实验与课程设计.北京:机械工业出 版社, 这本书上很全

毕业设计么?我可以帮你代做的.有兴趣可留言给我

电子时钟毕业论文特色

EDA课程设计报告电子钟组员吕卫伟:200840720126张奎:200840830133侯从彬:200840830133万远程:200840830133李传迪:200840830133杨占胜:200840830133指导教师:陈卫兵一、电子钟的设计原理:电子钟主要有四个模块组成: 扫描电路、计数模块电路、BCD码转换电路、显示器驱动电路。由CP送入1HZ的时钟信号,并输入计数60的分频计秒电路。在计数至6o瞬间. 进位至计数60的分频计分分频使分频计分电路加1。而计秒电路也消除为0重新再计秒。计分电路与计时电路功能同上。计数输出的二进制数通过BCD码转换电路将其转为BCD码,再通过扫描电路选择输出的BCD码。送至显示驱动电路.再将其结果转换成相应的十进制数在七段数码显示管上显示.并通过扫描电路控制数码管的显示。最终在数码显示管上可以看到秒,分,时的显示结果二、设计实现本程序总共有十二个部分依次是产生脉冲信号、60秒计数器、60分计数器、24时计数器、毫秒计数器、秒计数器、月份判断、年月日。设计过程:仿真图和源程序(1).秒钟模块秒是这次电子钟设计的最底层模块.其核心是一个60进制计数器,以外来时钟信号作为其触发时钟信号,当外来信号进入clk时钟信号端,其内部的60进制计数器便开始工作,对信号源进行计数.计数结果由count输出至数码管显示秒钟时间.当计数到60时,其值置零,并向外输出一个进位信号C,这个进位信号便为下个分钟模块的输入时钟信号library ieee;use ;use ;entity miao isport(rst,clk:in std_logic;d:in std_logic_vector(1 downto 0);clk1:out std_logic);end miao;architecture do of miao issignal d1:std_logic_vector(1 downto 0);beginprocess(clk,d)beginif rst='1' thend1<="00";ELSif clk'event and clk='1'thenif d1="11"thend1<=d;clk1<='1';else d1<=d1+1; clk1<='0';end if;end if;end process;end do;(2).分钟模块分钟模块核心也是一个60进制计数器,其功能的实现是将秒模块的进位信号进行计数,计数结果由dout输至数码管显示,当计数至60是数值置零,并向外输出进位信号 ieee;use ;use ;entity fen isport(zs1,clk2,rst1:in std_logic;d1: in std_logic_vector(5 downto 0);fe :out std_logic_vector(5 downto 0);clk3:out std_logic);end fen;architecture do of fen issignal d0:std_logic_vector(5 downto 0);beginprocess(clk2,d1,zs1,rst1)beginif rst1='1'thend0<="000000";elsif clk2'event and clk2='1'thenif d0="111111"thenclk3<='1';d0<="000000";elsif zs1='1'thend0<=d1;else d0<=d0+1;clk3<='0';end if;end if;end process;fe<=d0;end do;(3)时、星期计数模块library ieee;use ;use ;entity shi isport(clk5 :in std_logic;xs:out std_logic_vector(4 downto 0);xinqi:out std_logic_vector(2 downto 0));end shi;architecture do of shi issignal d3:std_logic_vector(4 downto 0);signal d4:std_logic_vector(2 downto 0);signal clk6:std_logic;beginr1:process(clk5)beginif clk5'event and clk5='1'thenif d3="11000"thend3<="00000";clk6<='1';else d3<=d3+1;clk6<='0';end if;end if;end process r1;r2: process(clk6)beginif clk6'event and clk6='1'thenif d4="111"thend4<="001";else d4<=d4+1;end if;end if;end process r2;xs<=d3;xinqi<=d4;end do;(4)年月日计数library ieee;use ;use ;entity haos isport(clk8,zr,zy:in std_logic;g2:in std_logic_vector(4 downto 0);g1: in std_logic_vector(3 downto 0);ri :out std_logic_vector(4 downto 0);yue: out std_logic_vector(3 downto 0));end haos;architecture do of haos issignal clk9:std_logic;signal w1:std_logic_vector(4 downto 0);signal w2:std_logic_vector(3 downto 0);beginr1: process(clk8,zr,g2)beginif zr='1'thenw1<=g2;elsif clk8'event and clk8='1'thenif w1="11110"thenw1<="00001";clk9<='1';else w1<=w1+1;clk9<='0';end if;end if;end process r1;r2:process(clk9)beginif zy='1'thenw2<=g1;elsif clk9'event and clk9='1'thenif w2="1100"thenw2<="0001";else w2<=w2+1;end if;end if;end process r2;ri<=w1;yue<=w2;end do;最后将这几个模块(GDF)连接一起就可以了.根据实际情况做引脚锁定,引脚表见附录。课程设计心得设计语言主要是采用VHDL语言的自顶向下的设计方法。EDA中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程,应用VHDL运行自顶向下的设计,就是使用VHDL模型在所有综合级别上对硬件进行说明、建模和仿真测试。顶层文件采用了原理图的方法设计,使各模块之间的层次关系清晰。在多功能电子钟实际设计过程中,所有的模块都是通过不同进制的计数器来实现其主要功能的,各模块之间是通过进位信号连接在一起的。前一级的进位信号作为下一级的计数clk信号,通过层次关系使设计思路清晰一开始由于程序的设计考虑置位调整。没有好的思路,走了不少弯路。后来(有人)想到了在程序里设置总控制端,于是解决了问题。和同学的合作使我的程序更加优化。通过这次课设,也给我带来以下一些收获:1、 进一步熟悉maxplus II软件的使用和操作方法,以及硬件实现时的下载方法与运行方法;2、 对VHDL语言的自顶向下设计方法有了进一步的认识;在底层文件具备的条件下,使用原理图可以使设置更加简单。使程序清晰,增加可读性。3、 锻炼了我独立思考和解决问题的能力,也认识到团队合作的重要性。4、 熟悉了写电子设计试验报告的方法,为写毕业设计论文奠定了一定的基础。5、 当然本次课程设计也存在一些不足之处,月的功能没有设置好,很多扩展功能没有实现,比如说秒表,闹铃等等谢辞首先,在这里感谢学校给我们安排了这次课设,使我们有一个可以自己动手的机会,通过动手,进一步熟悉自己所学的理论知识,体会自己动手得出结果的那种感觉。再次,在这要感谢我们的指导老师,陈卫兵老师和实验室老师在我们的实践过程中不提自己的辛苦,耐心回答我们所问的所有问题,帮助我们解决一些程序和调试,在这表示感谢!感谢这次课程设计中给我帮助的同学,是你们的帮助,我才顺利的完成了课程设计任务。谢谢你们的帮助!参考文献[1]卢毅.赖杰. VHDL与数字电路设计. 北京:科学出版社, 2001[2]潘松. VHDL使用教程. 成都:电子科技出版社,2000[3]黄继业. EDA技术实用教程.科学出版社,2002[4]徐志军.CPLD/FPGA的开发与应用.北京电子工业出版社,2002[5]曾繁泰,侯亚宁,崔元明.可编程器件应用导论,2001

基于AT89c51的简易时钟设计摘要:本电子钟是采用电子电路实现对时、分进行数字显示的计时装置,广泛的应用于生活中。电子时钟主要是利用电子技术奖时钟电子化、数字化,拥有时间精确、体积小、界面友好、课扩展性能强等特点,被广泛应用于生活和工作当中。当今市场上的电子时钟品类繁多,外形小巧别致。电子时钟数字化了时间显示。在此基础上,人们可以根据不同场合的要求,在时钟上加置其他功能,本设计由以下几个部件组成:单片机AT89C51、四个八段码共阴极数码管显示、四个微动按钮等其它组件。在启动后开始从00时00分显示。可以手动校准时间,秒使用两个发光二极管的闪烁来提现,本设计设计简单易于实现。关键词:AT89C51、倒计时。LED Simple clock design based on AT89c51Abstract: This clock is the use of electronic circuits to achieve the hours, minutes, digital display of timing devices, widely used in life. Electronic clock main prize is the use of electronic technology electronic clock, digital, with a time accurate, small, friendly interface, expanded its performance and other characteristics, are widely used in life and on the job. The market today, many kinds of electronic clock, compact and chic. Digital electronic time clock display. On this basis, one can according to the requirements of different occasions, plus set the clock on the other features This design consists of the following components: microcontroller AT89C51, four eight out code common cathode LED display, four buttons, and other micro-components. After starting 00 points from 00 shows. You can manually calibrate the time, in seconds using two LEDs blink to mention is, the design is simple design easy to implement. Keywords: AT89C51, countdown. LED 目 录摘要 1关键词 1Simple clock design based on AT89c51 2目录 3第一章引言 时钟的概述 5第二章电路工作原理分析 系统的硬件构成及功能 硬件连接方式 6第三章: 芯片介绍 MCS- 51介绍 LED数码管显示 LED数码管介绍 LED数码管编码方式 LED数码管显示方式和典型应用电路 12第四章 部分电路介绍 单片机的最小应用系统 单片机的时钟电路 复位电路和复位状态 总线结构 此设计显示电路 看门狗电路 按键模块 19第五章程序设计 19第六章 原理图和印制板图的设计 20( 一 ) 原 理 图 的 设 计 和 网 络 表 的 生 成 20(二)PCB的制作和设计 21第七章 原理图的protues仿真 介绍 原理图仿真步骤 26总 结 27谢 辞 28参考资料及文献 29附录一:原理图 30附录二:PCB 31附录三 仿真 32附录四:程序清单 33第一章引言数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 时钟的概述 20世纪末,电子技术获得了飞速的发展。在其推动下,电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展和信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛的应用于生活中。电子时钟主要是利用电子技术奖时钟电子化、数字化,拥有时间精确、体积小、界面友好、课扩展性能强等特点,被广泛应用于生活和工作当中。当今市场上的电子时钟品类繁多,外形小巧别致。电子时钟数字化了时间显示。在此基础上,人们可以根据不同场合的要求,在时钟上加置其他功能,比如定时闹钟,万年历,环境温度,温度检测,环境空气质量检测,USB扩展功能等。本设计电子时钟主要功能为:具有时间显示和手动校对功能,24小时制。本设计任务“ 1:用4位LED数码管实时显示时钟计时功能;最小显示时间为00时00分,最大显示时间为23时59分;2:能方便的校准小时和分钟。3:了解单片机的基础知识;4;掌握proteus的基本原理和使用方法;5:掌握数码管和LED的显示的方法;6:掌握单片机定时器的基本原理;7:掌握单片机定时器的基本原理;8:掌握绘图软件Proell99se的使用方法; 9:绘制程序流程图和编写出程序;10:画出电路原理图并仿真运行。第二章电路工作原理分析 系统的硬件构成及功能本设计由以下几个部件组成:单片机AT89C51、四个八段码共阴极数码管显示、四个微动按钮等其它组件。在启动后开始从00时00分显示。可以手动校准时间,秒使用两个发光二极管的闪烁来提现,本设计设计简单易于实现。图1 99秒计时器系统原理框图 硬件连接方式数码管使用动态显示,P0口作为四个八位共阴数码管的段选输出端,为提高单片机输出能力 P0口作为输出口接了8个的电阻作为上拉电阻;P2.口是四个八位共阴数码管和两个发光二极管的位选端,显示是事位和分位,四个微动开关做的按键分别连,,完成时和分的加减调整。硬件连接如下: 单片机的最小应用系统单片计算机是一个最小的应用系统,但由于应用系统中有一些功能器件无法集成到芯片内部,如晶振、复位电路等,需要在片外加接相应的电路。对于片内无程序存储器的单片机,还应该配置片外程序存储器。 单片机的时钟电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。MCS-51单片机的时钟产生方式有两种。(1) 内部时钟方式利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器,如图3-1所示。晶体可在之间选择。MCS-51单片机在通常应用情况下,使用振荡频率为6MHz的石英晶体,而12Hz频率的晶体主要是在高速串行通信情况下才使用。C1和C2可在20~100pF之间取值,一般取30pF左右。(2) 外部时钟方式在由单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。外部时钟方式中是把外部振荡信号源直接接入XTAL1或XTAL2。由于HMOS和CHMOS单片机外部时钟进入的引线不同,其外部振荡信号源接入的方式也不同。HMOS型单片机由XTAL2进入,外部振荡信号接至XTAL2,而内部反相放大器的输入端XTAL1应接地,如图3-2所示。由于XTAL2端的逻辑电平不是TTL的,故还要接一上接电阻。CHMOS型单片机由XTAL1进入,外部振荡信号接至XTAL1,而XTAL2可不接地,如图3-3所示。图3-1内部时钟电路 图3-2HMOS型外部时钟电路 图3-3外部时钟电路 复位电路和复位状态MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作后,只要在它的RST引线上加载10ms以上的高电平,单片机就能够有效地复位。(1) 复位电路MCS-51单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如图3-4所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。图 3-4 简单的复位电路在实际的应用系统中,为了保证单片机可靠地工作,常采用“看门狗”监视单片机的运行。采用MAX690的复位电路如图3-5所示,该电路具有上电复位和监视MCS-51单片机的的输出功能。一旦不输出高低电平交替变化的脉冲,MAX690就会自动产生一复位信号使单片机复位。图3-5 MAX690组成的复位电路 (2) 复位状态复位电路的作用是使单片机执行复位操作。复位操作主要是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。程序存储器的0003H单元即MCS-51单片机的外部中断0的中断处理程序的入口地址。留出的0000H~0002H 3个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。除PC之外,复位还对其他一些特殊功能的寄存器有影响,它们的复位状态如表3-6所示。由表3-6可知,除SP=07H,P0~P3 4个锁存器均为FFH外,其他所有的寄存器均为0。此外,单片机的复位不影响片内RAM的状态(包括通用寄存器Rn)。表3-6 寄存器的复位状态寄存器 复位状态 寄存器 复位状态PC 0000H TMOD 00HACC 00H TCON OOHPSW 00H TL0 00HSP 07H TH0 00HDPTR 0000H TL1 00HP0~P3 FFH TH1 00HIP Xxx00000B SCON 00HIE 0xx00000B PCON 0xx00000B P0、P1、P2、P3共有4个8位并行I/O口,它们引线为:~、~、~、~,共32条引线。这32条引线可以全部用做I/O线,也可将其中部分用做单片机的片外总线。① 控制线A、ALE地址锁存允许当单片机访问外部存储器时,输出信号ALE用于锁存P0口输出的低8位地址A7~A0。ALE的输出频率为时钟振荡频率的1/6。B、 程序存储器选择 =0,单片机只访问外部程序存储器。对内部无程序存储器的单片机8031, 必须接地。 =1,单片机访问内部程序存储器,若地址超过内部程序存储器的范围,单片机将自动访问外部程序存储器。对内部有程序存储器的单片机, 应接高电平。C、 片外程序存储器的选通信号。此信号为读外部程序存储器的选通信号。D、RST复位信号输入② 电源及时钟VSS地端接地线,VCC电源端接+5V,XTAL1和XTAL2接晶振或外部振荡信号源。图3-7 片外3总线结构总线结构单片机的引线除了电源、复位、时钟输入、用户I/O口外,其余引线都是为实现系统扩展则设置的,这些引线构成了单片机外部的3总线形式,如图3-7所示。① 地址总线地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A7~A0),P2口直接提供高8位地址(A15~A8)。由口的位结构可知,MCS-51单片机在进行外部寻址时,P0口的8根引绠低8位地址和8位数据的复用线。P0口首先将低8位的地址发送出去,然后再传送数据,因此要用锁存器将先送出的低8位地址锁存。MCS-51常用74LS373或8282做地址锁存器。② 数据总线数据总线宽度为8位,由P0口提供。③ 控制总线MCS-51用于外部扩展的控制总线除了它自身引出的控制线RES、 、ALE、 外,还有由P3口的第二功能引线:外部中断0和外部中断1输入线 和 ,以及外部RAM或I/O端口的读选通和写选通信号 和 。 MCS—51单片机的最小应用系统 构成最小应 MCS—51单片机的最小应用系统用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如图3-8所示,这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户选用的大量I/O线。此设计显示电路数码管使用动态显示,P0口作为四个八位共阴数码管的段选输出端,因为P0口作为输出口接了8个的电阻作为上拉电阻;P2口四个八位共阴数码管的位选端,显示是两位时间的事时位和两位的分位。电源电路 由于该系统需要稳定的5 V电源,因此设计时必须采用能满足电压、电流和稳定性要求的电源。该电源采用三端集成稳压器LM7805。它仅有输人端、输出端及公共端3个引脚,其内部设有过流保护、过热保护及调整管安全保护电路,由于所需外接元件少,使用方便、可靠,因此可作为稳压电源。图4为电源电路连接图。看门狗电路系统中把作为看门狗的“喂狗”信号;将MAX813的 RESET与单片机的复位信号RST连接。由于单片机每执行一次程序,就会给看门狗器件一个复位信号,这样也可以用手工方式实现复位。当按键按下时,SW-SPST就会在MAX813 引脚产生一个超过200ms的低电平,其实看门狗器件在 时间内没有复位,使7引脚输出一个复位信号的作用是相同的,其连接图如图6所示。 按键模块下图为按键模块电路原理图,S1为时加,s2为时减,S3为分钟加调控键,S4是分钟减调控键。LED_BIT_1 EQU 30H ; 存放8位数码管的段码LED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33HLED_BIT_5 EQU 34HLED_BIT_6 EQU 35HLED_BIT_7 EQU 36HLED_BIT_8 EQU 37H ; 存放初始密码SECOND EQU 60HMINUTE EQU 61HHOUR EQU 62HTCNT EQU 63H ORG 00H ;初始化程序 ,设置初始密码 SJMP START ORG 0BH LJMP INT_T0START: MOV DPTR,#TABLE MOV HOUR,#0 MOV MINUTE,#0 MOV TCNT,#0 MOV TMOD,#01H MOV TH0,#03ch ;定时50毫秒 MOV TL0,#03ch MOV IE,#082H SETB TR0 MOV LED_BIT_1,#00H ;段码存储区清0 MOV LED_BIT_2,#00H MOV LED_BIT_3,#00H MOV LED_BIT_4,#00H MOV LED_BIT_5,#00H MOV LED_BIT_6,#00H MOV LED_BIT_7,#79H MOV LED_BIT_8,#73HMOV TMOD,#01H MOV TH0,#0fdh MOV TL0,#0fdh MOV IE,#82H A1: LCALL DISPLAY ;调用时间显示 JNB JNB JNB JNB LJMP A1S1: LCALL DLY_S ;去抖动 JB INC HOUR ;秒值加1 MOV A, HOUR CJNE A,#24,J00 ;判断是否加到60秒 MOV HOUR,#0 LJMP A1S2: LCALL DLY_S JB K01: DEC HOUR ;SHI- MOV A,HOUR CJNE A,#0,J01 ;判断是否-0分 MOV HOUR,#24 LJMP A1S3: LCALL DLY_S JB K02: INC MINUTE ;小时值加1 MOV A,MINUTE CJNE A,#60,J02 ;判断是否加到24小时 MOV MINUTE,#0 LJMP A1S4: LCALL DLY_S JB K03: DEC MINUTE ;小时值加1 MOV A,MINUTE CJNE A,#0,J03 ;判断是否加到24小时 MOV MINUTE,#59 LJMP A1J00: JB ;等待按键抬起 LCALL DISPLAY SJMP J00J01: JB LCALL DISPLAY SJMP J01J02: JB LCALL DISPLAY SJMP J02J03: JB LCALL DISPLAY SJMP J03INT_T0: MOV TH0,#3ch ;定时器中断服务程序 MOV TL0,#3ch ;对秒,分钟和小时的计数 INC TCNT MOV A,TCNT CJNE A,#20,RETUNE ;计时1秒 INC SECOND MOV TCNT,#0 MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNE INC HOUR MOV MINUTE,#0 MOV A,HOUR CJNE A,#24,RETUNE MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0RETUNE: RETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3闹铃设置子程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3DISPLAY: ;显示时间控制子程序 MOV A,SECOND ;显示秒 MOV B,#10 DIV AB CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB MOV A,B CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB CLR MOV P0,#40H ;显示分隔符 LCALL DLY_S SETB MOV A,MINUTE ;显示分钟 MOV B,#10 DIV AB CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB MOV A,B CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB CLR MOV P0,#40H ;显示分隔符 LCALL DLY_S SETB MOV A,HOUR ;显示小时 MOV B,#10 DIV AB CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB MOV A,B CLR MOVC A,@A+DPTR MOV P0,A LCALL DLY_S SETB RETTABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;延时DLY_S: MOV R6,#5 ;延时程序D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 RETDLY_L: MOV R5,#50D2: MOV R6,#100D3: MOV R7,#100 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 RET END 第五章程序设计程序只要完成了初始化,计时,在计时过程中判断按键情况,做相应处理。流程如下。

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电子秒表的自动计时研究 电子秒表具有分段计时的功能,因此可以用来测量运动物体经过某段距离的时间间隔 ... 通过对电子秒表的研究发现,从电子秒表的触发方式来看,只需对计时触发端提供一个电压就可以对电子秒表加以控制,实现自动计时的功能 ... 希望以上资料对你有帮助!

相关百科

热门百科

首页
发表服务