1 / 18
文档名称:

单片机课程设计(论文)-按键控制1位LED数码管显示0-9.doc

格式:doc   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机课程设计(论文)-按键控制1位LED数码管显示0-9.doc

上传人:3346389411 2013/3/13 文件大小:0 KB

下载得到文件列表

单片机课程设计(论文)-按键控制1位LED数码管显示0-9.doc

文档介绍

文档介绍:单片机课程设计
课程题目:按键控制1位LED数码管显示0-9
班级:
学号:
姓名:


目录
实验目的
任务说明
实验器件
实验原理图绘制说明
实验流程说明
实验程序
实验仿真


实验目的
,学会用单片机编程进行控制和8段共阳极数码管的使用方法,学会编写与调更复杂的程序,进一步熟悉单片机串行口的使用。
二、任务说明
利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1 ,则数码管显示0)。
本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键、复位电路和显示电路组成。
实验器件
1 At89c51. 2 3 7SEG-CGN-AN-GRN 4 BUTTON 5 -ELEC 6 CRYSTAL
原理图绘制说明
本次设计主要用到单片机AT89C51、晶振时序电路。AT89C51是一种带4KB闪烁可编程可擦出只读存储器的低电压、高性能CMOS微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微处理器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案
,AT89C51的管脚分配,如图1:
图1 AT89C51芯片及管脚图
AT89C51单片机主要由4个输入输出端口(P0口、P1口、P2口、P3口)及个控制引脚组成的,本次设计用到P1、P2的部分引脚,及18、19脚外接晶振电容为单片机提供时钟,9管脚为复位引脚,外接复位电路。
晶振时序电路:XTAL1和XTAL2分别为片内反相放大器的输入和输出端,当单片机采用外部时钟信号时,前者接地,后者引入外部输入信号,本次设计采用12M的石英晶体振荡器为单片机提供时钟,如图2:
图2 AT89C51的晶振时序电路图
本次设计的原理图是在PROTEUS ISIS中绘制的,其工作界面分为原理图编辑窗口(Editing window)、预览窗口(Overview window)和工具栏。
1、新建*.dsn
打开绘图界面后,首先新建一个绘图文件,选择“【文件】——【新建设计】”,。
2、绘制原理图
(1)添加元器件:元件拾取共有两种办法,一种是按类别查找和拾取元件,另一种是直接查找和拾取元件。我采用的是前一种方法,元件通常以其英文名称或器件代号在库中存放。我们在取一个元件时,首先要清楚它属于哪一大类,然后还要知道它归属哪一子类,这样就缩小了查找范围,然后在子类所列出的元件中逐个查找,根据显示的元件符号、参数来判断是否找到了所需要的元件。双击找到的元件名,该元件便拾取到编辑界面中了。右侧列表中自上而下分别为元件图形和元件封装。具体如图3所示:
图3 分类拾取元件示意图
(2)元件的放置
在原理图编辑区的蓝色方框内,单击鼠标左键即完成元件的释放。具体如图4所示:
图4 元件的放置示意图
(3)电路连线
PROTEUS的连线是非常智能的,它会判断你下一步的操作是否想连线从而自动连线,而不需要选择连线的操作,只需用鼠标左键单击编辑区元件的一个端点拖动到要连接的另外一个元件的端点,先松开左键后再单击鼠标左键,即完成一根连线。如果要删除一根连线,右键双击连线即可。
根据设计完成连线后即可得到完整的电路原理图,具体如图5:
:
图5 连线后的完整电路原理图
五、流程图绘制以及说明
主程序设计说明
主程序主要分为四部分,包括复位电路部分、独立按键的判别部分、单片机控制主程序部分和译码显示部分,模块流程图如图6所示:
结束
返回重新检测按键
将单片机处理的数据进行显示
单片机主控制电路
向单片机申请显示0
计数加1,向单片机申请显示该数值。
Y
是否按键?
开始
N
图6 主程序流程图
实验程序
1.
ORG 0000H
DISP:MOV A,#00H
MOV DPTR,#TAB
MOV R7,#10
LOOP:MOV B,A
MOVC A,***@A+DPTR
MOV P1,A
ACALL DELAY
MOV A,B
INC A
DJNZ R7,LOOP
SJMP DISP
DELAY:MOV R6,#250
L1:DJNZ R6,L1
RET
LOOP1:DJNZ R6,LOOP1
RET
TAB:DB 0C0H 0F9H 0A4H 0B0H