单片机课程设计报告.docx

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

单片机课程设计报告.docx

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

单片机课程设计报告.docx

单片机课程设计报告

《单片机技术与应用》

课程设计报告

题目:

单片机小系统电子钟的设计

院(系):

信息科学与技术系

专业班级:

电子信息工程0901班

学生姓名:

王海毅

学号:

指导教师:

陈青

2012年6月11日至2012年6月25日

华中科技大学武昌分校制

单片机技术与应用课程设计任务书

一、设计(调查报告/论文)题目

课题一:

单片机小系统电子钟的设计

二、设计(调查报告/论文)主要内容

设计制作要求:

用80C51/52单片机编程控制显示的电子钟。

1)要有8位LED显示器,分别显示“年号:

月份:

日期”/“时:

分:

秒:

毫秒”

例如“2005。

10。

20”表示“2005年10月20日”/“10524999”表示“10时52分49秒99毫秒”

2)要有四位输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”

即“SHIFT”,“NUM+”,“NUM-”,“SAVE”

3)显示过程:

实验板通电开机后,8位LED显示器显示“时:

分:

秒”

按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。

再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。

三、原始资料

参看《单片计算机原理课程设计指导书》和教材。

四、要求的设计(调查/论文)成果

能够在制定的小系统板上成功演示,并通过验收回答相关问题,给出设计分数。

五、进程安排

整个课程设计安排1周完成

周一:

1、讲解课题内容,2、同学自选课题,3、发放课题元器件,4、焊接电路板

周二:

1、完善电路板焊接,2、编写调试课题软件

周三、四:

编写调试课题软件

周五:

验收课题,回答课题程序内容。

六、主要参考资料

[1]陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校姜志海.单片微机原理及应用.北京:

电子工业出版社.2005.

[3]李群芳.肖看.单片机原理、接口及应用.北京:

清华大学出版社.2005.

指导教师(签名):

2012年06月11日

 

1.

课程设计的目的

(1)单片机系统的整体设计流程。

(2)能够正确安装和焊接硬件电路板。

(3)单片机系统的硬件、软件调试方法及相关工具的使用。

(4)各种常见元器件的选择及使用。

2.课程设计题目描述和要求

题目描述:

电子钟的设计

制作要求:

用80C51/52单片机编程控制显示的电子钟。

(1)要有8位LED显示器,分别显示“年号:

月份:

日期”/“时:

分:

秒:

毫秒”先显示年份再显示日期。

(2)可以设置四个输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”,即“SHIFT”,“NUM+”,“NUM-”,“SAVE”。

(3)显示过程:

实验板通电开机后,8位LED显示器显示“时:

分:

秒”。

按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。

再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。

(4)能够正确安装和焊接硬件电路板。

拿到元器件后,用万用表对电子元器件进行参数测量、检查。

焊接时,要焊点饱满、光洁,无虚焊、漏焊、错焊。

(5)熟悉单片机系统的工作原理及调测方法。

软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课设报告。

3.课程设计报告内容

课题设计方案及基本原理

通过对单片机AT89C52软件编程来控制硬件使数码管显示年份与时间,并且可以通过按键来控制时间及年份的修改。

基本原理:

单片机AT89C52~来判断按键是否按下,当按键按下时,~为低电平,单片机程序对应为00H。

通过P1,0~控制4511的4个输入端,进行译码输出,4511的输出端7段段码送数码管显示。

~控制4028的4个输入端进行位选输出9个状态,然后经过两个2003进行驱动让数码管能按按键要求显示。

硬件电路介绍

电路原理图:

CD4028是BCD码4—10译码器,它由4个缓冲输入端口、译码逻辑门和10个缓冲器组成。

加至四个输入端口A0~A3的一个BCD码在十个十进制译码器输出十个相应的顺序脉冲,输出为高电平有效。

同样,若A3=0,加在输出口具有高驱动能力,以在高输出应用中增强直流和动态性能。

BCD-十进制译码器4028的引脚图如上页原理图中所示。

软件设计

基本思路:

(1)动态扫描显示LED电路程序:

设立8个内部RAM显示缓冲区,将要显示的数据的BCD码送显示缓冲区,程序只需要将显示缓冲区的BCD码,送相应的端口即可。

动态扫描显示

例如:

将40H-48H为“时:

分:

秒:

毫秒”显示区

将49H-4FH为“年:

月:

日”显示区

(2)动态扫描键盘程序:

循环扫描有无按键,有:

判断是何按键,转入相应子程序处理。

无:

返回主程序执行。

(3)定时器设置与时间处理的程序:

此段为该程序段的关键所在,它决定时间的准确性,和进位的正确性。

