单片机课程设计.docx

上传人:b****5 文档编号:11881723 上传时间:2023-04-08 格式:DOCX 页数:15 大小:41.76KB
下载 相关 举报
单片机课程设计.docx_第1页
第1页 / 共15页
单片机课程设计.docx_第2页
第2页 / 共15页
单片机课程设计.docx_第3页
第3页 / 共15页
单片机课程设计.docx_第4页
第4页 / 共15页
单片机课程设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机课程设计.docx

《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(15页珍藏版)》请在冰豆网上搜索。

单片机课程设计.docx

单片机课程设计

 

单片机课程设计报告

——电子钟设计

 

专业:

计算机应用技术

班级:

计算机工程系0801班

学号:

计08080139

姓名:

吴蜜

时间:

2010年4月

 

摘要

  本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计以单片机8031芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。

与传统机械表相比,它具有走时精确,显示直观等特点。

它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。

该电子钟可以做到的功能:

上电或按键复位后能自动进入时钟准备状态,等待按下电子钟启动/调整键。

当第一次按下启动/调整键时,电子钟从0时0分0秒开始运行,进入时钟运行状态。

再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。

通过设置的复位键和启动键来调整运行,并且利用了6位LED显示时分秒。

此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示时分秒时,算是一次比较成功的设计了。

关键词:

电子钟,单片机,汇编

 

目录

1、前言

单片机的应用介绍

2、课程设计的目的和要求

1.1、课程设计的目的

1.2、课程设计的基本要求

3、总体设计

2.1、基本工作原理总图

2.2、硬件总体设计

2.2.1、系统组成方案

2.2.2、扩展单元编址

2.2.3、键盘、显示功能的定义

2.3、软件总体设计

2.3.1、存储单元的分配、标志位的定义

2.3.2、主程序框图及清单(带有注释)

4、硬件设计

介绍本系统所选用的各种芯片的功能、引脚、相应的命令控制字格式等。

5、软件设计

介绍本系统的主要子程序、中断服务程序的框图及程序清单(带有注释)

6、系统操作说明

介绍本系统的操作使用方法

7、结束语

简述课程设计的收获、体会

8、参考文献

9、系统原理图

A3图纸绘制

 

前言

当前,计算机的应用已经渗透到国民经济与人们生活的各个角落,正在日益改变着传统的人类工作方式和生活方式。

而单片机技术作为计算机技术中的一个独立分支,有着性价比高、集成度高、体积小、可靠性高、控制功能强大、低功耗、低电压、便于生产、便于携带等特点,所以得到越来越广泛的应用,特别是在工业控制和仪表仪器智能化中起着极其重要的作用。

本文利用单片机强大的控制功能和内部定时器重要部件,设计了一款自行电子钟。

数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,既可用该电子钟发出各种控制信号,又可利用其精确度高等特点。

1、课程设计的目的和要求

1.1课程设计的目的

课程设计作为单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,培养解决工业控制、工业检测等领域具体问题的初步能力;学生还可以通过所做课题,“解剖麻雀”,熟悉单片微机应用系统开发、研制的过程,软硬件设计的工作方法、工作内容、工作步骤,同时也是对学生进行基本技能训练,例如组成系统、编程、调试、查阅资料、绘图、编写说明书等;使学生理论联系实际,提高动手能力和分析问题、解决问题的能力,通过单片机的课程设计还可以进一步激发学生再深一步学习的热情。

因此课程设计是必不少的,是非常必要的。

1.2课程设计的基本要求

为保证顺利完成课程设计的任务,应注意如下要求:

(1)认真阅读设计任务书,保质保量地完成任务书的规定的工作。

(2)在总体方面确定过程中,要求多想,多查资料。

(3)程序设计时,先画框图再编程,无论是自上而下,还是自下而上,必须一步一步调试,做到可读性好,主要语句一定要写注释。

(4)硬件图用A3绘制,必须符合国家有关标准的规定。

(5)说明书要求文字通顺,简炼。

不少于3000字(不算源程序)。

(6)设计的系统必须进行实验演示。

2、总体设计

2.1基本工作原理总图

(附一个简单的硬件原理图,即画出各芯片相连就可以了,不需要具体画出是怎相连的)

2.2、硬件总体设计

