单片机电路板设计实习 - 图文

更新时间:2024-05-17 06:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实 习 报 告

题 目:多功能秒表的设计 学生姓名:李瑞恒 冯启国 学 号:20131613 20131609 院系名称:电气与信息工程学院

专业班级:电气工程及其自动化13—1班

指导教师:葛洪军 王希凤 职 称:教授 讲师

二○一五年六月二十九日

实习题目 实习时间 同组人姓名 实习内容摘要: 多功能秒表的设计 2015年6月30日至2015年7月16日共3周 李瑞恒、冯启国 根据相关的单片机材料,利用所学的单片机知识,编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为00~99秒,每秒自动加1,能正确地进行加1,快加,可以同时记录4个相对独立的时间,通过翻页来查看这4个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加1,计数程序,快加程序,中断,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。该系统具有显示直观﹑使用方便﹑可靠等优点在系统设计过程中考虑了性价比,选用性价比低﹑性能确定的元器件。 指导教师评语: 指导教师签字: 年 月 日 成 绩

实 习 任 务 书

组内学生姓名 李瑞恒、冯启国 电气及信息工程学院 葛洪军、王希凤 专业 人数 2 院系名称 电气工程及其自动化 13—1班 班级、学号 20131613 20131609 从事专业 指导教师姓名 题目名称 职称 电气工程 多功能秒表的设计 一、工程实践的目的、意义 1.通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解,掌握定时器、外部中断的设置和编程原理。 2.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。

二、工程实践的主要内容、技术要求(包括原始数据、技术参数、设计要求、工作量要求等) 主要内容:这次的实习内容——多功能秒表的设计——主要根据单片机AT89C52芯片来完成整体的设计 设计要求:1.能同时对4个四个相对独立的时间分别显示。 2.两位LED显示,现实时间为00~99秒。 3.每秒自动加一。 4.一个开始按键,一个复位按键,一个暂停按钮和一个计数按钮 技术参数:AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效的微控制器。 三、工程实践完成后应提交的成果 根据设计任务设计出一个简易的秒表,可以实现按键开始、暂停、复位以及计数的功能,通过LED数码管显示00~99的数,当“开始”按键按下时,LED数码管的数开始计数,每秒加一;当“暂停”按键按下时,LED数码管的数暂停;当“计数”按键按下时,当前的数就存入地址单元里;当“复位”按键按下时,数字归零。 四、工程实践的工作进度安排 第一周前三天根据实习内容查阅资料并确立方案,之后进行实件的焊接与调试,预计在第二周第三天之前完成,第二周之后便开始进行论文的攥写工作。

五、主要参考资料 [1]刘海成.单片机及其应用原理教程.第一版.中国电力出版社出版.2012.7 [2]余发山.单片机原理与及应用技术.第一版.中国矿业大学出版社出版.王福忠.2003.12 [3]朱定华、戴汝平.单片机微机原理与应用.清华大学出版社.2003.8 [4]南建辉、熊鸣、王军茹.MCS-51单片机原理及应用实例北京清华大学出版社.第1版.2006.2 六、备注 指导教师签字: 年 月 日

教研室主任签字: 年 月 日

目录

第一章 概述……………………………………………………………………1

1.1设计目的、设计意义及设计任务…………………………………………………1 1.1.1设计目的………………………………………………………………………… 1 1.1.2设计意义………………………………………………………………………… 1 1.2设计思路及主要功能………………………………………………………………1 1.2.1设计思路…………………………………………………………………………1 1.2.2主要功能…………………………………………………………………………2

第二章 系统总体方案及硬件设计……………………………………………3

2.1单片机的设计………………………………………………………………………3 2.2电源电路……………………………………………………………………………3 2.3晶体震荡电路………………………………………………………………………3 2.4复位电路……………………………………………………………………………4 2.5 显示电路…………………………………………………………………………4 2.6 开关控制电路模块………………………………………………………………4

第三章 软件设计…………………………………………………………………5

