基于STC单片机的电子时钟毕业设计_第1页
基于STC单片机的电子时钟毕业设计_第2页
基于STC单片机的电子时钟毕业设计_第3页
基于STC单片机的电子时钟毕业设计_第4页
基于STC单片机的电子时钟毕业设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、装订线 电子时钟摘要 本设计是基于stc单片机的电子时钟技术,由stc12c5a16s2芯片和lcd1602液晶显示屏,ds18b20进行温度测量,辅以必要的的电路,构成一个单片机定时闹钟。电子钟可采用数字电路实现,也可以采用单片机来完成。lcd显示“时”,“分”,led闪动来做秒计数,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。 在这次设计中主要是用stc12c5a16s2来进行定时,也结合着其他辅助电路实施控制,在定时的时

2、候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。关键词 定时闹钟stc12c5a16s2lcd16021共 2 页 第 1 页time clockabstract the regular alarm clock designers design, by the microcontroller stc12c5a16s2 chip andlcd1602display、 ds18b20 , combined with the necessary circuitry to form a single-chip timer alarm

3、clock. clock can be digital circuit, the microcontroller can also be used to complete. lcd display when, sub, led flash to do the second count, regular time to be able to sound an alarm or start relay to control the electrical start and stop. now is the era of highly developed automation, especially

4、 electronic products are relying on the internal control circuitry to achieve control of the product to achieve the purpose of automatic operation, which requires us to do the design of electrical components and circuits to support . in this design it is mainly used to carry out regular at89s51, but

5、 also combined with other auxiliary circuit implementation of the control, in time, when you click a control button on the hour plus one hour; click the button on the control minutes plus one minute; reach preset time, this will sound an alarm circuit has prompted the pointkey words time clock stc12

6、c5a16s2 lcd1602共 2 页 第 2 页目 录引 言11 电子时钟的设计目的和要求21.1设计目的21.2设计要求22 电子时钟的设计流程32.1总体方案的原理32.2总体设计方案和框图33 系统硬件设计43.1stc12c5a16s2单片机43.2模块电路53.2.1 复位电路与晶振电路53.2.2显示模块及芯片53.串口通讯单元73.蜂鸣器单元73.1鸣器的结构原理73.2蜂鸣器的驱动83.4.3蜂鸣器驱动电路83.4.4蜂鸣器驱动设计94 系统软件设计104.1程序流程图104.2 电子时钟主要程序115 安装调试17总 结18参 考 文 献19附录 电路原理图203共 1

7、页 第 1 页 引 言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成cpu、存储器、定时器计数器、并行和串行接口、看门狗、前置放大器、ad转换器、da转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展。单片机技术作为自动控制技术的核心之一,被广泛应用于工业控制、智能仪器、机电产品、家用电器等领域。随着微电子技术的迅速发展,单片机功能也越来越强大,本设计基于stc单片机的电子时钟技术,以stc12c5a16s2为核心,构成数字钟,首先应选择一个脉冲源能自动地产生稳定的标准时间脉

8、冲信号。而脉冲源产生的脉冲信号的频率较高,因此,需要进行分频,使得高频脉冲信号转变为适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1hz)。校时电路一般采用自动快速调整和手动调整,“自动快速调整”可利用分频器输出的不同频率的脉冲使显示的时间自动迅速调整。“手动调整”可利用手动的节拍调准显示时间。基于要求本次采用了自动快速调整。数字闹钟要求有定时响闹的功能,故需要提供设定闹时电路和对比起闹电路。设时电路应共享译码器、驱动器到数字显示器,以便使用者设定时间,并可减少电路的芯片数量;而对比起闹电路提供声源,应具有人工止闹功能,止闹后不再重新操作,将不再发生起闹等功能。 共 20 页 第 0 页装

9、订线长 春 大 学 课程设计纸 1 电子时钟的设计目的和要求1.1设计目的(1) 掌握时钟的基本构件;(2) 掌握各电子元器件的基本形状及其功能;(3) 掌握各电子元器件的焊接步骤与工作原理;(4) 掌握单片机内部结构与程序编制方法; (5) 掌握数码管内部结构,掌握数码显示技术;()通过本次设计实验,对自己的专业知识掌握和运用有一个系统的考核。1.2设计要求利用实验开发板上的液晶显示屏,设计带有闹钟及日期显示功能的数字时钟。(1) 利用液晶显示屏显示时间及日期,时间为24小时制,日期格式为年-月-日;(2) 利用按键对时间、日期、闹铃进行设置,到闹铃时间到时,蜂鸣器发出声音, 按停止键可使闹