2.2.1、系统组成方案

以单片机8031芯片和LED数码管为核心,在8031最小系统的基础上,通过8155扩展I/O口构成键盘、显示器,利用单片机内部的定时/计数器功能,辅以必要的电路,构成了一个单片机电子时钟。

2.2.2、扩展单元编址

ROM的

RAM的

2.2.3、键盘、显示功能的定义

电子钟计时周期为24小时,采用6位LED数码管显示时分秒,显满刻度为“23时59分59秒”;键盘设定0——9十个数字键用来设置具体的时间,另外还有2个功能键:

复位键——使电子钟从运行状态进入校时状态;启动键——使电子钟从校时状态进入自动运行状态。

2.3、软件总体设计

2.3.1、存储单元的分配、标志位的定义

 

2.3.2、主程序框图

主程序的大致流程图如下:

 

Y

N

3、硬件设计

(附上详细的硬件电路图,并附上一定的说明文字)

 

4、软件设计

(附上系统每个子程序的流程图,及各部分功能性说明)

定时中断程序:

 

键盘扫描子程序:

 

动态显示子程序:

 

相关程序代码如下:

HOUREQU40H;存放时信息的单元

MINUTEEQU41H;存放分信息的单元

SECONDEQU42H;存放秒信息的单元

NUMEQU43H;存放T0溢出次数的单元

ORG0000H;程序入口

AJMPMAIN

ORG0030H;主程序入口

MAIN:

MOVSP,#60H;指定堆栈栈底

MOVHOUR,#00H

MOVMINUTE,#00H

MOVSECOND,#00H;将时、分、秒分别清零

MOVNUM,#0

MOVTMOD,#01H;设T0工作于方式1,用于定时

MOVTH0,#4CH;设置T0的初始值

MOVTL0,#00H

MOVIE,#00H;关中断

SETBTR0;开启定时器T0

LOOP:

NOP

NOP

ACALLDISPLAY;调用显示子程序

NOP

NOP

LOOP1:

JBTF0,TIME;等待定时溢出

LJMPLOOP1

TIME:

CLRTR0;关闭定时器

PUSHDPL;保护现场

PUSHDPH

PUSHACC

MOVTH0,#4CH;重新设置T0的值

MOVTL0,#00H

SETBTR0;开启T0

MOVA,NUM

INCA;溢出次数+1

MOVNUM,A

CJNEA,#0AH,TT1;检测键盘

MOVP1,#0FH;设键盘初值

MOVR0,#04H;延时消抖

LCALLDELAY

JNBP1.0,T0C1;为0表示P1.0按下,转T0C1调整秒

JNBP1.1,T0C2;为0表示P1.1按下,转T0C2调整分

JNBP1.2,T0C3;为0表示P1.2按下,转T0C3调整时

TT1:

CJNEA,#140,RR4

MOVNUM,#00H

T0C1:

MOVA,SECOND

INCA;秒单元内容加1

DAA;调整为BCD码

MOVSECOND,A

CJNEA,#60H,RR4;不为60秒继续等待

setbflag:

clrflag

RR1:

MOVSECOND,#00H;为60秒将秒单元清零

T0C2:

MOVA,MINUTE

INCA;分单元内容加1

DAA;调整为BCD码

MOVMINUTE,A

CJNEA,#60H,RR4;不为60分继续等待

RR2:

MOVMINUTE,#00H;为60分,分单元清零

T0C3:

MOVP1,#0F0H;1小时闪一次

LCALLDELAY;延时

MOVP1,#0FH

MOVA,HOUR

INCA;时单元内容加1

DAA;调整为BCD码

MOVHOUR,A

CJNEA,#24H,RR4;不为24小时继续等待

RR3:

MOVHOUR,#00H;为24小时,时单元清零

RR4:

POPACC;恢复现场

POPDPH

POPDPL

LJMPLOOP

DELAY:

MOVR1,#10H;延时子程序

DELAY1:

MOVR2,#20H

DJNZR2,$

DJNZR1,DELAY1

DJNZR0,DELAY

RET

DISPLAY:

MOVDPTR,#TAB;送表头基地址

MOVA,HOUR

ANLA,#0FH;屏蔽时高位

MOVCA,@A+DPTR;查时高位

