数码管显示实验.docx

上传人:b****0 文档编号:9046195 上传时间:2023-05-16 格式:DOCX 页数:19 大小:439.51KB
下载 相关 举报
数码管显示实验.docx_第1页
第1页 / 共19页
数码管显示实验.docx_第2页
第2页 / 共19页
数码管显示实验.docx_第3页
第3页 / 共19页
数码管显示实验.docx_第4页
第4页 / 共19页
数码管显示实验.docx_第5页
第5页 / 共19页
数码管显示实验.docx_第6页
第6页 / 共19页
数码管显示实验.docx_第7页
第7页 / 共19页
数码管显示实验.docx_第8页
第8页 / 共19页
数码管显示实验.docx_第9页
第9页 / 共19页
数码管显示实验.docx_第10页
第10页 / 共19页
数码管显示实验.docx_第11页
第11页 / 共19页
数码管显示实验.docx_第12页
第12页 / 共19页
数码管显示实验.docx_第13页
第13页 / 共19页
数码管显示实验.docx_第14页
第14页 / 共19页
数码管显示实验.docx_第15页
第15页 / 共19页
数码管显示实验.docx_第16页
第16页 / 共19页
数码管显示实验.docx_第17页
第17页 / 共19页
数码管显示实验.docx_第18页
第18页 / 共19页
数码管显示实验.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数码管显示实验.docx

《数码管显示实验.docx》由会员分享,可在线阅读,更多相关《数码管显示实验.docx(19页珍藏版)》请在冰点文库上搜索。

数码管显示实验.docx

数码管显示实验

 

 

数码管显示实验原理及分析报告

 

学院计算机工程学院

专业计算机应用

年级班别09计算机科学与技术2班

学号2009404010202

学生姓名黄正

指导教师李永

日期2011年12月25日

单片机数码管显示课程设计

 

目录

1引言1

2设计任务和要求1

2.1设计目的1

2.2设计意义1

3总原理图及主要模块的流程图1

3.1总原理图及元器件清单1

3.2主要流程图1

4性能测试与分析3

5结论与心得4

致谢4

参考文献4

 

单片机数码管显示课程设计

1引言

从上世纪70年代第一批单片机问世,短短二三十年时间,单片机技术已经成为计算机技术的一个重要分支,广泛运用到工业控制、仪器、仪表、消费产品,汽车、办公自动化和通信等领域。

因此,单片机技术已经成为电子、测控、自动化、通信等许多工科专业学生的必备技能。

我用AT89C51芯片来设计一个简单的数码管显示。

此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。

关键词:

单片机,AT89C51,数码管

2设计任务和要求

2.1设计目的

1.学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2.了解AT89C51这个芯片的使用和性能指标测试方法。

3.培养实践技能,提高分析和解决实际问题的能力。

4.了解数码管动态显示的原理及了解74LS164扩展端口的方法。

2.2设计意义

为了更好地熟悉和掌握单片机的基本功能和编程,掌握数码管动态扫描显示原理及实现方法。

自我动态扫描显示电路驱动程序的编写方法。

通过课程设计,达到理论与实际应用相结合,提高学生对微机硬件结构的软件设计方法的理解,使学生能够根据实际应用,初步实现硬件及软件的设计,对硬件开发有更深层的认识,为今后打软硬件开发,打下坚实的基础。

3总原理图及及主要模块的流程图

3.1本实验仪提供了8段码数码管LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,采用动态方式显示。

8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。

本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

 

3.2七段数码管的字型代码表如下表:

显示字形

g

f

e

d

c

b

a

段码

0

0

1

1

1

1

1

1

3fh

1

0

0

0

0

1

1

0

06h

2

1

0

1

1

0

1

1

5bh

a

fb

g

ec

d

dp

3

1

0

0

1

1

1

1

4fh

4

1

1

0

0

1

1

0

66h

5

1

1

0

1

1

0

1

6dh

6

1

1

1

1

1

0

1

7dh

7

0

0

0

0

1

1

1

07h

8

1

1

1

1

1

1

1

7fh

9

1

1

0

1

1

1

1

6fh

A

1

1

1

0

1

1

1

77h

B

1

1

1

1

1

0

0

7ch

C

0

1

1

1

0

0

1

39h

D

1

0

1

1

1

1

0

5eh

E

1

1

1

1

0

0

1

79h

F

1

1

1

0

0

0

1

71h

3.2课程设计电路图如下

1.数码管电路图如下

2.8155键显模块

3.2主要流程图

1.主程序的流程图

 

 

 

4实验步骤:

1、将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。

2、进入KEIL软件界面,点击项目/打开项目

在C:

\KEIL\UV2\3000TC51配套实验例程中选择实验一,内有ASM和C51两种程序,进入ASM文件夹打开LED项目文件