3.1设计思想……………………………………………………………………………5 3.2系统流程图…………………………………………………………………………5 3.3源程序代码及注解…………………………………………………………………6 3.3.1主程序……………………………………………………………………………6 3.3.2显示程序…………………………………………………………………………6 3.3.3开关控制程序……………………………………………………………………6 3.3.4暂停程序…………………………………………………………………………6 3.3.5复位程序…………………………………………………………………………7

第四章 软件仿真…………………………………………………………………8

4.1 proteus软件仿真……………………………………………………………………8 4.2 实物仿真…………………………………………………………………………9

第五章 心得体会………………………………………………………………11 参考文献……………………………………………………………………………12 附录…………………………………………………………………………………13

第一章 概述

1.1设计目的、设计意义及设计任务

1.1.1设计目的

基于单片机的综合实验仪器,利用汇编语言来编写一个秒表计时器。通过该课程设计进一步了解单片机硬件组成的目的以掌握它的整机工作原理,掌握单片机的中断系统,以便掌握对单片机随机事件的高效响应和处理手段。通过秒表的计时进一步掌握定时∕计数器的4种工作方式以及在不同工作方式下的时间和计数器常数的设定方法,并掌握中断功能在定时计数器中的应用。通过LED显示程序的调整,熟悉AT89C52芯片与LED的接口技术,熟悉LED动态显示的控制过程。通过键盘程序的调整,熟悉键盘扫描原理。通过阅读和调试秒表程序的整体过程,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。 1.1.2设计意义

1、通过设计使学生进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;

2、通过利用MCS-51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法;

3、通过设计一个简单的计算器数字输入及显示模拟系统,掌握单片机仿真软件Proteus的使用方法;

4、掌握键盘和显示器在的单片机控制系统中的应用。 5、掌握撰写课程设计报告的方法。 1.1.3设计任务

1.能同时对4个四个相对独立的时间分别显示。 2.两位LED显示,现实时间为00~99秒。 3.每秒自动加一。

4.一个开始按键,一个复位按键,一个暂停按钮和一个计数按钮 1.2设计思路及主要功能 1.2.1设计思路

本实验设计六个控制按键:其中第一个按键按下去时以1秒加一开始计时,即秒表开始键,第二个按键按下去时暂停计时,使秒表停留在当前的计时值,第三个按

1

键按下去时清0即复位,第四个按键按下去则是以每10ms秒快速加一,第五个键按下时开始计数,第六个键按下时进行翻页查看。该实验要求进行计时并在数码管上显示时间,则可利用AT89S51芯片的P0.0-P0.7管脚对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的选通引角,P2.7则接十位数的。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的芯片内部和外部电路元器件给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。 1.2.2主要功能

根据设计任务设计出一个简易的秒表,可以实现按键开始、暂停、复位以及计数的功能,通过LED数码管显示00~99的数,当“开始”按键按下时,LED数码管的数开始计数,每秒加一;当“暂停”按键按下时,LED数码管的数暂停;当“计数”按键按下时,当前的数就存入地址单元里;当“复位”按键按下时,数字归零。

2

第二章 系统总体方案及硬件设计

2.1单片机的设计

本次试验采用AT80C52单片机,见附录2图1,该型号单片机由CPU、振荡器与时序电路、4KB的ROM、256KB的RAM、两个16位的定时器/计数器T0和T1、4个8位的I/O端口等组成。其中振荡器时序电路与外时钟组成了定时控制部件。

主要特性:1.与MCS-51 兼容 4K字节可编程闪烁存储器 2.全静态工作:0Hz-24HZ 3.三级程序存储器锁定 4.128*8位内部RAM 5.32可编程I/O线 6.两个16位定时器/计数器

7.5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路

总的电路图见附录2图1。

2.2电源电路

由于三端正电源稳压电路78XX系列电路比较简单,可靠性高,广泛用于各种电子仪器设备,所以本系统采用7805电源提供+5V电源。其主要特点是:输出电流最大可达1.5伏,内含过压保护、过电流保护以及温度保护功能。电源电路见附录2图2。

