1、目 录一、 课程设计的主要内容和要求 1二、 实现原理等知识的介绍22.1电子时钟的设计2.2单片机识的相关知识三、 系统的总体方案设计说明;3.1总体设计方案3.2总设计原理框图四、 具体实现步骤的设计说明;五、 单片机系统程序的编制;六、 测量过程的操作说明,原始测量数据的记录;七、 结论及存在问题;八、 心得体会总结;九、 参考文献。一、主要内容和要求1 主要内容:设计一个数字式电子钟,它具有时,分,秒的计时功能,可以通过键盘进行时间设定,并且将时间显示在LED数码管上。用按键设定时钟的时、分、秒,用扫描方式动态显示。时钟用定时中断方式工作,单片机晶体震荡器频率11.0592Mhz.。可
2、选做双机通信实验,实现子母钟功能,即由其中一台做时钟,另一台采集时钟值并显示。 2 对于基本题目要求是:用按键设定时钟的时、分、秒。要求用4键方式,即选择、加、减、确认键,选择键用于选择修改起始时、分、秒值,每按一次,被修改数码管顺序移动并闪烁。用+,- 键修改数值,确认键确定修改结束。a)用扫描方式动态显示时、分、秒,第2,4 数码管加小数点,并且要求第4数码管小数点每秒闪烁一次。b) 时钟用定时中断方式工作。注意单片机晶体震荡器频率是11.0592Mhz.。c)可选做双机通信实验,实现子母钟功能,即由其中一台做时钟,另一台采集时钟值并显示。二、实现原理等知识的介绍2.1电子时钟的相关知识1
3、电子时钟简介电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。2电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。3电子时钟的工作原理该电子时钟由89C5
4、1,MAX232,LED数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时。用按键设定时钟的时、分、秒。通过四个按键即选择、加、减、确认键,选择键用于选择修改起始时、分值,每按一次,被修改数码管顺序移动并闪烁。用+,- 键修改数值,确认键确定后秒位清零,修改结束。2.2单片机的相关知识1单片机简介单片机全称为单片机微型计算机(Single Chip Microsoftcomputer)。从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片机是将计算机的基
5、本部件微型化并集成在一块芯片上的微型计算机。2 单片机的发展史3 4位单片机 1975年,美国德克萨斯仪器公司首次推出4位单片机TMS-1000;此后,各个计算机公司竞相推出四位单片机。日本松下公司的MN1400系列,美国洛克威尔公司的PPS/1系列等。四位单片机的主要应用领域有:PC机的输入装置,电池充电器,运动器材,带液晶显示的音/视频产品控制器,一般家用电器的控制4 8位单片机 1972年,美国Intel公司首先推出8位微处理器8008,并于1976年9月率先推出MCS-48系列单片机。在这以后,8位单片机纷纷面市。例如,莫斯特克和仙童公司合作生产的3870系列,摩托罗拉公司生产的680
6、1系列等。随着集成电路工艺水平的提高,一些高性能的8位单片机相继问世。例如,1978年摩托罗拉公司的MC6801系列及齐洛格公司的Z8系列,1979年NEC公司的UPD78XX系列。这类单片机的寻址能力达64KB,片内ROM容量达4-8KB,片内除带有并行IO口外,还有串行IO口,甚至还有AD转化器功能。8位单片机由于功能强,被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用电器等各个领域。5 16位单片机 1983年以后,集成电路的集成度可达几十万只管/片,各系列16位单片机纷纷面市。这一阶段的代表产品有1983年Intel公司推出的MCS-96系列,1987年Intel推出
7、了80C96,美国国家半导体公司推出的HPC16040,NEC公司推出的783XX系列等。16位单片机主要用于工业控制,智能仪器仪表,便携式设备等场合。6 32位单片机 随着高新技术只智能机器人,光盘驱动器,激光打印机,图像与数据实时处理,复杂实时控制,网络服务器等领域的应用与发展,20世纪80年代末推出了32位单片机,如Motorlora公司的MC683XX系列,Intel的80960系列,以及近年来流行的ARM系列单片机。32位单片机是单片机的发展趋势,随着技术的发展及开发成本和产品价格的下降,将会与8位单片机并驾齐驱。7 64位单片机 近年来,64位单片机在引擎控制,智能机器人,磁盘控制
8、,语音图像通信,算法密集的实时控制场合已有应用,如英国Inmos公司的Transputer T800是高性能的64位单片机。2.2.3单片机的特点 1 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 单
9、片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。2.2.4数码管显示工作原理LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为反映出半导体材料的特性。常见管芯材料有磷化镓(GaP)、砷化镓(GaAs)、磷砷化镓(GaAsP)、氮化镓(GaN)等,其中氮化镓可发蓝光。发光颜色不仅与管芯材料有关,还与所掺杂质有关,因此用同一种管芯材料可以制成发出红、橙、黄、绿等不同颜色的数码
10、管。其他颜色LED数码管的光谱曲线形状与之相似,仅入,值不同。LED数码管的产品中,以发红光、绿光的居多、这两种颜色也比较醒目。LED数码管等效于多只具有发光性能的PN结。当PN结导通时,依靠少数载流子的注人及随后的复合而辐射发光,其伏安特性与普通二极管相似。在正向导通之前,正向电流近似于零,笔段不发光。当电压超过开启电压时,电流就急剧上升,笔段发光。因此,LED数码管属于电流控制型器件,其发光亮度L(单位是cdm2)与正向电流IF有关,用公式表示:L=KIF即亮度与正向电流成正比。LED的正向电压U,则与正向电流以及管芯材料有关。使用LED数码管时,工作电流一般选10mA左右段,既保证亮度适
11、中,又不会损坏器件。三、系统的总体方案设计说明3.1总体设计方案本次设计时钟电路,使用了ATC89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:按键、芯片、扬声器、LED数码管即可满足设计要求。3.2总设计原理框图如下图所示:89C52时钟电路校时输入数据显示四、具体实现步骤的设计说明4.1 电路设计原理说明本设计电路,硬件部分共由五个模块组成:按键模块、复位电路模块、晶振电路模块、发声模块、时间显示模块。晶振电路
12、模块负责给单片机提供时钟周期。复位单路模块负责上电后自动复位,或按键后强制复位。上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按下,即进入相应的功能函数。4.2各部分电路说明1按键模块按键模块如图所示。图 按键模块在该模块中,采用四个按键作为电子时钟的控制输入,通过按键来实现时钟的时间设置功能。电路中将四个按键的一端接公共地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的额管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作。2单片机的复位电路单片机
13、的复位电路,如图所示。图单片机的复位电路当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电后,保持RST一段高电平时间。3单片机的晶振电路单片机的晶振电路,如图所示。图 单片机的晶振电路石英晶体也连接在晶振引脚的输入和输出之间,等效为一个并联谐振回路,振荡频率应该是石英晶体的并联谐振频率。晶体旁边的两个电容接地,实际上就是电容三点式电路的分压电容, 接地点就是分压点。以
14、接地点即分压点为参考点,振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来看, 形成一个正反馈以保证电路持续振荡。4发声模块发声模块,如图所示。图 发声指示模块发声模块由蜂鸣器、电源、8550三极管、限流电阻组成。蜂鸣器由PNP三极管驱动,当BZ管脚为高时,三极管be级没电压差,三极管截止;反之,三极管导通,有电流流经蜂鸣器,蜂鸣器发声。5时间显示模块时间显示模块如图所示。图 时间显示模块时间显示部分的电路也很简单,由五个一位的共阴8段数码管、五盏发光二极管组成。在显示过程中,单片机将要显示的数字传递给89C52芯片,同时通过位选选通要显示的数码管。五、单片机系统程序的编制5.1程
15、序设计18ORG0000HLJMPSTART;转初始化ORG000BHLJMPPGT0;T0中断入口ORG0033HSTART:DIS1EQU30HDIS2EQU31HDIS3EQU32HDIS4EQU33HDIS5EQU34HDIS6EQU35HDISXSEQU36HDISFZEQU37HDISMZEQU38HMS500EQU39H K1BITP3.2K2BITP3.3K3BITP3.4K4BITP3.5BDPBIT01Hbd BIT02HMOVSP,#50H;初始化程序MOVP0,#0FFHMOVP1,#0FFHMOVP2,#0FFHMOVP3,#0FFHMOVTMOD,#01H;定时器T
16、0工作于方式1 MOVTH0,#4CH;定时器初值MOVTL0,#05HMOVIE,#82HMOVR3,#10SETBTR0MOVDIS1,#00H;清显示缓冲区MOVDIS2,#00HMOVDIS3,#00HMOVDIS4,#00HMOVDIS5,#00HMOVDISXS,#12;初始化时间为12:30:00MOVDISFZ,#30MOVDISMZ,#0MOVMS500,#0MAIN:;主程序 jnb k2,d1 jnb k3,d2 jnb k4,d3 jnb k1,d4 d1: ljmp send d2: ljmp send d3: ljmp send d4: jnb k1,qu1 qu1
17、:lcall sound ajmp god1k1dd: jb k2,k2dd lcall ys10ms lcall sound inc disxs mov a,disxs cjne a,#24,bj mov disxs,#00h ljmp god1 bj: jc d0 mov disxs,#00h ljmp god1 d0: ajmp god1k2dd: jb k3,k3dd lcall ys10ms lcall sound mov a,disxs cjne a,#00,bj2 mov disxs,#23 ajmp god1 bj2: dec disxs ajmp god1k3dd: jb k
18、2,k4dd lcall ys10ms lcall sound inc disfz mov a,disfz cjne a,#60,bj3 lcall ys10ms mov disfz,#00h ljmp god2 bj3: jc t0 mov disfz,#00h ljmp god2 t0: ljmp god2k4dd: jb k3,tj lcall ys10ms lcall sound mov a,disfz cjne a,#00h,bj4 mov disfz,#59 ljmp god2 bj4: dec disfz ljmp god2 tj: ljmp god2 zy1: ljmp k1d
19、d zy2: ljmp k2ddgod1: lcall ys10ms MOV A,DISXS MOV B,#10 DIV AB ;转换当前小时数据 MOV DIS1,A ;得到十小时值 MOV DIS2,B ;得到小时值 CLR P2.6 ;允许数码管显示 MOV A,DIS1 ;显示十小时值 MOV DPTR,#SGTB MOVC A,A+DPTR MOV P0,A CLR P2.0 setb P2.1 SETB P2.2 SETB P2.3 setb P2.4 LCALL DELAY05s MOV A,DIS2;显示小时值 MOV DPTR,#SGTB MOVC A,A+DPTR JB B
20、Dp,DP0 ANL A,#01111111BDP0: MOV P0,A setb P2.0 CLR P2.1 SETB P2.2 SETB P2.3 setb P2.4 LCALL DELAY05s jnb k1,qu2 jnb k2,zy1 jnb k3,zy2 setb p2.0 setb p2.1 jnb k4,z0 sjmp god1 qu2: lcall sound ljmp god2 z0: mov dismz,#00h ljmp sendgod2: lcall ys10ms MOV A,DISFZ MOV B,#10DIV AB ;转换当前分钟数据 MOV DIS3,A ;得到
21、十分值 MOV DIS4,B ;得到分值 MOV A,DISFZ MOV B,#10 DIV AB ;转换当前分钟数据 MOV DIS3,A ;得到十分值 MOV DIS4,B ;得到分值 CLR P2.6 ;允许数码管显示 MOV A,DIS3 ;显示十分钟值 MOV DPTR,#SGTB MOVC A,A+DPTR MOV P0,A setb P2.0 SETB P2.1 clr P2.2 SETB P2.3 setb P2.4 LCALL DELAY05s MOV A,DIS4 ;显示分钟值 MOV DPTR,#SGTB MOVC A,A+DPTR JB bdp,DP4 ANL A,#0
22、1111111BDP4: MOV P0,A SETB P2.0 setb P2.1 SETB P2.2 clr P2.3 setb P2.4 lcall delay05s jnb k2,zy3 jnb k3,zy4 jnb k1,z5 jnb k4, z1 setb p2.2 setb p2.3 ljmp god2 z5: lcall sound ljmp god1 z1: mov dismz,#00h jnb k4,send zy3: ljmp k3dd zy4: ljmp k4ddSEND: MOV A,DISMZ ;处理当前秒数据 MOV B,#10 DIV AB ;10进制转换 MOV
23、 DIS5,A ;得到十秒值 MOV DIS6,B ;得到秒值 CJNE A,#00,TST1 MOV P1,#0FFH AJMP TSTTST1: CJNE A,#01,TST2;将十秒值用P1口的发光二极管来显示 MOV P1,#11111110B AJMP TSTTST2: CJNE A,#02,TST3 MOV P1,#11111100B AJMP TSTTST3: CJNE A,#03,TST4 MOV P1,#11111000B AJMP TSTTST4: CJNE A,#04,TST5 MOV P1,#11110000B AJMP TSTTST5: CJNE A,#05,TST
24、MOV P1,#11100000BTST: MOV A,DISFZ MOV B,#10 DIV AB ;转换当前分钟数据 MOV DIS3,A ;得到十分值 MOV DIS4,B ;得到分值 MOV A,DISXS MOV B,#10 DIV AB ;转换当前小时数据 MOV DIS1,A ;得到十小时值 MOV DIS2,B ;得到小时值 CLR P2.6 ;允许数码管显示 MOV A,DIS1 ;显示十小时值 MOV DPTR,#SGTB MOVC A,A+DPTR MOV P0,A CLR P2.0 SETB P2.1 SETB P2.2 SETB P2.3 SETB P2.4 LCAL
25、L DELAY MOV A,DIS2;显示小时值 MOV DPTR,#SGTB MOVC A,A+DPTR JB BDP,DP1 ANL A,#01111111BDP1: MOV P0,A SETB P2.0 CLR P2.1 SETB P2.2 SETB P2.3 SETB P2.4 LCALL DELAY MOV A,DIS3;显示十分钟值 MOV DPTR,#SGTB MOVC A,A+DPTR MOV P0,A SETB P2.0 SETB P2.1 CLR P2.2 SETB P2.3 SETB P2.4 LCALL DELAY MOV A,DIS4;显示分钟值 MOV DPTR,#
26、SGTB MOVC A,A+DPTR JB BDP,DP2 ANL A,#01111111BDP2: MOV P0,A SETB P2.0 SETB P2.1 SETB P2.2 CLR P2.3 SETB P2.4 LCALL DELAY十秒值已经用发光二极管来表示,第五位数码管显示的是秒值MOV A,DIS6 ;显示秒值MOV DPTR,#SGTB1MOVCA,A+DPTRMOV P0,ASETBP2.0SETBP2.1SETBP2.2SETBP2.3CLRP2.4LCALLDELAYAJMPMAIN ;循环PGT0: PUSH ACC ;定时器T0中断处理程序MOVTH0,#4CH ;5
27、0MSMOVTL0,#05HDJNZR3,T0RETMOVR3,#10 CPLBDP INCMS500MOVA,MS500CJNEA,#2,T0RETMOVMS500,#00H INC DISMZMOV A,DISMZCJNE A,#60,T0RETMOV DISMZ,#00H INC DISFZMOV A,DISFZCJNE A,#60,T0RETMOV DISFZ,#00H INC DISXSMOV A,DISXSCJNE A,#24,T0RETMOV DISXS,#00HT0RET:POPACCRETI* 8位共阳数码管字型表 *SGTB:DB 0C0H,0F9H,0A4H,0B0H,9
28、9H,92H,82H,0F8H, 80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,89H,0A3H, 8CH,0C8Hsgtb1: db 24h,7dh,0e0h,70h,39h,32h,22h,7ch,20h, 30h,28h,23h,0a6h,61h,0a2h,0aah* 延时子程序 *DELAY:MOVR1,#2Y1:MOVR2,#200DJNZR2,$DJNZR1,Y1RET* 10ms延时程序 *YS10MS:MOVR7,#100DL1:MOVR6,#0FFHDL0:DJNZR6,DL0DJNZR7,DL1RET* 音效子程序 *SOUND:MOVR7,#2
29、28SDL1:CPLP3.7MOVR6,#0FFHSDL0:DJNZR6,SDL0DJNZR7,SDL1 RET* 0.5s延時子程序 *DELAY05s:MOVR5,#2D8:MOVR6,#10D9:MOVR7,#248DJNZR7,$DJNZR6,D9DJNZR5,D8RETEND5.2 程序流程图延时1秒按键K1为0YN子程序2子程序1YNNYDISFZ=00DISXS+1DISXS=24DISXS=0NYYN按键K1为0DISMZ=00DISFZ+1DISFZ=60主程序SENDDISMZ=60DISMZ+1I开始计数单元清零TH0、TL0装入初值开中断,并允许T0中断子程序1开始NN
30、K2=1K3=1DISFZ+1DISFZ-1K4 =1主程序SENDYYN子程序1开始NNK2=1K3=1DISXS+1DISXS-1K4 =1主程序SENDYYN六、测量过程的操作说明,原始测量数据的记录。6.1操作说明操作功能说明功能说明表按键功能K1当按一下K1,进入调整小时状态,再按一下,进入到调整分钟状态,如此循环K2用来对 小时 和 分钟 进行加时间(每次加1)K3用来对 小时 和 分钟 进行减时间(每次减1)K4确认键,退出选中小时或分钟发光二极管对秒数的十位数进行记录,亮一盏灯代表十秒,亮两盏灯代表二十秒,如此累推6.2原始测量数据的记录数据记录表初始值12300 按一次K11
31、2# 按一次K213# 按一次K312# 第二次按K1#30# 按一次K2#31# 按一次K3#30# 按K412300七、结论及存在问题 通过用汇编对K1、K2、K3、K4的编译,可以初步实现调整时钟时间的功能。但在编译过程中也遇到不少问题,第一,编译时有跳出转移范围的问题,这是由于判断语句 JB、JNB 的转移范围是-128+127字节,出现这样的问题是由于超出转移范围。第二,要实现选中小时或者分钟位上的闪烁,要用到延时和对数码管的显示效果,但达不到指定目的,数码管闪烁的效果不明显,这是由于延时的时间不够长,使得人眼难以看得清。八、心得体会总结本文介绍的是利用AT89C51单片机设计的有调
32、时功能的电子时钟。并详细说明了软件和硬件设计方法。在设计过程中可以看出,汇编语言有着其独特的魅力,它简单易学,语法错误容易纠正;用单片机实现电子时钟的设计是比较方便和易于实现。通过电子时钟的设计和制作,加深了对单片机的理解,能够更熟练地应用单片机实现预期的功能,对今后的学习有很大的帮助。电子时钟各项功能的实现,为自动控制的实现打下了理论基础,获得了实现方法。当然,该电子钟还有很多不足之处,比如不能定时,不能报时。断电后不能只能调时。在今后的学习中还要对此加以研究,九、参考文献及网站单片机原理及其接口技术胡汉才 编著 北京 清华大学出版社51系列单片机及C51程序设计王建校等 科学出版社其它有关资料几个有关单片机和芯片资料的网站: http:/www.mcu- http:/www.wave- .等及其相关链接
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100