定时器计数可用中断方式,也可以用软件查询方式进行。

定时器中断定时方式的精确度高。

采用软件延时方式要注意每条指令的机器周期的精确计算,否则会造成时间的不准。

(4)各项功能键的子程序模块:

移位子程序:

按下“SHIFT”后左边第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。

程序中可设置第二显示缓冲区,将移到要闪动的数字位设为不显示(黑)“0FFH/00H”,程序只需要将两组显示缓冲区的BCD码,分时间间隔发送出去,就会产生数字闪动效果。

数字+/-:

将要显示的数据缓冲区的内容取出加一/减一,注意每个位都有自己的位限制,如“时”的位最大数23,“分、秒”最大数59,“月”最大数12,“日”最大数31。

两位数一起调整比较方便。

还要注意的是计数后二/十进制之间的转换问题。

“存储”:

即将修改好的数值存储到显示缓冲区,并返回,进入主程序运行。

软件设计流程图:

开始

 

 

调试过程

(1)根据实验原理图焊接电路,然后进行硬件调试,用万用表点对点测量,看电路是否焊接好。

特别是芯片的引脚,看是否连通,如:

AT89C52芯片的18脚与信号连通的话,用示波器测量18脚时就会出现比较标准的正弦波。

对按键进行测试时,如果按键没有按下,测量按键两端就会有大概5V的电压,如果按键两端没有电压,说明按键已经按下,按下后其已经接地。

(2)然后进行软件编程,对其进行功能仿真,仿真时要对仿真器进行设置,不然会出现超出地址范围的错误。

然后进行断点设置,观察运行状态,看外部寄存器中20H~2AH中单元的变化,看是否达到要求,编程时注意对于在后面将发生变化的寄存器单元要进行清零操作,不然会影响后面的结果,对于加操作后要进行十进制调整,并且DAA的指令只对寄存器A操作。

(3)将编写好的程序用烧录器烧录到AT89C52芯片中,然后再安装到硬件电路板上,接通5—12V的电源后会先显示时间,按键切换以后将显示日期,再切换后毫秒会闪烁通过+按键可对其进行加操作,—按键进行减操作。

依次进行时间的修改,按保存后,再切换将进行从日到年对日期修改。

遇到的问题及解决方法

(1)当我把程序下载到AT89C52芯片中,然后再安装到硬件电路板上,接通5—12V的电源后,我发现LED数码管只有左边一半是亮的,我编的程序是让所有LED数码管都亮。

解决方法:

我用别人的硬件试了一下我的芯片所有LED数码管都亮了,这肯定是我的硬件电路的问题,我找老师帮忙,老师先用万用表检查控制显示的CD4028芯片是否接通,发现是好的,然后用示波器检查AT89C52左边引脚的波形,发现左边第三个引脚没有波形,其次又发现CD4028芯片有一个引脚也没波形,老师断定是我的CD4028芯片坏了,最后老师给我换了一个CD4028芯片,再测试后就好了。

(2)编译后指令超出地址范围。

解决方法:

可以采用接力的方式先转到中间再转到所要转的地方,灵活运用指令就会解决一些问题。

(3)按键不是很灵敏,按的太快没反应,或者按键反应太快了按一下跳好几下。

解决方法:

按键延时时间太长或太短了,将延时时间调整到10—20毫秒,就可以解决了。

4.实验总结

对单片机AT89C52芯片内部结构以及各引脚功能有了进一步的了解,对硬件的焊接更加熟练,能基本做到不拖焊、虚焊,并且一次成功。

第一次接触这么长程序的编写,思路开始很模糊,许多子程序不知道放哪里比较好,有时主程序也很模糊,通过参考别人的程序有了一定的思维,再根据自己的想法对别人的程序进行了一定的修改,就变为自己的东西,通过这次编写,我了解到思维逻辑性要在掌握程序的基础之上,这样才能做到有序,有条理。

编写程序思路是很重要的,首先理清思路,画出程序流程图,根据流程图,一步步用指令实现。

参考资料

[1]陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校姜志海.单片微机原理及应用.北京:

电子工业出版社.2005.

[3]李群芳.肖看.单片机原理、接口及应用.北京:

清华大学出版社.2005.

附录1硬件实物图

ORG0000H

AJMPMAIN1

ORG001BH

AJMPT1INT

ORG0030H

MAIN1:

MOVSP,#70H;初始化

CLRA

CLR

MOVTMOD,#20H

MOVTH1,#06H

MOVTL1,#06H

SETBEA

SETBET1

SETBTR1

MOV31H,#00H

MOV32H,#58H

MOV33H,#58H

MOV34H,#23H

MOV35H,#27H

MOV36H,#02H