进入如图所示界面

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F

 

5程序调试过程及运行结果

通过用Uvision按编译运行没错误后执行但不调试看到每一步执行结果运行状态的各个内存外存数据变化情况

 

调试菜单如图所示

寄存器状图

6结论与心得

这周的实习真的有点郁闷,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这两个撑血,但是只好硬着头皮去看去理解。

但在学习过程中也充满了乐趣,当看懂了一个程序里的一些语句,画出了要求的设计图,那我的喜悦那种成就感就油然而生。

这次实习让我受益匪浅,无论从知识上还是其他的各个方面。

上课的时候的学习从没有真正的用心弄下单片机。

知识从理论的角度去理解枯燥乏味的代码,但在实习中见过甚至使用了单片机极其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。

在这次课程设计中又让我体会到了合作和团结的力量。

当遇到不会的或者是设计不出来的地方,我们就会在区里讨论或者是同学之间互相帮助。

团结就是力量。

无论在现在的学习中还是在以后的工作中团结都是至关重要的,有了团结才有更多的理念,更多的思维,更多的情感。

通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。

使之不断地战胜别人,超越前人。

同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。

设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

单片机是一门实践性强的课程。

老师和一些工作的朋友都曾说过。

如果学号一门单片机,就凭这个技术这门艺术找个好工作也不成问题。

尽管我们在课堂学到的内同有限,但在以后的学习中单片机还需要好好的深入研究和学习,学号了单片机也就多了一项生存的本钱,最后感谢老师对我们的精心指导和帮助谢谢同学们的对我的帮助

这个设计过程中,我遇到过许多次失败的考验,就比如,我在软件上仿真软件上能实现其功能,但是把它写进开发板就无法运行,我不停地找原因。

最后我找到了答案,这样我明白,做设计不但是软件可以运行,用在硬件上一样是那么重要的。

我做的这个设计主要是用AT89C51这个芯片来实现,这个芯片具有很多优点,程序简单易读,结构清楚,最重要的是成本低。

很适合我们学生用来学生。

在做这个设计的过程中,我也了解到了自己的不足,在日后的学习中,我还需加倍努力学习。

设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。

这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作

参考文献)

[1]梁炳东.单片机原理与应用。

北京:

人民邮电出版社,2009

[2]

[3]

致谢

在此次课程设计中,我遇到不懂的问题,老师和同学都帮我,让我把问题顺利地得到解决,最后完成此次课程设计报告。

从中我学到了很多东西,在此,谢谢我的老师和同学,感谢你们在我遇到难题的时候帮我解答。

6程序汇编代码如下

主程序和子程序都存放在AT89C51单片机中。

主程序的功能是:

显示数字。

子程序的功能有:

延时。

程序代码:

OUTBITequ0e101h;位控制口

CLK164equ0e102h;段控制口(接164时钟位)

DAT164equ0e102h;段控制口(接164数据位)

INequ0e103h;键盘读入口

LEDBufequ60h;显示缓冲

Numequ70h;显示的数据

DelayTequ75h;

org0000h

ljmpStart

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

Delay:

;延时子程序

movr7,#0

DelayLoop:

djnzr7,DelayLoop

djnzr6,DelayLoop

ret

DisplayLED:

movr0,#LEDBuf

movr1,#6;共6个八段管

movr2,#00100000b;从左边开始显示

Loop:

movdptr,#OUTBIT

mova,#00h

movx@dptr,a;关所有八段管

mova,@r0

movB,#8;送164

DLP:

rlca

movr3,a

movacc.0,c

ANLA,#0FDH

movdptr,#DAT164

movx@dptr,a

movdptr,#CLK164

orla,#02h

movx@dptr,a

anla,#0fDh

movx@dptr,a

mova,r3

djnzB,DLP

movdptr,#OUTBIT

mova,r2

movx@dptr,a;显示一位八段管

movr6,#1

callDelaymova,r2;显示下一位

rra

movr2,a

incr0

djnzr1,Loop

movdptr,#OUTBIT

mova,#0

movx@dptr,a;关所有八段管

ret

Start:

movdptr,#0e100h

mova,#03h

movx@dptr,a

movsp,#40h

movNum,#0

MLoop:

incNum

mova,Num

movb,a

movr0,#LEDBuf

FillBuf:

mova,b

anla,#0fh

movdptr,#LEDMap

movca,@a+dptr;数字转换成显示码

mov@r0,a;显示在码填入显示缓冲

incr0

incb

cjner0,#LEDBuf+6,FillBuf

movDelayT,#30

DispAgain:

callDisplayLED;显示

djnzDelayT,DispAgain

ljmpMLoop

END

 

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2