课程设计(论文)-基于单片机的数字钟设计.doc_第1页
课程设计(论文)-基于单片机的数字钟设计.doc_第2页
课程设计(论文)-基于单片机的数字钟设计.doc_第3页
课程设计(论文)-基于单片机的数字钟设计.doc_第4页
课程设计(论文)-基于单片机的数字钟设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

学号:1211431067 课程设计报告基于AT89C51单片机数字时钟课程设计 院 系 电子信息工程学院 专 业 电子信息工程 班 级 2 姓 名 汪强 摘 要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。关键词:数字钟;单片机;数码管21 目 录 1 引 言12 单片机介绍23 数字钟硬件设计23.1系统方案的确定23.2功能分析23.3数字钟设计原理33.3.1键盘控制电路33.3.2晶振电路43.3.3复位电路43.3.4数码显示电路54.数字钟的软件设计64.1程序设计内容64.2系统设计流程图64.2.1主程序流程64.2.2定时器中断流程74.2.3时间显示流程图85.系统调试95.1 Keil C51软件环境简介95.2 Proteus软件环境简介95.3 数字钟系统PROTUES仿真调试结果105.3.1引脚连接105.3.2仿真结果(电路原理图)11参考文献13附录(源程序)14谢 辞22 1 引 言在单片机技术日趋成熟的今天,其灵活的硬件电路和软件电路的设计,让单片机得到广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子1 ,用数字电路实现对时、分、秒数字显示的计时装置。因为机具有体积小、功耗低、功能强、性价比高、易于推广应用的优点,在自动化装置、智能仪器表、过程控制、通信、家用电器等许多领域得到日益广泛的应用2,因此具有很大的研究价值。2 单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统3。由于单片机的这种结构形式及它所采取的半导体工艺4,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要有如下特点5:(1)性价比高;(2)集成度高、体积小、可靠性强。机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作;(3)控制功能强;(4)功耗小、电压低、便于生产的携式产品。;(5)外部总线采用串行总线连接,以此缩小了体积;(6)单片机的系统扩展和系统配置典型、规范,容易构成各种规模的应用系统。3 数字钟硬件设计3.1 系统方案的确定80C51单片机控制器硬件电路是一个系统的重要部分,在本次设计中主要是以AT89C51为核心控制器,外加一些控制电路来实现数字钟的基本功能。单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制6,外围控制电路主要包括晶振电路模块、复位电路模块、按键电路模块以及数码管显示电路模块,通过这些控制电路的连接构成完整的电路,其结构框图如图1所示。按键开关 晶振电路 8位数码管显示 复位电路 图1 数字钟系统结构图3.2功能分析1准确计时,以数字形式显示时、分、秒的时间;2. 小时的计时为24小时制,分和秒的计时要求为60进位;3. 八位数码管 显示HH-MM-SS(时分秒),按键“模式键”依次选择调整“时”,“分”,“秒”, 按键“加键”依次加1,按键“减键”依次减1 ;4.晶振电路起到减小误差,提高精确度的作用;5.复位电路是对单片机的初始化操作。3.3数字钟设计原理 数字钟的实现一般有两种方法:其一是直接用单片机的定时计数器产生固定时间,这种方法的优点是可以省去一些外围的芯片,其缺点是只能适用于一些要求不是十分精确、不作长期保留的场合;而对于要求较高的场合,则必须选用专用的芯片7,本设计采用的是第一种方法。直接用单片机的定时计数器产生固定时间,这种方法的工作原理是利用单片机芯片的定时器产生固定时间,模拟时钟的时、分、秒。基于这一原理构成的数字钟系统主要由以下几部分组成:89C51单片机控制器电路,按键开关电路,8位数码管显示电路,复位电路,晶振电路五部分构成。其工作原理电路图如图2所示。 图2 数字钟设计原理图3.3.1键盘控制电路 数字钟最基本的功能除了能正常显示时间外,还需要对时间进行设置和调整,所以要配以相应的键盘控制电路。该设计的键盘控制电路主要包括3个按键: P3.0作为系统的模式选择键,用来选择是正常走时还是分别对时、分、秒进行调整;P3.1作为进行时分秒调整时的增加时间按键;而P3.2作为进行时分秒调整时的减少时间按键。键盘控制电路的硬件连接图如图3所示。 图3 键盘控制电路3.3.2晶振电路晶振的全称叫晶体振荡器,它在单片机系统里作用非常大,主要作用是产生单片机所需的时钟频率,单片机执行程序所需的时间完全取决于单片机晶振所提供的时钟频率,时钟频率越高,那么单片机运行速度就越快8。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。晶振电路如图4所示。图4 晶振电路3.3.3复位电路复位是单片机的初始化操作。单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作:07H写入堆栈指针SP,P0口P3口均置1,程序计数器PC和其他特殊功能寄存器SFR全部清零。只要RST持续为高电平,单片机就处于循环复位状态9。单片机的复位方式有上电自动复位和手工复位两种,本设计采用的是手动复位方式,其电路图如图5所示。 图5 复位电路3.3.4数码显示电路发光二极管显示器驱动(点亮)的方法有两种。一种是静态驱动法,即给欲点亮的LED通以恒定的定流。这种驱动方法要有寄存器,译码器,驱动电路等逻辑部件。当需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。另一种是动态驱动方法,这种方法是给欲点亮的LED通过通以电流,此时LED的亮度是通断的平均亮度。为保证亮度,通过LED的脉冲电流应数倍于其额定电流值。利用动态驱动法可以减少需要的逻辑部件和连线,单片机应用系统中常采用动态驱动法10。数码管有两种接法即共阳极接法和共阴极接法。所谓共阳共阴,是针对数码管的公共脚而言的。一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。共阳指的是公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮11,本次设计选择共阴极数码管,其中有6位显示“时”,“分”,“秒”,剩下两位显示“”数码管ADP接单片机P1端口用于段选,19接单片机P2端口用于位选。各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极,为了防止驱动数码管电流过大而损坏,各端口接1K电阻。8位共阴极LED数码显示电路如图6所示。 图6 八位8段共阴极LED数码显示4.数字钟的软件设计4.1程序设计内容单片机软件设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。设计步骤如下所示。1. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;2. 根据流程图,编写源程序;3. 上机调试各模块程序;4. 与硬件一起联调,最后完成全部调试工作。 4.2 系统设计流程图4.2.1主程序流程开始启动定时器按键检测时间显示图7 主程序流程图4.2.2定时器中断流程 开始60分钟到?分单元清零,时单元加1 一秒时间到? 秒单元加160秒时间到?秒单元清零,分单元加1 时单元清零 时间显示 中断返回24小时NNNYNYYY图8 定时器中断流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间,定时器中断流程图如图8所示。4.2.3时间显示流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示.,时间显示流程图如图9所示。时十位计算显示 结束开始秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示 图9 时间显示流程图 5.系统调试5.1 Keil C51软件环境简介Keil C51集成开发环境是基于80C51内核的微处理器软件平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立、管理、程序编译、链接、目标代码生成、软硬件仿真等完整的开发流程12。尤其是C编译工具在产生代码的准确性和效率方面达到了较高水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51集成开发环境的主要功能有以下几点13:(1)uVision2 for Windows 一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;(2)C51国际标准优化C交叉编译器。代码产生可重定位的目标模块;(3)A51宏汇编器。从80C51汇编源代码产生可重定位的目标模块;(4)BL51链接/定位器。组合由C51和A51产生可重定位的目标模块,生成绝对目标模块;(5)LIB库管理器。从目标模块生成连接器可以使用的库文件;(6)OH51目标文件至HEX格式的转换器。从绝对目标模块生成Intel HEX文件;(7)RTX-51实时操作系统。简化了复杂的实时应用软件项目的设计。keil C51软件编译环境如图10所示。图10 keil C51软件编译环境5.2 Proteus软件环境简介本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件集成了高级原理绘图、混合模式SPICE电路仿真,PCB板设计以及自动布线来实现一个完整的电子设计系统14。Proteus软件由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件。Proteus软件主要具有以下几个方面的特点15:(1)设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。(3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。(4)它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。(5)在设计综合性方案中,还可以利用ARES开发印制电路板。Proteus软件仿真环境如图11所示。 图11 Proteus软件仿真环境5.3 数字钟系统PROTUES仿真调试结果 5.3.1引脚连接8位高亮共阴极型数码管,单片机P1.0P1.7接数码管ADP脚,P2.0P2.7接数码管91脚, P3.0P3.2接模式键,加键,减键三个控制键,晶振电路连接单片机18,19端口(XTAL1,XTAL2),复位电路连接单片机端口9(RST),单片机的31号端口接VCC,(注意:20和40引脚分别接地和VCC),如图12所示。 图12 引脚连接图5.3.2仿真结果(电路原理图)用PROTUES软件,根据数字电子钟的原理图,选择如图按钮开始仿真,画出仿真图,如果显示如图,则说明没有错误,即仿真成功得到仿真结果如图13如下所示。图13 数字钟的PROTES仿真5.3.3元件列表序号器件名称数量备注1主控芯片AT89C51(51系列均可以)2C51系列芯片均可以28个(8段)共阴极数码管8(7SEG-MPX8-CC-BLUE) 共阴极3普通电阻 25 大小为1k欧姆4普通按键8按键5电源25V6PCB板1大小15cm*15cm7DB9串口,连线各1个与电脑或单片机连接下载线8USB接口,连线各1个与电脑或单片机连接USB下载线9晶振2个频率12mHZ(CRYSTAL)10电容32个30pF,1个电解电容22uF11导线若干普通导线参考文献【1】 林志琦,郎建军,等基于Proteus的单片机可视化软硬件仿真【M】.北京:北京航空航天大学出版社,2006:25.【2】 徐爱钧.单片机原理实用教程基于Proteu虚拟仿真【M】.北京:电子工业出版社,2009:34.【3】 侯玉宝,陈忠平,李成群,等基于Proteu的51系列单片机设计与仿真【M】.北京:电子工业出版社,2008:21-42.【4】 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真【M】.北京:北京航空航天大学出版社,2006:54.【5】 龙威林,杨冠声,胡山,单片机应用入门AT89S51和AVR【M】.北京:化学工业出版社,2008:67.【6】 龚尚福,朱宇,郭秀才,王忠民,微机原理与接口技术【M】.西安:西安电子科技大学出版社,2008:32.【7】 李广第,朱月秀,冷祖祁,单片机基础【M】.北京.北京航空航天大学出版社,2007:12.【8】 求是科技,靳达,单片机应用系统开发实例导航【M】.北京:人民邮电出版社,2003:9.【9】 戴佳,戴卫恒.51单片机C语言应用程序设计【M】.北京:电子工业出版社,2006:76.【10】 付家才.单片机控制工程实践技术【M】.北京:化学工业出版社,2004:25-27.【11】 张大明,彭旭昀,尚静基单片微机控制应用技术【M】.北京:机械工业出版社,2006:56-57.【12】 赖麒文.8051单片机C语言彻底应用【M】.北京:科学出版社,2002:34.【13】 何宏.单片机原理与接口技术【M】.北京:国防工业出版社,2006:29-43.【14】 刘松.单片机技术与应用【M】.北京:机械工业出版社,2011:30-31.【15】 王迎旭.单片机原理与应用【M】.北京:机械工业出版社,2006:8-9.附录(源程序)ORG 0000HLJMP MAINORG 000BHLJMP DINGSHIORG 001BHLJMP TIAOSHISTYLE BIT P3.0 ;模式健PLUS BIT P3.1 ;加键MINUS BIT P3.2 ;减键SHI EQU 30H ;时针FEN EQU 31H ;分针MIAO EQU 32H ;钞针MAIN: MOV SHI , #00H MOV FEN, #00H MOV MIAO , #00H MOV 33H,#00H ;时钟扫描 MOV 34H,#00H ;分钟扫描 MOV 35H,#00H ;秒钟扫描 MOV 36H,#00H ;时钟扫描计数 MOV 37H,#00H ;时钟扫描闪烁 MOV 38H,#00H ;分钟扫描计数 MOV 39H,#00H ;分钟扫描闪烁 MOV 3AH,#00H ;秒钟扫描计数 MOV 3BH,#00H ;秒钟扫描闪烁 MOV 3CH,#00H ;定时 MOV 3DH, #00H ;模式 MOV 40H, #00H;消抖 MOV SP, #50H;堆栈指针 MOV DPTR, #TABLE ;查找表首地址 MOV TH0, #(65535-20000)/256 ;定时器初值 MOV TL0, #(65535-20000) MOD 256 MOV TH1, #(65535-20000)/256 MOV TL1, #(65535-20000) MOD 256 MOV TMOD, #11H ;定时器工作方式设置,T0,T0设置为方式一 SETB PT0 ;设置T0为高优先级 SETB ET0 ;开定时器中断 SETB ET1 SETB TR0 ;启动定时器 SETB TR1 SETB EA ;开总中断DISPLAY: MOV A, 33H CJNE A,#00,X1 ;判断时针是否扫描 MOV P2, #7FH ;选通数码管时钟的十位 MOV A, SHI MOV B, #10 DIV AB ;把时针的十位个位分离 MOVC A, A+DPTR ;把时针的十位放在累加器A中 MOV P1,A ;显示时针的十位 LCALL DELAY ;延时 MOV P2,#0BFH ;选通时针的个位 MOV A, B MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV A, 37H CJNE A,#01,X3 ;判断是否闪烁X1: INC 36H MOV A, 36H CJNE A,#10,X2 MOV 33H, #00X2: CJNE A,#20,X3 MOV 36H, #00 MOV 33H, #01X3: MOV P2, #0DFH ;显示分隔符 MOV A, #40H MOV P1, A LCALL DELAY MOV A, 34H ;分针的显示 CJNE A,#00,F1 MOV P2, #0EFH MOV A, FEN MOV B, #10 DIV AB MOVC A, A+DPTR MOV P1, A LCALL DELAY MOV P2, #0F7H MOV A, B MOVC A, A+DPTR MOV P1, A LCALL DELAY MOV A, 39H CJNE A,#01H ,F3F1: INC 36H MOV A, 36H CJNE A,#10, F2 MOV 34H, #00HF2: CJNE A,#20H,F3 MOV 36H, #00H MOV 34H, #01HF3: MOV P2, #0FBH ;显示分隔符 MOV A, #40H MOV P1, A LCALL DELAY MOV A,35H CJNE A,#00H ,M1 MOV P2, #0FDH ;秒针的显示 MOV A, MIAO MOV B, #10 DIV AB MOVC A, A+DPTR MOV P1, A LCALL DELAY MOV P2, #0FEH MOV A, B MOVC A, A+DPTR MOV P1, A LCALL DELAY MOV A, 3BH CJNE A,#01,M3M1: INC 3AH MOV A, 3AH CJNE A,#10,M2 MOV 35H, #00HM2: CJNE A,#20H,M3 MOV 3AH, #00H MOV 35H, #01HM3: LJMP DISPLAYDINGSHI: PUSH ACC PUSH PSW MOV TH0, #(65535-20000)/256 ;定时器赋初值 MOV TL0, #(65535-20000) MOD 256 INC 3CH MOV A, 3CH CJNE A,#50,J1;判断是否为一秒,若为一秒顺序执行,否发生跳转 MOV 3CH, #00H ;定时次数清零 INC MIAO ;秒针加一 MOV A, MIAO CJNE A,#60, J1 ;判断是否为一分 MOV MIAO, #00 ;秒针清零 INC FEN ;分针加一 MOV A, FEN CJNE A,#60,J1 ;判断是否为一时 MOV FEN, #00H ;分针清零 INC SHI ;时针加一 MOV A, SHI CJNE A,#24,J1 ;判断是否溢出 MOV SHI, #00H ;时针清零J1: CLR ET0 POP ACC POP PSW SETB ET0 RETITIAOSHI: PUSH ACC PUSH PSW MOV TH1, #(65535-20000)/256 ;定时器赋初值 MOV TL1, #(65535-20000) MOD 256 JB STYLE, G1 ;判断模式键是否按下 INC 40H ;清抖 MOV A, 40H CJNE A,#10,G1 JB STYLE ,G1 ;模式键真的被按下 MOV 40H,#00 INC 3DH ;模式键加一 MOV A, 3DH CJNE A,#01,A1 ;判断是否为模式一 MOV 33H,#01 ;时针扫描判断 MOV 37H,#01 ;时针扫描闪烁判断A1:CJNE A,#02,A2 ;模式是否为二 MOV 33H,#00 MOV 37H,#00 MOV 34H,#01 MOV 39H,#01A2:CJNE A,#03,A3

温馨提示

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

评论

0/150

提交评论