10、铃停止;(3) 用了led做闹铃倒计时显示。()实现的功能在数字钟正常进行显示时其显示周期为000000至23:59:59,其中有五个按键按下“暂停”键时钟停止走动按下“开始”键时钟开始走动按下“秒设置”时钟秒位自加1加至60时向分位进1按下“分设置”时钟分位自加1加至60时向时位进1按下“时设置”时钟秒位自加1加至24时显示00。 2 电子时钟的设计流程2.1总体方案的原理在一个完整的闹钟系统的设计中,我们采用的是自顶向下的设计思想,整个系统由若干个模块组合来实现,包括计数模块、控制模块、译码模块、动态扫描输出模块、闹钟控制模块。设计闹钟时应考虑的问题有:闹钟能否计数、能否对计时时间进行调整

11、,定时闹铃功能是否正常,动态扫描显示是否正常等等。2.2总体设计方案和框图图2-1电子时钟系统框图电子闹钟应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。 按键功能说明:k1,设置时间和闹钟的小时;k2,设置小时以及设置闹钟的开关;k3,设置分钟和闹钟的分钟;k4;设置完成退出电子闹钟的主电路指的是图2-1中虚线框内部分,主要涉及到cpu电路和按键按钮电路。主机的设计具体地说有:(1)系统时钟电路设计;(2)系统复位电路设计;(3)按键与按钮电路设计:(4)闹铃声指示电路设计。3 系统硬件设计3.1stc12c5a16s2单片机教学用电子打铃器主要由stc12c5

12、a16s2单片机、键盘扫描模块、时钟和复位模块、蜂鸣器模块、lcd1602显示模块等组成。运用汇编语言来控制单片机stc12c5a16s2来实现、动态数码显示等功能。且本设计中的stc12c5a16s2单片机是整个工作过程的核心,是整个设计灵魂,它控制了脉冲时序的产生显示信号的发送控制显示led的选择。 stc12c5a16s2是一种带4k字节存储器的低电压、高性能cmos 8位微处理器,俗称单片机.图3-1 stc12c5a16s2管脚图p0.0p0.7(3932)p0口是一个漏极开路型准双向i/o口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉

13、电阻。在eprom编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。p1.0p1.7(1-8):p1口是带内部上拉电阻的8位双向i/o口。在eprom编程和程序验证时,它接收低8位地址。 p2.0p2.7(21-28):p2口是一个带内部上拉电阻的8位双向i/o口。在访问外部存储器时,它送出高8位地址。在对efrom编程和程序验证期间,它接收高8位地址。 p3.0p3.7(10-17):p3口是一个带内部上拉电阻的8位双向i/o口。此部分是整个闹钟运行的核心部件,起着控制闹钟所有运行状态的作用。控制方法有很多,大部分都采用单片机控制。由于51单片机具有价格低廉是

14、使用简单的特点,这里选择了atmel公司的stc12c5a16s2作为控制核心部件。stc12c5a16s2单片机系列的存储器用的是哈佛结构,即将程序和数据存储 截然分开,程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统。stc89c52的存储器可分为五类:程序存储器,内部数据存储器,特殊功能寄存器,位地址空间,外部数据存储器。3.2模块电路3.2.1 复位电路与晶振电路 复位电路是单片机系统必须的,用来为单片机提供正确的复位信号;振荡电路就为单片机工作提供了所需要的时钟脉冲信号,使单片机的开始正常工作; 如图3-2所示 18脚和19接时钟电路,xtal1接外部晶振和微调电容的一端

15、,在片内它是振荡器倒相放大器的输入,xtal2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出;第9引脚为复位输入端,接上电容,电阻及开关后能够形成上电复位电路。图3-2 复位电路与晶振电路3.2.2显示模块及芯片液晶显示器各种图形的显示原理:线段的显示,点阵图形式液晶由mn个显示单元组成,假设lcd显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示ram区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由ram区的000h00fh的16字节的内容决定,当000h=f

16、fh时,则屏幕的左上角显示一条短亮线,长度为8个点,当3ff=ffh时,则屏幕的右下角显示一条短亮线当000h=ffh,001h=00h,002h=00h00eh=00h,00fh=00h时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是lcd显示的基本原理。字符的显示:用lcd显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示ram区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮。为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说。显示字符就比较简单了,可以让控制器工作在文本方式,根据