2.3晶体震荡电路

MCS--51单片机内部的振荡电路是一个到增益反相放大器,引线 XTAL1和XTAL2分别为 反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。51单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。在MCS-51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激振荡器,用示波器可以观察到XTAL2输出的时钟信号。晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2-12MHz之间选择。MCS-51单片机在通常应用情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率的警惕主要是在高速串

3

行通信情况下才使用,在这里我用的是12MHZ石英晶体。对电容无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一点影响。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2,有时还要接一个上拉电阻。

在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激振荡器,电路图见附录2图3所示。

2.4复位电路

MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。MCS-51单片机通常有上电自动复位﹑按键复位﹑手动加按钮复位﹑脉冲复位四种方式,本设计采用了自动上电复位方式。复位电路如图3所示,上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。电路图见附录2图4所示。

2.5显示电路

显示电路既可以选用液晶显示器,也可以选用数码管显示。数码管主要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法不同。而数码管显示又有静态和动态两种显示方式,其中静态显示程序简单,显示比较稳定,但占用I\\O口较多;动态显示的程序比较复杂,所使用的端口较少,可以节省I/O口,在本设计中采用的是动态显示。 显示电路见附录2图5所示。 共阳极数码管的段码表: 0 0C0H 5 92H 1 0F9H 6 82H 2 0A4H 7 0F8H 3 0B0H 8 80H 4 99H 9 90H 2.6开关控制电路模块 见附录2图6所示

4

第三章 软件设计

3.1设计思想

因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

其中的模块即为子程序,子程序是功能独立的程序段。子程序的基本思想是编写一次,可以重复使用。子程序的形式可以是一个程序文件,也可以是一个过程或函数。子程序总被其他程序调用而不单独执行,这与主程序相对。 这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,、快加、复位,计数和显示。

3.2系统流程图

5

3.3源程序代码及注解 3.3.1主程序

3.3.1.1对定时器T1﹑T0的工作模式进行设定,分别设定为工作模式一,并对两个工作定时器初始化,分别赋初值定时10

3.3.1.2在主程序中设置了九个工作寄存区,分别为:20H,用于00~99秒的记数暂存区;30H,31H分别用于寄存要显示的十位和个位的两个数字,40H﹑50H用于存储循环记数个数,41H﹑42H﹑43H﹑44H作为记录四个相对独立时间的工作寄存区另外还用了一个间接寄存器R1,用于访问以上四个工作寄存区。对以上的工作区﹑相应的中断控制位进行初始化。 3.3.2显示程序

作用:完成符号和数值的显示及输出。该设计中应用两位一体的数码管分别动态显示十位和个位的数字,具体设计思路如下:用AT89S51芯片的P0口接数码管的显示位A﹑B﹑C﹑D﹑E﹑F﹑G﹑DP八个引脚,用P2口的P2.6﹑P2.7接数码管的两个选通引脚,作为十位和个位动态显示的选通信号输入端,低电平有效。当将要显示的时间分别送入30H﹑31H时,让选通信号有效进行动态循环显示,利用了查表操作功能,只是两位的显示时间间隔短而人眼分辨不出来,因此认为是连续显示的。 3.3.3开关控制程序

完成各键功能的转换,控制CPU的工作过程﹑调用显示程序控制显示输出,在按键过程中增加了防抖动操作。 例如暂停键的设置: START:

JB: P1.0,L1 ; P1.0=0,暂停 ACALL DELAY10 JB: P1.0,L1 JNB P1.0,$ LJMP STOP 3.3.4暂停程序

只需将定时器T1﹑T0的启停控制位TR0﹑TR1清零即可。 STOP: CLR TR0

6

CLR TR1 ACALL DISP SJMP HERE 3.3.5复位程序

将各寄存区重新置初始值即可。 FUWEI: CLR TR0 CLR TR1 MOV 40H,#00H MOV 41H,#00H MOV 30H,#00H SJMP HERE