MOV37H,#12H

MOV38H,#20H

MOV40H,#0;标志位

MOVR0,#31H

MOVR1,#32H

LOPA:

JNB,NEXT1

CLR

MOVA,#1

ADDA,31H;到10毫秒

DAA

MOV31H,A

CJNEA,#100H,NEXT1

MOV31H,#0

MOVA,#1

ADDA,32H;到一秒

DAA

MOV32H,A

CJNEA,#60H,NEXT1

MOV32H,#0

MOVA,#1

ADDA,33H;到一分

DAA

MOV33H,A

CJNEA,#60H,NEXT1

MOV33H,#0

MOVA,#1

ADDA,34H;到一时

DAA

MOV34H,A

CJNEA,#24H,NEXT1

MOV34H,#0

MOVA,#1

ADDA,35H;到一天

DAA

MOV35H,A

LCALLTIAO_TIAN

MOV35H,#01H

MOVA,#1

ADDA,36H;到一月

DAA

MOV36H,A

CJNEA,#13H,NEXT1

MOV36H,#01H

MOVA,#1;到一年

ADDA,37H

DAA

MOV37H,A

CJNEA,#100H,NEXT1

MOV37H,#00H

MOVA,#1

ADDA,38H

DAA

MOV38H,A

CJNEA,#100H,NEXT1

MOV38H,#00H

RET

;----------切换时间和年----------------------

NEXT1:

JB,LOPB;判断是否切换

JNB,$

MOVA,R0

CJNEA,#35H,LOPC

MOVR0,#31H

MOVR1,#32H

LJMPLOPB

LOPC:

MOVR0,#35H

MOVR1,#36H

LOPB:

LCALLDISP

JB,LOP0;判断按键进入调整

JNB,$

LCALLLOP1;设置时间和日期

LOP0:

LJMPLOPA

;----------调时间和日期----------------

LOP1:

JB,LOP2;判断是否退出调整

JNB,$

RET

LOP2:

JB,LOP3;判断是否移位

JNB,$

INC40H;指针加一

MOVA,40H

CJNEA,#04H,LOP3;没有到最前两位

MOV40H,#0

LOP3:

MOVA,40H;判断是哪一位调整

CJNEA,#0,N_HAO_HUO_RI

JB,LUOA;进入加调整

JNB,$

MOVA,R0;调毫秒或者天数

CJNEA,#31H,AOP1;加毫秒

MOVA,#1

ADDA,31H

DAA

MOV31H,A

CJNEA,#100H,LUOA

MOV31H,#0

LJMPLUOA

AOP1:

MOVA,#1;加天数

ADDA,35H

DAA

MOV35H,A

LCALLTIAO_TIAN

LJMPLUOA

LUOA:

MOVR4,#30H

LUO1:

LCALLDISP

DJNZR4,LUO1

MOVR4,#30H

LUO2:

LCALLDISP1

DJNZR4,LUO2

LJMPLOP1

N_HAO_HUO_RI:

CJNEA,#1,N_MIAO_HUO_YUE

JB,LUOB

JNB,$

MOVA,R1;调秒或者月

CJNEA,#32H,AOP2

MOVA,#1;加秒

ADDA,32H

DAA

MOV32H,A

CJNEA,#60H,LUOB

MOV32H,#0

LJMPLUOB

AOP2:

MOVA,#1;加月

ADDA,36H

DAA

MOV36H,A

CJNEA,#13H,LUOB

MOV36H,#01H

LUOB:

MOVR4,#30H

LUO3:

LCALLDISP

DJNZR4,LUO3

MOVR4,#30H

LUO4:

LCALLDISP2

DJNZR4,LUO4

LJMPLOP1

N_MIAO_HUO_YUE:

CJNEA,#2,SHI_HUO_NIANGAO

JB,LUOC

JNB,$

INCR0;R0加2

INCR0

MOVA,R0;调分或者年低两位

CJNEA,#33H,AOP3

MOVA,#1;加分

ADDA,33H

DAA

MOV33H,A

CJNEA,#60H,LOPP1

MOV33H,#0

LOPP1:

DECR0

DECR0

LJMPLUOC

AOP3:

DECR0

DECR0

MOVA,#1;加年低两位

ADDA,37H

DAA

MOV37H,A

CJNEA,#100H,LUOD

MOV37H,#0

LJMPLUOC

LUOC:

MOVR4,#30H

LUO5:

LCALLDISP

DJNZR4,LUO5

MOVR4,#30H

LUO6:

LCALLDISP3

DJNZR4,LUO6

LJMPLOP1

SHI_HUO_NIANGAO:

JB,LUOD

JNB,$

INCR1

INCR1

MOVA,R1