17、在lcd上开始显示的行列号及每行的列数找出显示ram对应的地址设立光标在此送上该字符对应的代码即可。图3-3 lcd1602液晶显示模块3.串口通讯单元max232芯片是美信公司专门为电脑的rs-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 引脚图片: 图3-4max232管脚及功能引脚介绍:主要分为几部分电荷泵电路:由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。 数据转换通道:由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(r1in)、12脚(r1out)、11脚(t1in)、1

18、4脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。 ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑db9插头;db9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。 供电:15脚gnd、16脚vcc(+5v)。 由于rs232电平较高,在接通时产生的瞬时电涌非常高,很有可能击毁max232,所以在使用中应尽量避免热插拔。3.蜂鸣器单元3.1鸣器的结构原理(1)压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片

19、、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 (2)电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 3.2蜂鸣器的驱动 在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。这里对单片机在蜂鸣器驱动上的应用作一下描述。图3-5为蜂鸣器发声电路原理图。图3-5蜂鸣器发声电路原理图图3-5蜂鸣器发声电路原理图驱动方式:由于自激蜂鸣器是直流电压驱

20、动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty 的方波信号进行驱动的他激蜂鸣器进行说明。 单片机驱动他激蜂鸣器的方式有两种:一种是pwm 输出口直接驱动,另一种是利用i/o 定时翻转电平产生驱动波形对蜂鸣器进行驱动。 pwm 输出口直接驱动是利用pwm 输出口本身可以输出一定的方波来直接驱动蜂鸣器。比如频率为2000hz 的蜂鸣器的驱动,可以知道周期为500s,这样只需要把pwm 的周期设置为500s,占空比电平设置为250s,就能产生一个频率为2000hz 的方波,通

21、过这个方波再利用三极管就可以去驱动这个蜂鸣器了。3.4.3蜂鸣器驱动电路由于蜂鸣器的工作电流一般比较大,以致于单片机的i/o 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。下图为比较安全的驱动电路 图3-6蜂鸣器安全的驱动电路图3.4.4蜂鸣器驱动设计由于这里要介绍两种驱动方式的方法,所以程序不仅介绍了pwm 输出口驱动蜂鸣器的方法,还要介绍i/o 口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统来说明单片机对蜂鸣器的驱动:系统有两个他激蜂鸣器,频率都为2000hz,一个由i/o 口进行控制,另一个由pwm 输出口进行控制;系统还有两个按键,一个按键为por

22、t 按键,i/o 口控制的蜂鸣器不鸣叫时按一次按键i/o 口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为pwm 按键,pwm 口控制的蜂鸣器不鸣叫时按一次按键pwm输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。5 pwm 输出口直接驱动蜂鸣器方式由于pwm 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对pwm 的输出波形进行设置。 首先根据sh69p43 的pwm 输出的周期宽度是10 位数据来选择pwm 时钟。系统使用4mhz 的晶振作为主振荡器,一个tosc 的时间就是0.25s,若是将pwm 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500s 的计数值为500s/0.

23、25s=(2000)10=(7d0)16,7d0h 为11 位的数据,而sh69p43 的pwm 输出周期宽度只是10 位数据,所以选择pwm 的时钟为tosc 是不能实现蜂鸣器所要的驱动波的。共 20页 第 20 页4 系统软件设计4.1程序流程图初始化时钟显示定时是否到k1是否按下k2是否按下miao是否0分加1时加1beep1=1?闹铃响定时显示k.2是否按下k3是否按下miao1是否0时加1分加1yyyyyyyynnnnnnnn图4-1系统总流程图4.2 电子时钟主要程序#include#include sbit sclk = p10; /ds1302时钟口p1.0sbit io =

24、p11; /ds1302数据口p1.1sbit rst = p12; /ds1302片选口p1.2unsigned char code init = 0x00, 0x00, 0x20, 0x01, 0x01, 0x05, 0x10;unsigned char data now7;void ds1302_initial();void ds1302_settime(unsigned char *p);void ds1302_gettime(unsigned char *p);sbit lcd_rs = p17; sbit lcd_wr = p16;sbit lcd_en = p15;void wr