MOVP0,A

CLRP2.6;开显示

MOVR0,#1;延时消除鬼影

LCALLDELAY

SETBP2.6;关显示

MOVA,HOUR

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVP0,A

CLRP2.7

MOVR0,#1

LCALLDELAY

SETBP2.7

MOVA,MINUTE

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

CLRP2.4

MOVR0,#1

LCALLDELAY

SETBP2.4

MOVA,MINUTE

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVP0,A

CLRP2.5

MOVR0,#1

LCALLDELAY

SETBP2.5

MOVA,SECOND

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

CLRP2.2

MOVR0,#1

LCALLDELAY

SETBP2.2

MOVA,SECOND

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVP0,A

CLRP2.3

MOVR0,#1

LCALLDELAY

SETBP2.3

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

 

5、系统操作说明

上电或按键复位后能自动进入时钟准备状态,若此时发现电子钟走时不准,则可以通过按相应的数字键进行校时,校时完毕后,等待按下电子钟启动键,当按下启动键时,电子钟从0时0分0秒开始运行,进入时钟运行状态。

6、结束语

回顾此次单片机课程设计,我感慨颇多,的确,从资料的搜集到定稿,从理论到实践,在整整几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计,首先我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力;另外,虽然煞费苦心,终于完成了这次课题,但是我知道本次设计还是依然存在着许多的不足的,它太过简单,实现的功能很少,所以我更加明白要想作出真正市场上需求的单片机产品,现在就要更加努力,深入学习单片机方面的知识,不断提高自己的动手能力。

第一次做这样的课程设计,在设计过程中遇到困难,可以说得是数不胜数,同时还发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说单片机各种芯片的相互连接,对单片机汇编语言掌握得不好……通过这次课程设计之后,我想应该要把以前所学过的知识重新温故。

 

实验原理:

;70H~73H存放分、时,74H~77H存放闹钟分、时

;P1.2接LED灯,每秒闪一次

;P1.7接蜂鸣器

;P3.3接开关调时钟分的个挝?

;P3.4接开关调时钟时的个位

;P3.2调时开关

;P3.4闹钟时间存储开关

      

     ORG4000H 

     LJMPMAIN

   

  MAIN:

MOV70H,#09H   ;分的个位

     MOV71H,#05H   ;分的十位

     MOV72H,#03H   ;时的个位

     MOV73H,#02H   ;时的十位

      

     SETBP1.2 

     SETBP1.7

     MOVR2,#00H 

     MOVR3,#32H 

 MOVR1,#10H

     

DINGSHI1S:

MOVTMOD,#01H   ;时钟定时,1秒定时的计数初?

     MOVTL0,#60H   ;4MS定时

     MOVTH0,#0F0H 

     SETBEA

 SETBET0

 SETBTR0 

  WAIT:

JNBTF0,WAIT

      

     DJNZR1,CONTIN 

     CPLP1.2     ;控制秒灯的闪动

 MOVR1,#10H

 CONTIN:

DJNZR3,NEXT0

     MOVR3,#32H 

 INCR2

     CJNER2,#3CH,NEXT0  

     MOVA,#01H    ;60秒到,分的个位加1

     ADDA,70H

     MOV70H,A

     MOVR2,#00H    ;R0清零

      

      

 CJNEA,#0AH,NEXT0   

     MOVA,#01H    ;10分到,分的十位加1

     ADDA,71H

     MOV71H,A

     MOV70H,#00H   ;分的个位清

      

     CJNEA,#06H,NEXT0

  

 MOV71H,#00H

     MOVA,#01H    ;时的个位加1

     ADDA,72H

 MOV72H,A

 CJNEA,#0AH,PANDUAN 

   MOV72H,#00H

     MOVA,#01H    ;10小时到,时的十位

     ADDA,73H

 MOV73H,A

 PANDUAN:

MOVA,73H

     SWAPA

 ORLA,72H

     CJNEA,#24H,NEXT0

 MOV72H,#00H

 MOV73H,#00H

      

  NEXT0:

JBP3.2,SET1

     JBP3.5,ALARM

     MOVR0,#70H

     ACALLDISPLAY

 MOVTL0,#60H   ;4MS定时

     MOVTH0,#0F0H 

 CLRTF0

     SJMPDINGSHI1S

     RET

  ALARM:

