单片机课程设计论文

邵阳学院课程设计(论文)

单片机课程设计论文

课程设计(论文)

题 目 名 称 电子时钟设计 课 程 名 称 单片机原理及应用 学 生 姓 名 郭晗 学 号 1141303066 系 、专 业 信息工程系通信工程 指 导 教 师 刘伟春

20xx年 6 月 24 日

邵阳学院毕业设计(论文)

摘要

本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS373译码器的工作原理和与LED连接的方法。本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、数码管驱动器74LS373等),再配以相应的软件,是它具有星期,时,分,秒显示的功能,并且时,分,秒还可以调整。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。通过它可以进一步学习与掌握单片机原理与使用方法。

关键字:单片机AT89C51 ;共阴极LED数码显示器;74LS373驱动芯片

II

邵阳学院课程设计(论文)

目录

摘要 ................................................. I

第1章 系统方案设计 ........................................ 1

1.1设计要求 ............................................. 1

1.2设计方案 ............................................. 1

第2章 电路设计 ............................................ 3

2.1 STC89C51单片机介绍 ................................. 3

2.2总电路图 ............................................. 4

2.3键盘电路设计 ......................................... 4

2.4显示电路设计 ......................................... 5

2.5最小系统 ............................................. 5

第3章 软件设计 ............................................ 5

3.1工作流程图 ........................................... 6

3.2系统主程序设计 ....................................... 9

3.3子程序设计 .......................................... 10

第4章 系统仿真 ........................................... 15

4.1 PROTEUS简介 ........................................ 15

4.2系统仿真 ............................................ 15

第5章 总结 ............................................... 17

参考文献 .................................................. 18

致谢 ...................................................... 18

邵阳学院课程设计(论文)

第1章 系统方案设计

1.1设计要求

1、准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位。

3、校正时间功能,即能随意设定走时时间。

4、设计5V USB直流电源,系统时钟电路、复位电路。

5、能指示秒节奏,即秒提示。

1.2设计方案

本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过三个模块:键盘、芯片、LED显示即可满足设计要求。

1.2.1计时方案

使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。

1.2.2显示方案

对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。

1

邵阳学院课程设计(论文)

本系统需要采用8位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。

2

邵阳学院课程设计(论文)

第2章 电路设计

2.1 STC89C51单片机介绍

STC89C51单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM和256bytes的RAM,2个16位定时计数器。

STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型计算机。其管脚图如图所示。

单片机课程设计论文

STC89C51单片机管脚结构图

3

邵阳学院课程设计(论文)

2.2总电路图

单片机课程设计论文

2.3键盘电路设计

单片机课程设计论文

4

邵阳学院课程设计(论文)

2.4显示电路设计

单片机课程设计论文

2.5最小系统

单片机课程设计论文

5

邵阳学院课程设计(论文)

第3章 软件设计

3.1工作流程图

根据上述电子时钟的工作流程,软件设计可分为以下几个功能模块:

3.1.1主程序模块

主程序主要用于系统初始化:设置计时缓冲区的位置及初值,设置8155的工作方式、定时器的工作方式和计数初值等参数。主程序流程如下图所示。

主程序流程图

6

单片机课程设计论文

单片机课程设计论文

邵阳学院课程设计(论文)

3.1.2计时模块

即定时器0中断子程序,完成刷新计时缓冲区的功能。系统使用6MHz的晶振,假设定时器0工作在方式1,则定时器的最大定时时间为65.536ms,这个值远远小于1s。因此本系统采用定时器与软件循环相结合的定时方法。设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00。

因定时器0工作在方式1,则50ms定时对应的定时器初值为:65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H。

但应当指出:CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数。因此,为了确保T0能准确定时50ms,重装的定时器初值必须加以修正,修正的定时器初值必须考虑到从原定时器初值中扣除计数器多计的脉冲个数。由于定时器计数脉冲的周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用的机器周期数。CPU响应中断通常要3~8个机器周期。经过测试,定时器0重装的计数初值设为9E5FH~9E67H,可以满足精度要求。另外,MCS-51单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二-十进制转换。

计时模块流程图如下图所示。

7

邵阳学院课程设计(论文)

定时器/计数器T0中断服务程序流程图

8

单片机课程设计论文

邵阳学院课程设计(论文)

3.2系统主程序设计

;采用8位LED软件译码动态显示程序

;使用AT89C51单片机,12MHZ晶振,P0输出字码段,P2口输出位选码 ;用共阳LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键 ;片内RAM的70H单元为LED数码管的显示缓冲区

;78H,79H分别为秒,分,小时计数单元

;7BH为50ms计数器,7CH为调时按键计数器

ORG 0000H

LJMP START

ORG 000BH ;定时器/计数器T0中断程序入口

LJMP INTT0

;主程序

START: MOV R0,#70H

MOV R7,#0CH

INIT: MOV @R0,#00H

INC R0

DJNZ R7,INIT

MOV 72H,#10

MOV 75H,#10

MOV TMOD,#01H

MOV TL0,#0B0H

MOV TH0,#03CH

SETB EA

SETB ET0

SETB TR0

START1:LCALL SCAN

LCALL KEYSCAN

SJMP START1

;延时1s子程序

DL1MS: MOV R6,#14H

DL1: MOV R7,#19H

9

邵阳学院课程设计(论文)

DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

;延时20ms子程序 DL20MS:ACALL SCAN ACALL SCAN ACALL SCAN RET

3.3子程序设计

START: MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H INC R0

DJNZ R7,INIT MOV 72H,#10 MOV 75H,#10

MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#03CH SETB EA

SETB ET0

SETB TR0

START1:LCALL SCAN

LCALL KEYSCAN SJMP START1 ;延时1s子程序

DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

10

邵阳学院课程设计(论文)

;延时20ms子程序

DL20MS:ACALL SCAN

ACALL SCAN

ACALL SCAN

RET

;数码管显示程序

SCAN:MOV A,78H;将时间存入显示缓冲区相应的位置 MOV B,#0AH

DIV AB

MOV 71H,A

MOV 70H,B

MOV A,79H

MOV B,#0AH

DIV AB

MOV 74H,A

MOV 73H,B

MOV A,7AH

MOV B,#0AH

DIV AB

MOV 77H,A

MOV 76H,B

MOV R1,#70H;循环扫描显示

MOV R5,#0FEH

MOV R3,#08H

SCAN1:MOV A,R5

MOV P2,A

MOV A,@R1

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P0,A

MOV A,R5

11

邵阳学院课程设计(论文)

LCALL DL1MS

INC R1

MOV A,R5

RL A

MOV R5,A

DJNZ R3,SCAN1

MOV P2,#0FEH

MOV P0,#0FFH

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;定时器/计数器T0中断服务程序

INTT0: PUSH ACC

PUSH PSW

CLR ET0

CLR TR0

MOV TL0,#0B0H

MOV TH0,#03CH

SETB TR0

INC 7BH

MOV A,7BH

CJNE A,#14H,OUTTO

MOV 7BH,#00

INC 78H

MOV A,78H

CJNE A,#3CH,OUTTO

MOV 78H,#00

INC 79H

MOV A,79H

CJNE A,#3CH,OUTTO

MOV 79H,#00

INC 7AH

12

邵阳学院课程设计(论文)

MOV A,7AH

CJNE A,#18H,OUTTO MOV 7AH,#00

OUTTO:

SETB ET0

POP PSW

POP ACC

RETI

;按键处理程序

KEYSCAN: CLR EA

JNB P1.0,KEYSCAN0 JNB P1.1,KEYSCAN1 JNB P1.2,KEYSCAN2 KEYOUT:SETB EA

RET

KEYSCAN0:LCALL DL20MS JB P1.0,KEYOUT WAIT0:JNB P1.0,WAIT0 INC 7CH

MOV A,7CH

CLR ET0

CLR TR0

CJNE A,#03H,KEYOUT MOV 7CH,#00

CLR ET0

CLR TR0

SJMP KEYOUT

RETI

KEYSCAN1:LCALL DL20MS JB P1.1,KEYOUT WAIT1:JNB P1.1,WAIT1 13

邵阳学院课程设计(论文)

MOV A,7CH

CJNE A,#02H,KSCAN11 INC 79H

MOV A,79H

CJNE A,#3CH,KEYOUT MOV 79H,#00

SJMP KEYOUT

KSCAN11:INC 7AH

MOV A,7AH

CJNE A,#18H,KEYOUT MOV 7AH,#00

SJMP KEYOUT

KEYSCAN2:LCALL DL20MS JB P1.2,KEYOUT

WAIT2:JNB P1.2,WAIT2

MOV A,7CH

CJNE A,#02H,KSCAN21 DEC 79H

MOV A,79H

CJNE A,#0FFH,KEYOUT MOV 79H,#3BH

SJMP KEYOUT

KSCAN21:DEC 7AH

MOV A,7AH

CJNE A,#0FFH,KEYOUT MOV 7AH,#17H

SJMP KEYOUT

END

14

邵阳学院课程设计(论文)

第4章 系统仿真

4.1 PROTEUS简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,20xx年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

4.2系统仿真

单片机课程设计论文

15

邵阳学院课程设计(论文)

单片机课程设计论文

16

单片机课程设计论文

邵阳学院课程设计(论文)

第5章 总结

做了两周的课程设计,有很多的心得体会,有关于单片机的,也有关于模电数电等基础科目的。

因为单片机已经很久没复习,刚拿到题目,不知道从哪入手,后来通过对书本的回顾,加深了对单片机的记忆。有些知识会迁移和联系模电数电。课堂教学考虑到大多数同学的需求,主要强调“基本”——基本知识、基本理论、基本方法、基本技能。而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。我们正面临就业问题,这次课设给了我们一个机会去试验。

单片机理论的学习是为课程的设计作准备的,但有时学习的理论也解决不了实践中的问题。实践中获得的知识能让我对单片机的知识有更好的认识和理解。虽然这次的课程设计我参考了一些文献资料,没有做到创新,但在对程序的读写过程中我明白了许多。这次课程设计的最大收获是只有把理论用到实践中我们才能真正掌握好所学知识。

17

邵阳学院课程设计(论文)

参考文献

[1] 朱兆优等.单片机原理与应用.北京电子工业出版社.2010.09

[2] 何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社.

[3] 楼然笛.单片机开发[M].北京:人民邮电出版社

[4]谢维成 .单片机原理与应用.清华大学出版社

[5]黄同成.单片机原理及应用.中国铁路出版社

致谢

我们学习了数字电子电路和模拟电子电路,对电子技术有了一些初步了解,但那都是一些理论的东西。通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。从中对我们学的知识有了更进一步的理解。

在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。设计本身并不是有很重要的意义,而是同学们对待问题时的态度和处理事情的能力。至于设计的成绩无须看的太过于重要,而是设计的过程,设计的思想和设计电路中的每一个环节,电路中各个部分的功能是如何实现的。各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。另外,我们设计要从市场需求出发,既要有强大的功能,又要在价格方面比同等档次的便宜。

在这次设计过程中,我也对word、画图等软件有了更进一步的了解,这使我在以后的工作中更加得心应手。

感谢指导老师的耐心指导,使我们的课程设计能够顺利的完成!

18

相关推荐