25、ite_com(unsigned char com);void write_date (unsigned char date);void init();void delay(int ms);void delayms( unsigned int z);void write_sfm(unsigned char add,unsigned char date);void main() /unsigned char i3,i1,i2;lcd_wr=0;init();while(1)write_sfm( 4,45);delay(5000);void write_sfm(unsigned char add,

26、unsigned char date) unsigned char shi,ge; shi=date%10; ge=date/10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); lcd_en = 0; void init() write_com(0x38); /16*2显示,5*7点阵,8位数据 delay(5); write_com(0x38); delay(5); write_com(0x38); delay(5); write_com(0x0c); /显示开,关光标 delay(5); writ

27、e_com(0x06); /移动光标 delay(5); write_com(0x01); /清除lcd的显示内容 delay(5); /void delay(int ms) int i; while(ms-) for(i = 0; i0;x-) for( y=1100;y0;y-);/*延时x微秒(stc12c5a60s212m)不同的工作环境,需要调整此函数此延时函数是使用1t的指令周期进行计算,与传统的12t的mcu不同*/void delay() _nop_(); _nop_();/*从ds1302读1字节数据*/unsigned char ds1302_readbyte() unsi

28、gned char i; unsigned char dat = 0; for (i=0; i= 1; /数据右移一位if (io) dat |= 0x80; /读取数据sclk = 1; /时钟线拉高delay(); /延时等待 return dat;/*向ds1302写1字节数据*/void ds1302_writebyte(unsigned char dat) char i; for (i=0; i= 1; /移出数据 io = cy; /送出到端口 sclk = 1; /时钟线拉高 delay(); /延时等待 /*读ds1302某地址的的数据*/unsigned char ds130

29、2_readdata(unsigned char addr) unsigned char dat; rst = 0; delay(); sclk = 0; delay(); rst = 1; delay(); ds1302_writebyte(addr); /写地址 dat = ds1302_readbyte(); /读数据 sclk = 1; rst = 0; return dat;/*往ds1302的某个地址写入数据*/void ds1302_writedata(unsigned char addr, unsigned char dat) rst = 0; delay(); sclk =

30、0; delay(); rst = 1; delay(); ds1302_writebyte(addr); /写地址 ds1302_writebyte(dat); /写数据 sclk = 1; rst = 0;/*写入初始时间*/void ds1302_settime(unsigned char *p) unsigned char addr = 0x80;unsigned char n = 7; ds1302_writedata(0x8e, 0x00); /允许写操作 while (n-) ds1302_writedata(addr, *p+); addr += 2; ds1302_write

31、data(0x8e, 0x80); /写保护/*读取当前时间*/void ds1302_gettime(unsigned char *p) unsigned char addr = 0x81; unsigned char n = 7; while (n-) *p+ = ds1302_readdata(addr); addr += 2; /*初始化ds1302*/void ds1302_initial() rst = 0; sclk = 0; ds1302_writedata(0x8e, 0x00); /允许写操作 ds1302_writedata(0x80, 0x00); /时钟启动 ds13

32、02_writedata(0x90, 0xa6); /一个二极管4k电阻充电 ds1302_writedata(0x8e, 0x80); /写保护5 安装调试5.1硬件系统的组装与调试 硬件组装前首先要仔细核对硬件系统设计原理的正确性,包括参数选用的正确性和原理的正确性,对没有把握的电路可以通过在通用实验板上直接焊接实际电路来进行实物调试和验证,调试分为断电调试和通电调试。 (1)断电调试 为了安全起见,首先必须进行断电调试,断电调试的内容至少包含短路检测和原理正确性确认;系统电路焊接完成后,首先对实物进行原理正确性的确认,其次必须进行短路检测,选用合适的万用表欧姆档,用红表笔接到电路板的+5

33、v电源的+、 极,如果存在充放电现象,最后电阻稳定在一个合适的位置,则基本上可排除系统短路现象。 (2)通电调试 系统时钟是否起 凡是微处理器系统,正常运行的必要条件是系统时钟稳定正常,在实际工作中,因为各种原因导致系统时钟不正常而出现系统无法正常运行的情况也时有出现,因此系统时钟是否起震应是通电检查的首要一环,检查方法包括逻辑笔发、数字万用表法、示波器法,在这里采用数字万用表法,测试晶振两端引脚电压为2.5v左右。 复位是否正常及关键点电压参数是否正常 复位不正常也会导致系统不工作,这里的重点是检查相关电路是否正常,同时检查相应电路的关键电压参数是否正常,进行一一排查。5.2软件调试单片机的程序设计调试分为两种,一种是使用软件模拟调试,即用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论