CJNEA,#34H,AOP4

MOVA,#1;加时

ADDA,34H

DAA

MOV34H,A

CJNEA,#24H,LOPP2

MOV34H,#0

LJMPLOPP2

AOP4:

DECR1

DECR1

MOVA,#1;加年高两位

ADDA,38H

DAA

MOV38H,A

CJNEA,#100H,LUOD

MOV38H,#0

LJMPLUOD

LOPP2:

DECR1

DECR1

LUOD:

MOVR4,#30H

LUO7:

LCALLDISP

DJNZR4,LUO7

MOVR4,#30H

LUO8:

LCALLDISP4

DJNZR4,LUO8

LJMPLOP1

;--------月份天数的确定--------------------

TIAO_TIAN:

MOVA,36H;将月份数给A

CJNEA,#02,NOT_2_YUE

MOVA,37H

CJNEA,#00H,DIV4;判断是否为闰年

MOVA,38H

MOV21H,A

ANLA,#0F0H

SWAPA

MOVB,#10

MULAB

MOV22H,A

MOVA,21H

ANLA,#0FH

ADDA,22H

MOVB,#4

DIVAB

MOVA,B

CJNEA,#00H,PING_NIAN

SJMPRUN_NIAN

DIV4:

MOVA,37H

MOV23H,A

ANLA,#0F0H

SWAPA

MOVB,#10

MULAB

MOV24H,A

MOVA,23H

ANLA,#0FH

ADDA,24H

MOVB,#4

DIVAB

MOVA,B

CJNEA,#00H,PING_NIAN

SJMPRUN_NIAN

RUN_NIAN:

MOVA,35H

CJNEA,#30H,TIAO1

MOV35H,#01

SJMPTIAO1

PING_NIAN:

MOVA,35H

CJNEA,#29H,TIAO1

MOV35H,#01

SJMPTIAO1

NOT_2_YUE:

MOVA,36H

CJNEA,#4,NOT_4

SJMPDAY30

NOT_4:

CJNEA,#6,NOT_6

SJMPDAY30

NOT_6:

CJNEA,#9,NOT_9

SJMPDAY30

NOT_9:

CJNEA,#11H,DAY31

SJMPDAY30

DAY30:

MOVA,35H

CJNEA,#31H,TIAO1

MOV35H,#01

LJMPTIAO1

DAY31:

MOVA,35H

CJNEA,#32H,TIAO1

MOV35H,#01

TIAO1:

RET

;---------------定时-------------------

T1INT:

PUSHACC

PUSHPSW

INC30H

MOVA,#28H

XRLA,30H

JNZSTF

MOV30H,A

SETB

STF:

POPPSW

POPACC

RETI

;---------------显示---------------

DISP:

MOVA,@R0

ORLA,#0F0H

ANLA,#0FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#1FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0F0H

ANLA,#2FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0FH

SWAPA

ANLA,#3FH

MOVP1,A

ACALLDEL1MS

INCR0

INCR0

INCR1

INCR1

MOVA,@R0

ORLA,#0F0H

ANLA,#4FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#5FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0F0H

ANLA,#6FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0FH

SWAPA

ANLA,#7FH

MOVP1,A

ACALLDEL1MS

DECR0

DECR0

DECR1

DECR1

RET

DISP1:

MOVA,@R1

ORLA,#0F0H

ANLA,#2FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0FH

SWAPA

ANLA,#3FH

MOVP1,A

ACALLDEL1MS

INCR0

INCR0

INCR1

INCR1

MOVA,@R0

ORLA,#0F0H

ANLA,#4FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#5FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0F0H

ANLA,#6FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0FH

SWAPA

ANLA,#7FH

MOVP1,A

ACALLDEL1MS

DECR0

DECR0

DECR1

DECR1

RET

DISP2:

MOVA,@R0

ORLA,#0F0H

ANLA,#0FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#1FH

MOVP1,A

ACALLDEL1MS

INCR0

INCR0

INCR1

INCR1

MOVA,@R0

ORLA,#0F0H

ANLA,#4FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#5FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0F0H

ANLA,#6FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0FH

SWAPA

ANLA,#7FH

MOVP1,A

ACALLDEL1MS

DECR0

DECR0

DECR1

DECR1

RET

DISP3:

MOVA,@R0

ORLA,#0F0H

ANLA,#0FH

MOVP1,A

ACALLDEL1MS

MOVA,@R0

ORLA,#0FH

SWAPA

ANLA,#1FH

MOVP1,A

ACALLDEL1MS

MOVA,@R1

ORLA,#0F0H

ANLA,#2FH

MOVP1,A

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

当前位置:首页 > 求职职场 > 简历

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

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