用8051单片机定时计数器和LED数码管显示计时时间

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机最小应用系统设计报告
一设计题目 (3)
二设计目的
2.1设计目的要求 (3)
2.2系统设计意义 (3)
三系统硬件图
3.1系统硬件电路原理图 (4)
3.2各主要芯片及相应组成电路 (5)
四流程图 (8)
五系统说明与分析
5.1设计步骤 (9)
5.2单片机简要介绍 (10)
六源程序 (11)
七总结 (14)
八参考文献 (15)
单片机最小应用系统设计报告
一、设计题目
计时器系统设计
设计说明:用8031单片机定时/计数器和LED数码管显示计时时间。

要求某键按下去开始计时,再按一次停止计时;另一键按下去则将时间清零。

二、设计目的
该单片机最小应用系统设计目的及要求如下:
2.1设计目的要求
1采用单片机为核心器件,构成数字式电子秒表系统。

2用四位一体的数码管分别显示分秒(格式要求为XX.XX)
3通过按键实现人机对话功能:要求某键按下去开始计时,再按一次停止计时;另一键按下去则将时间清零。

4.掌握单片机汇编编程技术中的设计和分析方法;
5.学会使用并熟练掌握电路绘制软件Protel99SE(或DXP);
6.掌握电路图绘制及PCB图布线技巧。

2.2 系统设计意义
1、在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。

2、完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。

3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。

4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。

5、用AT89C51,DAC0832设计出题目所要求的波形实现循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。

6、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。

三、系统硬件图
图1 系统硬件电路原理图
3.1系统的硬件电路原理图
系统的硬件电路图如图1所示,从图中可以看到该电路主要有时钟电路、复位电路显示电路等组成。

电源电路有设备提供,在原理图上不在说明,本文简单介绍电源电路的组成原理。

3.2 各主要芯片及相应组成电路
1)8051单片机:
2) 时钟电路
该电路主要有电容C1、C2和晶振Y1组成。

其组成原理图如图2所示,图中XTAL1为芯片内部振荡电路的输入端,XTAL2为芯片内部振荡电路的输出端。

图2 时钟电路
4)复位电路
单片机通常采用的复位方式有上电复位和按钮复位两种。

本次设计用的复位方式是按钮电平复位。

其原理图如图3所示。

当按下按钮SW时,电容对R6迅速放电,RESET 端变为高电平,RESET松开后,电容通过电阻R6进行充电,RESET端恢复为低电平。

图3 复位电路
绘制的相应PCB硬件电路图如下:
四流程图
绘制主程序流程图如下
子程序流程图:
五、系统说明与分析
5.1设计步骤
1. 理解设计任务要求(通过阅读有关资料及调查研究);
2. 对总体方案进行分析、论证;
3. 系统硬件电路的设计;
4. 系统控制软件的设计;
1) 以功能明确、相互界面能清晰分割的软件程序为基础,确定主程序流程框图;
2) 以主程序流程框图为基础,确定各模块程序算法及实现的功能,进一步确定各模块程序流程框图;
3) 根据软件流程框图,用AT89C51汇编语言编写主程序和延时子程序;
4) 系统软、硬件的调试;
5) 编写课程设计说明书;
6) 答辩验收。

5.2 8051单片机简要介绍
8051单片机包含中央处理器(CPU)、存储器(程序存储器ROM和数据存储器RAM)、定时/计数器、并行I/O接口(P1、P2、P3、P0共4个8位口)、一个双工串行接口和5个中断源等几大单元及数据总线、地址总线和控制总线三大总线等结构组成。

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加
以说明:
MCS-51系列单片机的内部结构示意图如图11所示。

图11 MCS-51系列单片机的内部结构示意图
·Pin20: 接地脚。

·Pin40: 正电源脚,正常工作或对片内EPROM烧入程序时,接+5V电源。

·Pin19: 时钟XTAL1脚,片内振荡电路的输入端。

·Pin18: 时钟XTAL2脚,片内振荡电路的输出端。

8051的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。

另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。

·输入输出(I/O)引脚:
Pin39-Pin32为P0.0-P0.7输入输出脚,Pin1-Pin1为P1.0-P1.7输入输出脚,Pin21-Pin28为P2.0-P2.7输入输出脚,Pin10-Pin17为P3.0-P3.7输入输出脚。

·Pin9: RESET/V pd 复位信号复用脚。

当8051通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC 指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态。

·Pin30: ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,将用于输入编程脉冲。

·Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

·Pin31: EA/V pp 程序存储器的内外部选通线,8051和8751单片机,内置有4kB 的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

显然,对内部无程序存储器的8031,EA端必须接地。

·在对8751的EPROM进行编程时,EA/Vpp 脚还需加上用于编程的电压。

