为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [论文]李秋波论文

[论文]李秋波论文

2018-02-12 23页 doc 50KB 13阅读

用户头像

is_358746

暂无简介

举报
[论文]李秋波论文[论文]李秋波论文 毕业综合实践报告 课题名称: 基于单片机技术数字钟电路的设计 系 部: 电子工程系 班 级: 电子06C2 姓 名: 李秋波 学 号: 062211211 指导教师: 刘训非 2009年 2 月 20 日 论文/设计/报告原创性声明 本人郑重声明:所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: ...
[论文]李秋波论文
[]李秋波论文 毕业综合实践 课题名称: 基于单片机技术数字钟电路的设计 系 部: 电子工程系 班 级: 电子06C2 姓 名: 李秋波 学 号: 062211211 指导教师: 刘训非 2009年 2 月 20 日 论文/设计/报告原创性声明 本人郑重声明:所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: 2009 年 2月 20 日 论文/设计/报告版权使用书 本论文/设计/报告作者完全了解学校有关保障、使用学位论文/设计/报告的规定,同意学校保留并向有关论文/设计/报告管理部门或机构送交论文/设计/报告的复印件和电子版,允许论文/设计/报告被查阅和借阅。本人授权省级优秀论文/设计/报告评选机构将本论文/设计/报告的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文/设计/报告。 本论文/设计/报告属于 1、保密 ?,在_________年解密后适用本授权书。 2、不保密 ?。 (请在以上相应方框内打“?”) 作者本人签名: 2009 年 2 月20 日 指导教师签名: 年 月 日 目录 一 摘要 —————————————————————————4 引言 —————————————————————————5二 三 数字钟硬件框图 ————————————————————5 四 程序整体设计 —————————————————————5 (1) 总体介绍 ——————————————————————5 (2) 数据调查 ——————————————————————5 (3) 中断方式注意的问题 —————————————————6 (4) 定时准确性的讨论 ——————————————————6 (5) 软件消抖 ——————————————————————7 五 基于以上 设计如下数字钟————————————————8 (1) 数字钟的操作如下 ——————————————————8 (2) 流程图 ———————————————————————8 六 结束语 ————————————————————————11 七 致谢 —————————————————————————11 主要参考文献 —————————————————————11 附录(数字钟控制程序)———————————————————12 摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方 便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化 仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核 心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完 善。 本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点 在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的 讨论。在文章的最后,给出了采用中断方式实现的数字钟的源程序。 关键字:单片机,数字钟,数据缓冲区,中断,定时,消抖 Abstract In recent years, with computers in the in filtration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances, and other areas, is often microcontroller as a core component to use, In light of specific hardware architecture, and application-specific software features object combine to make perfect. In this paper, based on single-chip digital clock design, discussed in detail from the software realize the process, focusing on the clock adjust in the way: queries and disruption of comparison, then, on the digital clock made of the stability and accuracy related discussion. In the last article, give way using interrupted realize the source of the digital clock. Keywords: MCU, digital clock, data buffer, interruption, timing, elimination Buffeting 基于单片机的数字钟电路的设计 一、 引言 在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。 二、 数字钟硬件框图: speakerspeaker 驱驱 段码 段码 动 动 六位数码管显示电路 六位数码管显示电路 80518051 位位 选选 消抖电路 按键k1,k2,k3 消抖电路 按键k1,k2,k3 图图图 111 三、 程序整体设计:定时模块,显示模块,数据调整模块,状态调整模块。 (1)总体介绍:此部分主要介绍定时模块,和显示模块。定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区40h--45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只须改变@R0(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。 (2)数据调整:数据调整有多种方式。一、可以直接进入相关状态进行有关操作,二、将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一、比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题)。 当然在这种 方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达256个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数据的调整(具体操作如图2)。以上两种方式的实现都可以采用查询和中断的方式。两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。基于以上的讨论可以设计如下:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。基于以上的讨论,数据修改的具体操作如下。 状态1 @R1---MBF 状态2 @R1---HOUR 状态3 @R1--FS 状态4 @R1--SS 状态5 @R1--NULL 状态6 图 2 在状态进入后,调整指针的指向如右图所示:在右图中@R1表示指向数据缓冲区的指针,它主要是为数据的调整而设立的,在图中:MBF 、HOUR、FS、SS,分别表示时钟的分、时,定时设置分、时,的数据缓冲区。状态5是秒表进入状态,状态6是时钟正钟显示状态。 在程序中@R1为专用指针,它的值只在状态调整时改变,每次运行图示模块,只改变一次状态,就跳出程序。调整数据只须改变@R1中的数据即可。 (3)中断方式应注意的问题 采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:一、在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。二、在入栈保护有关数据后,对中断程序执行有影响的状态位、寄存器,必 须恢复为复位状态的值。例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC、CY位清零,否则,十进制调整出错。 (4)定时准确性的讨论: 程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差7—12个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。 (5)软件消抖: 消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件方式。软件消抖有定时器定时,和利用延时子程序两种方式。一、定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。二、在采用延时子程序时,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器定时的方式,延时时间不影响时钟。 如果,设计时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是:中断不能连续执行,两次之间有一定的时间间隔。 以下是三种消抖方法的程序流程图: 子程序延时 采用定时器延时 键按下 键按下,开定时器中断 查 Y 中断入口 N 询 延时 方 定时器中断关 N 键按下 式 执行操作 消 处理程序 延时N 抖 结束 开定时器中断 图 3 查询标志位BZ 中断入口 2 1 关本中断 BZ为1, 采用 中断Y 的方执行操作 N 式,软延时N时间 件消 抖设置位标志位BZ 计 开中断,清BZ 出口 流程图1为中断程序,流程图2程序段置于时钟中断程序中。利用此 定时器的定时可以延时设置为0.3秒,甚至更长,而不影响计数。 图 4 四、基于以上,设计如下数字钟: (1)数字钟的操作如下: 按键KEY0 状态1:KEY0=1,数字钟正常时钟显示状态。 状态2:KEY0=2,调整数字钟的分数据。 状态3: KEY0=3, 调整数字钟的时数据。 状态4: KEY0=4,数字钟的定时设置分值。 状态5: KEY0=5,数字钟的定时设置时值。 状态6: KEY0=6,秒表进入状态。 说明:状态N表示KEY0键按下N次。 在进行调整或设置状态时,显示对应状态的数据并且对应的各调整位数码管的DP 点亮。这样可以使调整更加可视化。 按键KEY1 完成加一操作,和秒表的清零操作。在进入了时间调整状态或定时设置状态时,按 此键可以加一,或在秒表启动后处于停止状态时,按此键可以完成清零操作。 按键KEY3 秒表启动和停止键,此键必须在秒表状态进入了之后才有效。即是:KEY0=6时有效。 定时时间到或整点时,时钟输出报时脉冲。 (2)流程图: 在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。但其设计就是基于以上介绍的显示指针,和状态指针的思想。在程序中用@R0,@R1充当此指针。程序设计的基本流程图如下: 开始 各缓冲区初始化 点亮DP的处理程序 对定时器,中断设置 开始计数 分调整, 显示缓冲单元首址送R0, 扫描初值送R2 Y N 取显示单元值,转为 在显示的低位断码上加段显码送段数据口 80H,即点亮DP。 扫描值送位数据口P1 查询下一个调整位 让调整位的DP点亮 三个要显示的状态 延时一小段时间 显示单元地址加一 扫描值右移一位 秒定时 表时钟显示状态是否切换查询 数设数 据置据 单数显N 元 据示6位显示完, 显 区 Y 示 图 5 单 取断码送到显示缓冲区单元 元 中断入口 定 时 标志位为标志位为11,, 定时器置初值定时器置初值 N 模 时间计数单元加一 Y 块 秒表计数单元 Y 计数值等于10, 计数值单元清零 秒值加一 分值比较 Y 秒值等于60, 秒值清零 分,时设定值等于时钟 值, 分值加一 Y Y 分值等于60, 标志位 BS置1, 输出报时脉冲 分值清零 时 报 BS=1, 值时 比模 时值加一 Y 较 块 以定时器定时频率Y 时值等于24, 为报时频率输出,做 法是:在每个定时中 断时,取反一个输出 引脚 时值清零 图 6 结束 五、结束语: 本设计在刘训非老师的悉心指导和严格要求下完成,从课题选择、论证到具体设计和调试,无不凝聚着刘老师的心血和汗水,在三年的大专学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向刘老师表示深深的感谢和崇高的敬意。 不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向苏州工业职业技术学院,电子工程系的全体老师表示由衷的谢意。感谢他们三年来的辛勤栽培 六、 致谢: 踉踉跄跄地忙碌了三个月,我的毕业设计课题也终将告一段落。但由于能力和时间的关系,总是觉得有很多不尽人意的地方。这也让我了解到做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。 不过在此非常感谢刘训非老师对我的论文不厌其烦的进行细心指点。刘老师首先细致地为我解题;当我迷茫于众多的资料,不知该如何下手时,刘老师又为我提纲挈领,梳理脉络,使我确立了本文的框架。论文写作中,每周都得到刘老师的指点。从框架的完善,到内容的扩充;从行文的用语,到格式的,刘老师都严格要求,力求完美。我再次为刘老师的付出表示忠心的感谢~ 七、主要参考文献(刊物名、按作者、出版社列出): 1 《单片机原理及应用》 李建忠 编著 西安电子科技大学出版 2002年2月 2 《单片机中级教程》 张俊谟 编著 北京航空航天大学出版 2000年1月 3 《单片机原理与应用技术》 江力 编著 清华大学出版社 4、《8051单片机课程设计实训教材》 陈明荧 编著 清华大学出版社 5、《单片机原理及接口技术》 余锡存、曹国华 编著 西安电子科技大学出版社 6、《MCS-51单片机应用设计》 张毅刚、修林成、胡振江 编著 哈尔滨工业大学出版社 7、 www.hust-snde.com//hust/course/shuzi/szljjy7-1-2.htm 8、 LJMP KEY0 附录(数字钟控制程序): CSEG AT 0013H NAME ZF LJMP KEY1 PORT EQU 0CFA0H CSEG AT 401BH HOUR EQU 26H ;设置数 据缓 LJMP CLOCK 冲区 CSEG AT 4100H START: MOV R0, #40H ;数据缓冲BUF EQU 23H 区初始化 SBF EQU 22H MBF EQU 21H MOV R6,#00H SA EQU 27H MOV A, #00H FA EQU 28H MOV @R0, A HH EQU 29H INC R0 MB0 EQU 2AH MOV @R0, A MB1 EQU 2BH INC R0 MB2 EQU 2CH MOV @R0, A MM0 EQU 2DH INC R0 CSEG AT 0000H MOV @R0, A LJMP START ;中断初始化 INC R0 CSEG AT 0003H MOV @R0, A MOV MM0, #00H INC R0 SETB ET1 MOV @R0, A SETB EX1 MOV SP, #30H SETB PT1 MOV TMOD, #10H SETB EA MOV TH1, #38H SETB P3.5 MOV TL1, #00H CLR P3.0 MOV BUF, #00H MOV TCON, #45H MOV SBF, #00H MOV R5, #01H MOV MBF, #00H DS1: MOV R0, #40H ;扫描显示 MOV HOUR,#00H MOV R2, #20H MOV SA, #00H DS2: MOV DPTR, #PORT MOV FA, #00H MOV A, @R0 MOV HH, #00H ACALL TABLE MOV MB0, #00H CJNE R5, #02 ,L3 MOV MB1, #00H SJMP L2 MOV MB2, #00H L3: CJNE R5, #04H,L1 ;让调整位的 DP点亮 L2: CJNE R0, #42H,L0L4: CJNE R5, #05H,L0 ADD A,#80HL5: CJNE R0, #44H,L0 SJMP L0 ADD A,#80H L1: CJNE R5,#03H, L4L0: MOVX @DPTR, A SJMP L5 MOV A, R2 CPL A MOV P1, A MOV A, SBF MOV R3, #07FH ACALL GET DEL: NOP MOV A, MBF DJNZ R3, DEL INC R0 ACALL GET CLR C MOV A, HOUR MOV A, R2 ACALL GET RRC A SJMP DS1 MOV R2, A MIAOBIAO:JNZ DS2 ;秒表显示 S2: CJNE R5,#06H,S3 ;切换到显 MOV R0, #40H 示秒表 计数 MOV A, MB0 ACALL GET SETB EX0 MOV A, MB1 SJMP MIAOBIAO ACALL GET S3: CJNE R5,#04H,S1 ;切换到定时 MOV A, MB2 设置状态的 ACALL GET显示 AJMP DS1 SJMP DINGSHI 定时设置显示DINGSHI: JNZ DS2 ; S1: CJNE R5,#05H,S0 MOV R0, #40H SJMP DINGSHI MOV A, HH S0: JNZ DS2 ACALL GET MOV R0, #40H ;取缓冲区 到显示 MOV A, FA 缓冲区 ACALL GET MOV @R0, A MOV A, SA INC R0 ACALL GET MOV A, R4 AJMP DS1 SWAP A TABLE: ANL A, #0FH INC A ;查表取段 码 MOV @R0, A MOVC A, @A+PC INC R0 RET DB 3FH RET DB 06H CLOCK: ;定时器 DB 5BH中断服 务程序 DB 4FH DB 66H JNB P3.0,D4 ;产生定 时输出 DB 6DH 脉冲 DB 7DH DB 07H CPL P3.4 DB 7FH D4: MOV TL1, #0AFH DB 6FH MOV TH1, #3CH DB 40H PUSH PSW GET: ;将一个两位十进制数放 入两个数码管对应的两 PUSH ACC 个缓冲区 JNB P3.5,C0;秒表计数模块 MOV R4, A INC MB0 ANL A, #0FH MOV A, MB0 CJNE A, #0AH,C0时程序 MOV MB0, #00H MOV A, MB1 INC R6 INC A CJNE R6,#0FH,Z2 DA A MOV R6,#00H MOV MB1, A CLR 79H CJNE A, #60H, C0 SETB EX1 MOV MB1, #00H Z2: INC BUF MOV A, MB2 MOV A, BUF INC A CJNE A, #0AH,QUIT DA A MOV BUF, #00H MOV MB2, A MOV A, SBF CJNE A, #60H, C0 INC A MOV MB2, #00H DA A C0: JNB 78H, Z1 ;时钟计数 MOV SBF, A 程序 CJNE A, #60H, QUIT MOV SBF, #00H INC R6 MOV A, MBF CJNE R6,#05H,Z1 CLR P3.0 ;定时脉 MOV R6,#00H冲输出 一分钟 CLR 78H D2: INC A SETB EX0 DA A Z1: JNB 79H, Z2 ;去抖延 MOV MBF, A QUIT: POP ACC MOV A, FA ;定时比较 分值 POP PSW RETI CJNE A, MBF,D0 KEY0: CLR ET1 ;外部中断零服务 程序 SJMP D1 PUSH ACC D0: MOV A, MBF PUSH PSW CJNE A, #60H, QUIT SETB ET1 MOV MBF, #00H CLR EX0 MOV A, HOUR CLR CY ;清与十进制调整 INC A有关的状态位 DA A CLR AC MOV HOUR ,A SETB 78H D1: MOV A,SA;定时比较时值 JB P3.5,K0 CJNE A, HOUR,D3 MOV MB0, #00H ; 秒表数 SETB P3.0据清零 D3: MOV A, HOUR CJNE A,#18H,QUIT MOV MB1, #00H MOV HOUR,#00H MOV MB2, #00H SJMP K3 K0: MOV A,@R1 ;完成加一操 K2: CJNE R1, #27H,K4 作 INC A SJMP K3 DA A CJNE R1, #26H,K2 ;调整数据 K4: CJNE A #60H,K1 的限制 MOV A,#00H MOV R1,#26H K3: CJNE A #24H,K1 INC R5 SETB EX0 MOV A,#00H SJMP EXIT M1: CJNE R5,#03H,M2 K1: MOV @R1,A MOV R1,#28H POP PSW INC R5 POP ACC RETI SETB EX0 KEY1: CLR ET1 ;外部中断一中断 SJMP EXIT 程序,完成状态的 M2: CJNE R5,#04H,M3 调整 MOV R1,#27H PUSH ACC PUSH PSW INC R5 SETB ET1 SETB EX0 CLR EX1 SJMP EXIT SETB 79H M3: CJNE R5,#05H,M4 CJNE R5,#01H,M0 MOV R1,#21H INC R5 MOV R1,#00H INC R5 SETB EX0 SETB EX0 SJMP EXIT SJMP EXIT M4: CJNE R5,#06H,EXIT MOV R1,#00H MOV R5,#01H CLR EX0 EXIT: SETB EX1 POP PSW POP ACC RETI M0: CJNE R5,#02H,M1
/
本文档为【[论文]李秋波论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索