MOVR0,#74H

     ACALLDISPLAY

 JNBP3.5,NEXT0

 AJMPALARM

  

  SET1:

JNBP3.3,SET2

     MOVA,#01H    ;分的个位加1

     ADDA,70H

     MOV70H,A

 CJNEA,#0AH,SET2

 MOVR0,#70H

      

     MOVA,#01H    ;分的十位加1

     ADDA,71H

     MOV71H,A

 MOV70H,#00H

 CJNEA,#06H,SET2

 MOV71H,#00H

  SET2:

JNBP3.4,SET4

     MOVA,#01H    ;时的个位加1

     ADDA,72H

 MOV72H,A

 CJNEA,#0AH,PANDUAN0 

   MOV72H,#00H

     MOVA,#01H    ;10小时到,时的十位加1

     ADDA,73H

 MOV73H,A

PANDUAN0:

MOVA,73H

     SWAPA

 ORLA,72H

     CJNEA,#24H,SET4

 MOV72H,#00H

 MOV73H,#00H

  SET4:

 JNBP3.5,SET5   ;闹钟定时的时间存储

     MOV74H,70H    ;分的个位

     MOV75H,71H    ;分的十位

     MOV76H,72H    ;时的个位

     MOV77H,73H    ;时的十位

  SET5:

MOVR0,#70H

     ACALLDISPLAY

 ACALLDELX

 JNBP3.2,NEXT0

 AJMPSET1

   

  

 ;显示部分

   TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

 

作者:

lull0815 2006-7-1200:

59 回复此发言  

--------------------------------------------------------------------------------

3电子钟 

      

 DISPLAY:

MOVA,@R0

     MOVDPTR,#TAB 

     MOVCA,@A+DPTR 

     MOV R6,#08H

     

  LED1:

RLC A        ;带进位的左环移 

     MOVP1.0,C     ;输入1位数据,高位在前

 CLRP1.1       ;产生上升沿

 SETBP1.1      ;数据移入移位寄存器

     DJNZR6, LED1    ;8位数据数否全部移入

     CLR P1.3      ;送位码,点亮第一位数码管

 ACALLDEL

 SETBP1.3

     

     INCR0

     MOVA,@R0

     MOVDPTR,#TAB

     MOVCA,@A+DPTR

     MOVR6,#08H

  LED2:

RLCA        ;带进位的左环移

     MOVP1.0,C     ;输入1位数据,高位在前

 CLRP1.1       ;产生上升沿

     SETBP1.1      ;数据移入移位寄存器

     DJNZR6,LED2     ;8位数据数否全部移入

     CLR P1.4      ;送位码,点亮第二位数码管

 ACALLDEL

  SETBP1.4

     

     INCR0

     MOVA,@R0

     MOVDPTR,#TAB

     MOVCA,@A+DPTR

     MOVR6,#08H

  LED3:

RLCA        ;带进位的左环移

     MOVP1.0,C     ;输入1位数据,高位在前

 CLRP1.1       ;产生上升沿

     SETBP1.1      ;数据移入移位寄存器

     DJNZR6,LED3     ;8位数据数否全部移入

     CLR P1.5      ;送位码,点亮第二位数码管

 ACALLDEL

 SETBP1.5

     

     INCR0

     MOVA,@R0

     MOVDPTR,#TAB

     MOVCA,@A+DPTR

     MOVR6,#08H

  LED4:

RLCA        ;带进位的左环移

     MOVP1.0,C     ;输入1位数据,高位在前

 CLRP1.1       ;产生上升沿

 SETBP1.1      ;数据移入移位寄存器

     DJNZR6,LED4     ;8位数据数否全部移入

     CLR P1.6      ;送位码,点亮第四位数码管

     ACALLDEL

 SETBP1.6

 

 MOVA,73H

 CJNEA,77H,CL0  ;闹钟时间判断,判断时的个位

     MOVA,72H

     CJNEA,76H,CL0  ;判断时的十位

     MOVA,71H   

     CJNEA,75H,CL0  ;判断分的十位

     MOVA,70H

     CJNEA,74H,CL0  ;判断分的个位

     CPLP1.7 

   C

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1