六、源程序
汇编语言源程序编写如下:
ORG 0000H
LJMP START
ORG 000BH;中断服务程序入口
LJMP IT0FUN
;主程序
START: MOV SP,#40H;设置堆栈指针初值
MOV DPTR,#TABLE
MOV R0,#7CH;显示缓冲区清0
CLEAR: MOV @R0,#00H
INC R0
CJNE R0,#80H,CLEAR
MOV TMOD,#01H
;选择定时器0,以工作方式1工作
;设定时器初值,因为选用的晶振为12MHz,则一个机器周期为2uS,即是计时器用方式1工作,;最大也只能达到132ms,所以我们把定时器时间定为100ms,10次计数,就能计时1s,计时;100ms要50000个周期,用2进制表示为1100 0011 0101 0000 ,取其补码为计数器初值
;即0011 1100 1011 0000 为计数器初值 3CB0H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0;TRO置1,允许定时器1开始计时
SETB EA;允许总中断
SETB ET0;允许定时器0中断
MOV 30H,#10;要求的循环次数,本程序为10次
DPY: LCALL DISPLAY;调用显示程序
SJMP DPY
;4位数码管显示子程序数码管显示缓冲区为7CH 7DH 7EH 7FH
DISPLAY:PUSH ACC;保护现场,因为后面要选寄存器
PUSH PSW
SETB RS0;用第二组寄存器
CLR RS1
MOV R4,#11101110B
MOV A,R4
MOV P2,R4
MOV R0,#7CH
LOOP: MOV P2,A
MOV R3,A
MOV A,@R0
MOV A,#06H
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
MOV A,R3
RL A
INC R0
CJNE R0,#80H,LOOP
POP PSW;恢复现场
POP ACC
RET
;中断服务程序
IT0FUN: PUSH ACC;现场保护
PUSH PSW
;用第三组寄存器
SETB RS1
CLR RS0
;计数器重新加载,赋初值
MOV TL0,#0B0H
MOV TH0,#3CH
;循环次数减一
MOV A,30H
DEC A
MOV 30H,A
JNZ RET0;不满10次跳到字程序结束
MOV 30H,#10;满10次开始中断计时服务,并恢复循环次数 MOV R0,#7CH;将数码管缓冲区首地址输入
ACALL ADD1
RET0: POP PSW;恢复现场
POP ACC
RETI
;加一程序
ADD1: INC @R0
CJNE @R0,#10D,RETADD1;判断当前位是否进位了GAO: MOV @R0,#00H
INC R0
INC @R0
MOV A,#6D;判断高位是否也进位了
XRL A,@R0
JZ GAO;如果有进位则跳转
DEC R0
RETADD1:RET
;延时子程序
DELAY: MOV R7,#10D
DEL1: MOV R6,#15D
DEL2: MOV R5,#15D
DEL3: DJNZ R5,DEL3
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
;7短数码管字型码表
TABLE:
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,00H END
七、总结
1、在设计系统过程中,学会用Protel DXP画原理图和PCB图。

通过查阅相关的书籍,
设计了电路原理图,经过仿真和反复的修改电路中元器件的参数得到了可行的电路
图。

2、根据自己设计的PCB图开始电路板的制做,自己亲自动手制作电路板,在制板的过
程中出现了较多问题,如腐蚀不彻底、PCB中焊盘设计过小、信号线的尺寸偏小等问
题,又重新的做了一个电路板。

然后用万用表检测需要元器件的质量,进行元器件
的焊接,整个过程中大大的提高了动手能力。

3、接下来是最关键的步骤——电路板的调试,软硬件相结合,开始将程序烧到硬件电
路中,刚开始工作比较正常,达到了题目的要求,当程序运行几个循环后,发现开
始出现错误。

输出的波形比较紊乱,然后进行故障的排查,检查硬件和软件都没有
问题,再进行一次调试还是不行,通过查阅数模转换芯片的资料,发现问题的所在,自己将片选信号接到地上可能导致一直工作状态,出现程序紊乱的现象。

将片选信
号接到单片机的一个管脚上,通过程序来控制数模转换芯片的工作状态。

经过再一
次的调试,程序运行比较稳定。

运算放大器输出正常的波形。

4、经过学习单片机接口实验这门课,使自己对单片机有了更深入的了解,提高了自己
的动手能力。

很感谢在整个课程学习中老师和师兄们的指导,以及同班同学的热心
帮助。

八、参考文献
[1] 韩志军.单片机最小应用系统设计——入门向导与设计实例.机械工业出版社.
[2] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.
[3] 江太辉.MCS-51系列单片机原理与应用[M].广州:华南理工大学出版社,2002.
[4] 韩雁.单片机原理及应用教程[M].北京:电子工业出版社,2003.
[5] 刘守义.单片机应用技术[M].西安:西安电子科技大学出版社,2002.
[6] 何立民.单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版
社,1999.
[7] 张友德.单片微型机原理、应用与实验.上海:复旦大学出版社,1994.
[8] 房小翠.单片机实用系统设计技术.北京:国防工业出版社,1993.
[9] 张洪润.单片机应用技术教程.北京:清华大学出版社,1997.
[10] 莫力. Protel电路设计.北京:国防工业出版社,2005.。

相关文档
最新文档