版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南华大学船山学院单片机课程设计引 言数字电子时钟,自从它问世起,就是人们的好朋友,是人们日常生活中必不可少的电子产品,广泛用于生活的方方面面,给人们的学习、生活、工作带来了极大的方便。但随着时间的推移,科学技术的不断发展,生活节奏越来越快,竞争日益激烈,人们对时间计量的精度要求越来越高,应用越来越广。通常使用的晶振芯片设计的电子时钟,在生活中使用是一个很不错的选择,然而在工业现场,环境恶劣,势必会影响走时的进度,我们试想一下,大型的工业现场的走时如果因为环境的恶劣而不精确,导致的生产损失将有多大。而利用开关量控制的plc来设计的时钟是不会因为环境的因素而发生走时误差,从而,在工业现场最好使用p
2、lc设计的时钟。本文主要介绍在工业现场应用的时钟用plc的设计。通过plc我们设计的这种走时精确的的时钟,终究会变成产品走进工业现场。1 设计的目的及意义本设计通过用对一个能实现定时,时钟显示功能的时间系统的设计学习,让我们了解到了51单片机应用中的数据转换显示,数码管显示原理,静态扫描显示原理,单片机的定时中断原理等,从而达到学习、了解单片机相关指令在各方面的应用,让我们学到更多关于单片机方面的知识。2 芯片简介2.1 stc80c52单片机芯片引脚功能介绍单片机的40个引脚大致可分为4类:电源、时钟、控制和i/o引脚。 电源: vcc - 芯片电源,接+5v; vss - 接地端; 时钟:
3、xtal1、xtal2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ale/prog:地址锁存允许/片内eprom编程脉冲 ale功能:用来锁存p0口送出的低8位地址 prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。 psen:外rom读选通信号。 rst/vpd:复位/备用电源。 rst(reset)功能:复位信号输入端。 vpd功能:在vcc掉电情况下,接备用电源。 ea/vpp:内外rom选择/片内eprom编程电源。 ea功能:内外rom选择端。 vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电源vpp。 i/o线
4、80c51共有4个8位并行i/o端口:p0、p1、p2、p3口,共32个引脚。p3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。2.2 stc89c52单片机芯片封装图 stc89c52芯片的封装有plcc、pqfp以及dip40,本设计采用的是引脚双列直插式封装。其封装形式如图2.2.1。图2.2.1 stc89c52 dip-40封装2.3 ds1302芯片功能的介绍ds1302 是美国dallas 公司生产的一种高性能、低功耗、带ram的实时时钟芯片。该芯片采用3 线串行接口方式,可提供年、月、日、星期、时、分、秒等时间信息,并可根据月份和闰年的情况自动调整月份的结束日
5、期,同时可以根据用户需要决定是采用24 小时或12 小时格式。ds 1302 内部带有31 个字节ram ,用于存放临时性数据,同时具有可编程涓细电流充电能力,从而使外围硬件电路设计得到了大大简化。其中x1 、x2 为32. 768khz 晶振端, gnd 为地;rst 为复位端,高电平时允许i/ o 端进行数据传输,低电平则禁止数据传送且使i/ o 端呈高阻状态; i/ o 为串行数据输入、输出端,所有输入、输出数据的传送顺序均以最低位lsb 打头, 最高位msb 结束;scl k为同步时钟脉冲端,其上升沿将i/ o 端数据按位写入ds1302 ,下降沿使ds1302 按位输出数据至i/ o
6、 端;vcc2 、vcc1 为主电源和备份电源端,当主电源vcc2 大于备份电源vcc1 +0. 2v 时,由vcc2 对芯片供电,否则,由vcc1 对芯片电。工作电压范围为2. 55. 5 v ,工作电源和备份电源双引脚输入,功耗很低,当工作电压为2. 5 v时正常工作,所需电流不超过300 na 。另外,如果选择了涓流充电功能,在正常情况下,主电源还可对备份电源进行慢速充电,有效延长了备份电源的使用寿命,保证了系统时间的连续可靠运行。该芯片引脚分配如图2.3.1图2.3.1 ds1302芯片引脚图ds1302芯片引脚功能说明如下表2.3.1。表2.3.1 ds1302芯片引脚功能说明引脚名
7、称引脚说明x1,x232.768khz晶振管引脚gnd接地引脚rst复位引脚i/o数据输入/数据输出sclk串行时钟vcc1,vcc2电源供电引脚3 电路原理图与功能说明3.1 晶振电路晶体振荡器在固定频率振荡器中能够提供较高的精度,绝大多数rtc采用32.768khz的晶体,晶体振荡器输出经过分频后会产生1hz的基准来刷新时间和日期。rtc的精度主要取决于晶振的精度,晶体振荡器在固定频率振荡器中能够提供较高的精度,绝大多数rtc采用32.768khz的晶体,晶体振荡器输出经过分频后会产生1hz的基准来刷新时间和日期。rtc的精度主要取决于晶振的精度,晶振一般在特定的电容负载下,其调谐振荡在正
8、确的频点,而当晶振调谐于12.5pf负载的rtc电路中时,使用6pf负载的晶振将会使时钟变快。dallas semiconductor提供的所有rtc均采用内部偏置网络,因而晶振可直接连接到rtc的x1、x2引脚,而不需要额外的元件。由于rtc的晶振输入电路具有很高的输入阻抗,因此,它与晶振的连线犹如一个天线,很容易耦合系统其余电路的高频干扰。而干扰信号被耦合到晶振引脚将导致时钟数的增加或减少。考虑到线路板上大多数信号的频率高于32.768khz,所以,通常会产生额外的时钟脉冲计数。因此,晶振应尽可能靠近x1、x2引脚安装,同时晶振、x1/x2引脚的下方最好布成地平面。晶振电路如图3.1.1。
9、图3.1.1 晶振电路3.2 复位电路当stc89c52单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果rst持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容的充电和反相门的作用,使rst持续一段时间的高电平。当单片机已在运行当中时,按下复位键k后松开,也能使rst为一段时间的高电平,从而实现上电或开关复位的操作。复位电路如图3.2
10、.1图 3.2.1 复位电路3.3 数码管显示电路所谓数码管就是为数码管显示提供的各段状态组合,即字形代码。八段数码管的段码为八位,用一个字节即可表示。在段码字节中代码位与各段发光二极管的对应关系表3.3.1。表3.3.1 段码字节代码位与发光二极管的关系段码d7d6d5d4d3d2d1d0段名dpgfedcba段码的值与数码管公共引脚的接法有关。以八段数码管为例,显示十六进制的段码值如表3.3.2。表3.3.2 十六进制段码表数字共阳极段码共阴极段码数字共阳极段码共阴极段码0c0h3fh990h6fh1f9h06ha88h77h2a4h5bhb83h7ch3b0h4fhcc6h39h499h
11、66hda1h5eh592h6dhe86h79h682h7dhf8eh71h7f8h07h灭ffh00h880h7fh并排使用的多位数码管称为led显示器。led显示器多采用动态显示方式,全部数码管共用一套段码驱动电路,各位数码管的同段引脚短接后在借到应段码的驱动线上。显示时通过位控信号采用扫描的方法逐位地循环点亮各位数码管。动态显示虽然在任何一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。led显示器动态显示需要为各位提供段码以及相应的位控制,此即通常所说的段控和位控。把led显示器段码表预先存放在存储器中,使用时通过查表就可以得到段码。
12、段码输出后送到公共段码线上,也可称为段控信号。而通过并行口输出的相互独立的为嘛则是起选通作用的,也称位控或扫描信号,用于选择显示位。数码管电路如图3.3.1。图3.3.1 数码管电路图3.4 ds1302电路ds1302 所进行的一切工作必须先由cpu 向ds1302 发送命令字节, 命令字节格式如图3.4.1 。各位定义如下:命令字节的最高位7 必须为“1”,否则禁止对ds1302 进行操作。第6 位是时钟/ 日历或ram 选择位, 如它为“1”可对内部ram 读写,如它为“0”可对时钟日历操作。此处所谓日历型数据即数据格式为压缩型bcd 码,且数值必须在它的定义域内;例如,“月份”的定义域
13、为112“, 秒”的定义域为059 等等。所谓ram型数据即指一般16 进制数据。位5 至位1 为ds1302 内部寄存器地址。ds1302 有单字节和多字节两种读、写方式。所谓单字节读、写方式即每次只能从ds1302 中读、写1 字节数据。所谓多字节读、写方式则每次可从ds1302 中连续读、写若干字节数据。当位5 至位1 各位均为“1”时,ds1302为多字节读、写方式。最低位0 为“0”表示写操作,否则为读操作。命令字节的传输都是从最低位开始。图3.4.1 ds1302时钟芯片的控制字ds1302 采用串行方式与微控制器通讯。在片选信号rst 变为高电平后,可向芯片发送指令及读取数据。d
14、s1302 的命令字的传输从最低位开始。当对ds1302 进行写数据时,首先发写控制指令,在控制指令字输入后的下一个scl k时钟的上升沿,数据被写入ds1302 ,数据输入从低位即位0开始。当对ds1302 进行读数据时,首先发读控制指令,在紧跟8 位的控制指令字后的下一个scl k脉冲的下降沿读出ds1302 的数据,读出数据时从低位0 位至高位7 。注意在sclk为高电平期间,不能读i/ o 线,此期间i/ o 端为高阻状态。因此,在程序设计时应保证在sclk上升沿之前读i/ o线,即可正确读出时钟数据3 8 。在本记录仪表系统中,实时时钟软件首先应将日历信息初值秒、分、时、日、月、星期
15、、年等按序写入到ds1302 相关寄存器中,此后,时钟便以此初值为基准进行计时,只要主电源vcc2 和备份电源vcc1 尚有一个工作正常,则计时就不会终止。初始化日历信息程序分为三部分:(1) 发送“解除写保护”命令字8eh 和内容00h ,以开放ds1302 写操作。(2) 发送“涓流充电”命令字90h 和内容a7h ,以开放ds1302 内部充电电路。本系统选择ds1302 内部充电电路为一只串联二极管和8k限流电阻,因此常规情况下,主电源vcc2 对备份电源vcc1 之最大充电电流为imax = (vdd - 二极管压降) / 限流电阻= (5 - 0. 7) 8 = 0. 538ma
16、。(3) 发送“多字节写日历型数据”或“单字节写日历型数据”命令字写入日历信息初值。上述部分属于对ds1302 内部功能寄存器操作,因此必须以“单字节”方式进行发送;而第3 部分属于对ds1302 一般寄存器操作,故可以采用“多字节”方式发送,以便提高效率。同时,在仪表工作过程中需要读取时间日历信息时,可根据具体需要采用“多字节”方式或“单字节”方式。这里,无论采用“单字节”还是“多字节”方式,能否可靠、准确地读出这些信息,其技术关键是和硬件密切相联的ds1302 读写驱动程序的设计。该驱动程序的功能是产生正确的同步时钟脉冲,并在同步时钟脉冲上升沿将数据按位写入ds1302 或在同步时钟脉冲的
17、下降沿按位从ds1302 中读出日历型数据,从而完成1 字节数据的发送或接收。对于“多字节”方式,只需改变命令控制字和增加循环次数即可完成多字节的连续读写。写了ds1302 的读写程序。编写ds1302 驱动程序时,首先应对硬件电路使用的端口进行定义声明,并初始化芯片引脚及工作状态,系统一切就绪后执行读写操作。同时,ds1302 在执行相应操作时,应保证延时时间的选择需满足芯片的时序要求,并注意rts 引脚的及时打开与关闭,以确保数据的正常读写和避免cpu 的长时间占用,减少干扰,提高程序的执行效率。这里由于篇幅的原因仅给出程序设计流程,驱动程序有需要可向笔者索取。具体程序流程如图3.4.2。
18、图3.4.2 ds1302工作流程图4.1 接口电路设计在温度测量记录仪表中,ds1302 与微处理器的接口电路如图2 所示。该微处理器采用宏晶科技推出的stc89c516rd + 单片机作为主控芯片,该产品具有片内资源丰富、超强抗干扰、高抗静电、超低功耗、宽电压、不怕电源抖动、在系统可编程、加密性强、无法解密、可降低单片机时钟对外部电磁辐射等特点7 ,其良好的性能保证了各个器件的协调可靠工作及控制要求。在电路中单片机的p1. 7 控制ds1302 的复位输入端, p1. 4 与数据输入/ 输出引脚相连, p1. 3 用来作为ds1302 的输入时钟scl k控制端。由于单片机复位时,所有单片
19、机的端口均为高电平,如果直接用单片机的某一口线同ds1302 的rst 相连,则影响了系统加电时对ds1302 的初始化,从而造成ds1302 计时的不稳定。因此,本电路在设计时采用反相器来完成单片机的i/ o 线同ds1302 的rst 相连。供电时,仪表主电源(5 v) 接vcc2 ,备份电池采用可充电镉镍电池(3. 6 v) 接vcc1 ,可启用内部涓流充电器在主电压正常时向电池充电,以延长电池使用时间。备份电池也可用1 微法以上的超容量电容代替,但需要注意的是备份电池电压应略低于主电源工作电压。ds1302 与stc89c52 单片机的接口电路如图4.1.1。图4.1.1 ds1302
20、 与stc89c51 单片机的接口电路5 调试与软件设计5.1 调试调试分为硬件调试和软件调试,硬件调试就是检测电路是否有错误或者有短路、虚焊、短路的现象,通过万用表的检测可以最终完成硬件的调试。软件调试是指通过keil软件编译生成hex文件,在通过protus软件的联调,再进行仿真,出现所能实现的功能,最后通过串口下载到stc89c52单片机芯片中让整个硬件可以得到运行。5.2 程序设计#include#include#define uint unsigned int#define uchar unsigned charsbit rtc_clk=p10;sbit rtc_io=p11;sbi
21、t rtc_rst=p12;sbit set=p13;sbit up=p14;sbit out=p15;sbit qiehuan=p16;uchar cnt,num;uchar done,count,temp,up_flag,flag;uchar time=0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar code seg710=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/uchar code seg710=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
22、;uchar hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;uchar act8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; #define rd 0x01#define wr 0x00#define c_sec 0x80#define c_min 0x82#define c_hr 0x84#define c_day 0x86#define c_mth 0x88#define c_wk 0x8a#define c_yr 0x8c#define c_wp 0x8e#de
23、fine clk_halt 0x80#define clk_start 0x00#define m12_24 0x80#define protect 0x80#define unprotect 0x00void delay(uint k)uint i,j;for(i=0;ik;i+)for(j=0;j121;j+);void ds1302_writeb(uchar byte)uchar i;for(i=0;i1;uchar ds1302_readb()uchar i,date;for(i=0;i1;rtc_clk=1;rtc_clk=0;delay(1);if(rtc_io=1)date=da
24、te|0x80;elsedate=date&0x7f;return(date);void ds1302_writed(uchar add,uchar date)rtc_rst=0;rtc_clk=0;rtc_rst=1;ds1302_writeb(add);delay(1);ds1302_writeb(date);rtc_clk=0;rtc_rst=0;uchar ds1302_readd(uchar add)uchar date;rtc_rst=0;rtc_clk=0;rtc_rst=1;delay(1);ds1302_writeb(add|rd);delay(1);date=ds1302_
25、readb();delay(1);rtc_clk=0;rtc_rst=0;return(date);void ds1302_init()/开启ds1302uint second;second=ds1302_readd(c_sec);if(second&0x80)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_sec|wr,clk_start);ds1302_writed(c_wp|wr,protect);elsevoid ds1302_gett();void ds1302_gett()uchar i,value;uchar addr=0x80;
26、for(i=0;i4)*10+(value&0x0f);addr+=2;void outkey()/跳出调整按键/out=1;uchar second;if(out=0)delay(10);if(out=0);count=0;hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week,hide_month=0,hide_year=0;/hide_sfm=0,hide_nyr=0,hide_week=0;second=ds1302_readd(c_sec);ds1302_writed(c_wp|wr,unprotect);ds1302_write
27、d(c_sec|wr,second&0x7f);ds1302_writed(c_wp|wr,protect);done=0;while(out=0);void upkey()/升序按键/uchar valueble;up=1;if(up=0)delay(20);if(up=0);while(up=0);switch(count) case 1:temp=ds1302_readd(c_sec);/temp=(valueble&0x70)4)*10+(valueble&0x0f);temp=temp+1;up_flag=1;if(temp&0x7f)0x59)temp=0;break;case 2
28、:temp=ds1302_readd(c_min);temp=temp+1;up_flag=1;if(temp&0x7f)0x59)temp=0;break;case 3:temp=ds1302_readd(c_hr);temp=temp+1;up_flag=1;if(temp&0x7f)0x23)temp=0;break;case 4:temp=ds1302_readd(c_wk);temp=temp+1;up_flag=1;if(temp&0x7f)0x07)temp=1;break;case 5:temp=ds1302_readd(c_day);temp=temp+1;up_flag=1
29、;if(temp&0x7f)0x31)temp=1;break;case 6:temp=ds1302_readd(c_mth);temp=temp+1;up_flag=1;if(temp&0x7f)0x12)temp=1;break;case 7:temp=ds1302_readd(c_yr);temp=temp+1;up_flag=1;if(temp&0x7f)0x85)temp=0;break; void setkey()/功能切换set=1;if(set=0)delay(10);if(set=0) count=count+1;done=1; while(set=0);void qiehu
30、ankey()qiehuan=1;if(qiehuan=0)delay(10);if(qiehuan=0)while(qiehuan=0);num=num+1;if(num=2)num=0;void keydone()uchar value;uchar second;if(flag=0)temp=ds1302_readd(c_sec);ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_sec|wr,temp|0x80);ds1302_writed(c_wp|wr,protect);flag=1;setkey();switch(count)case
31、 1:dooutkey();upkey();if(up_flag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_sec|wr,temp|0x80);ds1302_writed(c_wp|wr,protect);up_flag=0;/dis_play(); hide_sec+;if(hide_sec10)hide_sec=0;value=ds1302_readd(c_sec);/timei=ds1302_readd(addr|rd);time0=(value&0x70)4)*10+(value&0x0f);while(count=2);br
32、eak;case 2:dohide_sec=0;outkey();upkey();if(up_flag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_min|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0; hide_min+;if(hide_min10)hide_min=0;value=ds1302_readd(c_min);/timei=ds1302_readd(addr|rd);time1=(value&0x70)4)*10+(value&0x0f);while(count=3);
33、break;case 3:dohide_min=0;outkey();upkey();if(up_flag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_hr|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0;hide_hour+;if(hide_hour10)hide_hour=0;value=ds1302_readd(c_hr);/timei=ds1302_readd(addr|rd);time2=(value&0x70)4)*10+(value&0x0f);while(count=4
34、);break;case 4:dohide_hour=0;outkey();upkey();if(up_flag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_wk|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0;hide_week+;if(hide_week10)hide_week=0;value=ds1302_readd(c_wk);time5=(value&0x70)4)*10+(value&0x0f);while(count=5);break;case 5:dohide_week
35、=0;outkey();upkey();if(up_flag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_day|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0;hide_day+;if(hide_day10)hide_day=0;value=ds1302_readd(c_day);time3=(value&0x70)4)*10+(value&0x0f);while(count=6);break;case 6:dohide_day=0;outkey();upkey();if(up_fl
36、ag=1)ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_mth|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0;hide_month+;if(hide_month10)hide_month=0;value=ds1302_readd(c_mth);time4=(value&0x70)4)*10+(value&0x0f);while(count=7);break;case 7:dohide_month=0;outkey();upkey();if(up_flag=1)ds1302_writed(c
37、_wp|wr,unprotect);ds1302_writed(c_yr|wr,temp);ds1302_writed(c_wp|wr,protect);up_flag=0;hide_year+;if(hide_year10)hide_year=0;value=ds1302_readd(c_yr);time6=(value&0x70)4)*10+(value&0x0f);while(count=8);break;case 8: count=0;/*hide_sfm=0;hide_week=0;hide_nyr=0;*/hide_sec=0,hide_min=0,hide_hour=0,hide
38、_day=0,hide_week=0,hide_month=0,hide_year=0;second=ds1302_readd(c_sec);ds1302_writed(c_wp|wr,unprotect);ds1302_writed(c_sec|wr,second&0x7f);ds1302_writed(c_wp|wr,protect);done=0;break;default:break;void init()tmod=0x01;th0=0xfc;tl0=0x18;et0=1;tr0=1;ea=1;void main()init();ds1302_init();while(1)while(
39、done=0) ds1302_gett(); setkey(); qiehuankey(); flag=0;while(done=1) keydone();void time0(void) interrupt 1th0=0xfc;tl0=0x18;cnt+;if(cnt9)cnt=0;if(num=0)switch(cnt)case 1:if(hide_sec6)p0=seg7time0%10;p2=act0;break;elsep0=0xff;p2=act0;break;case 2:if(hide_sec6)p0=seg7time0/10;p2=act1;break;elsep0=0xff
40、;p2=act1;break;case 3:if(hide_min6)p0=seg7time1%10;p2=act2;break;elsep0=0xff;p2=act2;break;case 4:if(hide_min6)p0=seg7time1/10;p2=act3;break;elsep0=0xff;p2=act3;break;case 5:if(hide_hour6)p0=seg7time2%10;p2=act4;break;elsep0=0xff;p2=act4;break;case 6:if(hide_hour6)p0=seg7time2/10;p2=act5;break;elsep
41、0=0xff;p2=act5;break;case 7:if(hide_week6)p0=seg7time5%10;p2=act6;break;elsep0=0xff;p2=act6;break;case 8:if(hide_week6)p0=seg7time5/10;p2=act7;break;elsep0=0xff;p2=act7;break;if(num=1)switch(cnt)case 1:if(hide_day6)p0=seg7time3%10;p2=act0;break;elsep0=0xff;p2=act0;break;case 2:if(hide_day6)p0=seg7ti
42、me3/10;p2=act1;break;elsep0=0xff;p2=act1;break;case 3:if(hide_month6)p0=seg7time4%10;p2=act2;break;elsep0=0xff;p2=act2;break;case 4:if(hide_month6)p0=seg7time4/10;p2=act3;break;elsep0=0xff;p2=act3;break;case 5:if(hide_year6)p0=seg7time6%10;p2=act4;break;elsep0=0xff;p2=act4;break;case 6:if(hide_year6
43、)p0=seg7time6/10;p2=act5;break;elsep0=0xff;p2=act5;break;case 7:p0=seg70;p2=act6;break;case 8:p0=seg72;p2=act7;break;6 数字时钟的实现系统由at89c52、led 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。用at89c2051单片机控制的数字钟,显示器件选用led七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。另外应有校时功能。电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。用晶体振荡
44、器产生时间标准信号,这里采用石英晶体振荡器。根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个12进制(时)的计数器。构成秒、分、时的计数,实现计时的功能。7 结论 这次是单片机的第一次课程设计比以往的课程设计要难,不仅仅是只写论文就可以了,还得自己买电器元气,自己做电路板。这在很大程度上锻炼了我们各自的思考能力和动手能力,避免了以往的抄袭和偷懒的行为,凡是都是自己亲力亲为,这样就将自己以前不懂的、一知半解的一网打尽。但在老师的指导下和同学们的帮助下经过两个多星期的不停的设计,终于把stc89c52单片机芯片数字时钟的电路原理图以及单片机实物完成了
45、。经过了这次课程设计,极大地提高了我的独立思考分析问题的能力,同时激发了我对这方面的兴趣。这次课程设计,让我学到了很多有用的知识和加强了能力,让我知道了stc89c52在整个时钟电路中的作用以及各部分电路的原理,更是看到了上拉电阻的作用,通过做出一个实物来,自己在焊接方面的技术也有的很大的提高。可谓受益匪浅,当然也发现自己许多不足之处,尤其是在理论与实践中脱节。也体会到其实自己想到的并不一定是自己能够轻易做到的,凡事都要靠自己的不断实践,进而将自己的实践水平不断提高到相应的理论水平上来,当然自己的理论知识也不够火候,还得努力加强。这次课程设计明白其实动手操作是以牢固的理论知识为基础的。因而这就
46、要求我更加努力去学好课本知识。在这次的课程设计中主要用的软件就是protel 99 se,之前我对它的了解是少之甚少,更别说用。刚开始设计电路图是完全就无从下手,最后没办法只好拿起以前的书本从头学起,幸好在同学的帮助与鼓励下,循序渐进,总算能够独立画出自己想画的电路了,虽然比那些学得好的同学画的差很多,但心里很高兴,因为自己学到了东西,我觉得每一次的课程设计不仅很有必要也很有意义,因为它能让我们既学到知识又让我们体会到了学习的快乐。g an employment tribunal claimemployment tribunals sort out disagreements between
47、employers and employees.you may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.for more information about dismissal and unfair dismissal, seedismissal.you can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. however, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.remember that
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三亚航空旅游职业学院单招职业技能考试题库有答案详细解析
- 2026四川凉山州交城建设项目管理有限责任公司招聘9人笔试备考题库及答案解析
- 2026浙江事业单位统考庆元县招聘32人考试备考题库及答案解析
- 2026长城汽车招聘笔试参考题库及答案解析
- 2026陕西西安交通大学第一附属医院招聘笔试参考题库及答案解析
- 2025年草坪绿化工程师备考题库及答案解析
- (2025年)通信工程师考试考试综合练习及答案详解(基础+提升)
- 公路工程路基工程施工方案
- 职业健康管理要点
- 《成都市存量房买卖合同》
- 可变速抽水蓄能机组控制方法与特性:理论、实践与优化
- RFID技术应用案例
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- DB5301∕T 102-2024 应用软件定制开发成本测算指南
- 2025护理分级新标准
- GB/T 42124.3-2025产品几何技术规范(GPS)模制件的尺寸和几何公差第3部分:铸件尺寸公差、几何公差与机械加工余量
- T/CTRA 01-2020废轮胎/橡胶再生油
- DB31/T 1363-2022口腔综合治疗台水路卫生管理要求
- 可信数据空间解决方案星环科技
- 啦啦操队形变化设计与编排
- 《公路工程质量控制》课件
评论
0/150
提交评论