7

第四章 软件仿真

4.1 proteus软件仿真

利用proteus软件将电路元器件进行正确的连接,然后利用keil软件将汇编语言程序生成hex文件下载到单片机中,再将各元器件的数值改正确之后就可以点击左下角的小黑三角键进行仿真了。

点击“开始”(第四个)按键,可以看到数码管从一开始计数,每隔1秒自动加1,仿真图如下所示:

图4.1 “开始”按键仿真结果

当点击“暂停”(第一个)按键时,LED数码管显示的数就停止不动了,仿真

图如下图所示:

图4.2 “暂停”按键仿真结果

8

SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOV P0,#0FFH CLR TR0 CLR TR1 CLR 7FH

ML1: ACALL DISP

START: JB P1.0,L1 ACALL DELAY10 JB P1.0,L1 JNB P1.0,$ LJMP STOP

L1: JB P1.1,L2 ACALL DELAY10 JB P1.1,L2 JNB P1.1,$ LJMP FUWEI

L2: JB P1.2,L3 ACALL DELAY10 JB P1.2,L3 JNB P1.2,$ LJMP KJIA

L3: JB P1.3,L4 ACALL DELAY10 JB P1.3,L4 JNB P1.3,$ LJMP JISHU

L4: JB P1.4,L

; P1.0=0,暂停 ; P1.1=0,复位 ; P1.2=0,快加 ; P1.3=0,计数 ; P1.4=0,翻页14

ACALL DELAY10 JB P1.4,L JNB P1.4,$ LJMP FANYE L: SJMP HERE

STOP: CLR TR0 ;暂停程序 CLR TR1 ACALL DISP SJMP HERE

JISHU : MOV A,20H MOV @R1,A INC R1 DJNZ 50H,HERE MOV R1,#41H MOV 50H,#04H SJMP STOP

FANYE: MOV A,@R1 MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B LCALL DISP DEC R1 DJNZ 50H,HERE MOV R1,#44H MOV 50H,#04H SJMP HERE

FUWEI: CLR TR0 CLR TR1 MOV 30H,#00H

;计数程序 ;翻页程序 ;复位程序 15

MOV 31H,#00H MOV 20H,#00H SJMP HERE

KJIA: SETB TR1 ;快加程序 CLR TR0

HEE: JNB TF1,HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0,STOP SJMP HEE

HERE: LJMP ML1

ZHDUAN: SETB TR0 ;启动定时器0 CLR TR1 RETI

TIME1: PUSH ACC ;定时1秒 PUSH PSW MOV TH0,#0D8H MOV TL0,#0F0H DJNZ 40H,RET0 LCALL JIA1 LCALL DISP MOV 40H,#100

RET0: POP PSW POP ACC RETI

TIME10: PUSH ACC ;定时10毫秒 PUSH PSW MOV TH0,#0D8H MOV TL0,#0F0H

RET1: POP PSW

16

POP ACC RETI

JIA1: MOV A,20H ;加1程序 CLR C INC A

CJNE A,#100,GO1 MOV 20H,#00H RET

GO1: MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B RET

DISP: MOV R0,#30H MOV R3,#0BFH MOV A,R3

PLAY: MOV P2,A MOV A,@R0

MOV DPTR,#DSEG1 MOVC A,@A+DPTR MOV P0,A LCALL DL1 MOV P2,#0FFH MOV A,R3 RL A JNB ACC.2,LD1 INC R0 MOV R3,A LJMP PLAY LD1: RET

;显示程序 17

DL1: MOV R7,#02 DL: MOV R6,#248 DJNZ R6,$ DJNZ R7,DL RET

DELAY10: MOV R4,#14H ;延时10毫秒 DL00: MOV R5,#0FFH DL11: DJNZ R5,DL11 DJNZ R4,DL00 RET

DSEG1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END

附录2

图1 电路总图

18

本文来源:https://www.bwwdw.com/article/pul7.html

Top