数字电子秒表设计101210.docx
《数字电子秒表设计101210.docx》由会员分享,可在线阅读,更多相关《数字电子秒表设计101210.docx(22页珍藏版)》请在冰点文库上搜索。
数字电子秒表设计101210
实训设计任务书
专业年级班
一、设计题目
数字电子秒表设计
二、主要内容
利用独立式按键AN1(P0.0)启动定时器T0计时,AN2(P0.1)停止用于停止定时器T0计时,使用6个八段数码管输出记时值,秒钟的计时时间范围在0~99秒内。
三、具体要求
1、实验电路连线
①本实验中要把跳线JP1(板子右上角,LED灯正上方)跳到DIG上,J23(在黄色继电器右上方)接到右端;把跳线J9(紧贴51插座右方,蜂鸣器下方,RST复位键上方)跳到右端;把跳线J6跳到AN端,AN1(P0.0)~AN4(P0.4),(J6在51插座右下方,4×4键盘左上方)。
2、实验说明
①本实验中要将记时结果送6个数码管中显示,这可通过调用编写的显示子程序来实现,实现过程是:
先将记时值一位一位的拆开,分别送到显示缓冲区(片内数据存储30H~35H设定为显示缓冲区用于存放段码数据,其中32H~35H里面均存放0的段码0DFH)中去,然后调用显示子程序。
②与定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
本实验中用定时器T0产生1秒钟基本时间单位,本系统fosc=11.0592MHz,当定时器T0工作在方式1(16位)时,最大定时时间为:
216*0.9216μs=60397.9776μs
再利用软件记数,当T0中断17次时,所用时间为
60397.9776*17=1026765.6192μs≈1s
因此在T0中断处理程序中,要判断中断次数是否到17次,若不到17次,则只使中断次数加1,然后返回,若到了17次,则使电子秒表记时值加1(十进制),请参考硬件实验四有关内容。
③使用独立式按键AN1(P0.0)~AN2(P0.1)时要注意采用软件消抖动的方法,一般采用软件延时(10ms)的方法,即通过P0.0和P0.1的输入值的变化控制秒表的启动和停止。
3、实验仪器和设备:
PC机、WAVE软件、51超级板等。
4、参考程序框图
A显示子程序框图
否
AN2按下AN1按下是
均未按下
B主程序框图CT0中断服务程序框图
5、参考资料见附件
四、进度安排
第1~2天:
模块1,阅读任务书,查找资料,制定设计方案;
第3~5天:
模块2,根据设计方案,绘制电路图;
第6~8天:
模块3,编写程序,实现控制方案;
第9~10天:
模块4,完成系统软硬件仿真调试,实现设计要求,完成实训报告。
实训设计题目
目录
一、设计任务分析…………………………………………………………………1
二、**************************总体方案的设计……………………………1
2.1********硬件电路的设计及原理……………………………………1
2.1.1****************单片机最小系统的工作原理…………………X
2.1.2****************按键的工作原理………………………………X
2.1.3****************数码管的工作原理……………………………X
……
2.2***************软件程序设计……………………………………X
2.2.1****************主程序…………………………………………X
2.1.2****************定时器TX中断服务程序………………………X
……
三、编写程序需要注意的问题……………………………………………………X
四、总结……………………………………………………………………………X
注意:
一级标题:
四号宋体加粗左对齐
二级及以下标题:
小四号宋体加粗,缩进2个字
实训设计题目
一、设计任务分析
本课题主要的目的是为了*****************************************。
二、************************总体方案的设计
2.1*******************设计
附件:
第一章伟福开发环境简介
双击桌面上的WAVE图标或从开始/程序/WAVEFORWINDOWS/WAVE进入本开发环境,其界面及主要功能如图2-1中所注。
图2-1WAVE界面
1.仿真器设置窗口
如图2-2所示,在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,并注意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟器”前的选择。
图2-2仿真器设置窗口
2.文件窗口
如图2-3,可在此窗口下进行包括新建、打开、保存等文件操作。
图2-3文件窗口
3.编译文件窗口
如图2-4,在此窗口下可将源文件编译成目标文件。
图2-4编译文件窗口
4.执行窗口
如图2-5,在此窗口下,可用全速、跟踪、断点等各种方式运行程序
图2-5执行窗口
5.窗口窗口
如图2-6-1,在此窗口下,可以观察各种窗口信息,其中最常用到的是CPU窗口和数据窗口。
图2-6-1窗口
a.CPU窗口
通过CPU窗口可以看到你编译正确的机器码及反汇编程序,可以让你更清楚地了解程序执行过程。
CPU窗口中还有SFR窗口和位窗口,让你了解程序执行过程中寄存器内容的变化。
图2-6-2CPU窗口
b.数据窗口
对51系列CPU,数据窗口有:
DATA内部数据窗口;CODE程序数据窗口;
XDATA外部数据窗口;PDATA外部数据窗口(页方式)
图2-6-3数据窗口
图2-6-4DATA(内部数据窗口)
图2-6-5CODE(程序数据窗口)
图2-6-6XDATA(外部数据窗口)
5151超级板
数码管显示实验
一、实验目的
1.学习八段数码管的工作原理。
2.学习八段数码管的使用和查表编程方法。
二、实验内容
利用共阴极的八段数码管在6个数码管上同时轮流输出显示1~6。
三、实验电路连线
本实验板中的共阴极数码管的段码a、b、c、d、e、f、g、dp分别与单片机的P2.0~P2.7依次相连,控制数码管中显示的字型;6个数码管的位选通信号由6个非门控制,分别接到单片机的P1.0~P1.5端口上。
程序中通过P1.0~P1.5输出高低电平控制数码管的显示和关闭,高电平时对应数码管显示,显示内容由P2.0~P2.7输出的段码控制。
四、实验说明
1、
本实验中要把跳线JP1(板子右上角,LED灯正上方)跳到DIG上,J23(在黄色继电器右上方)接到右端。
五、实验仪器和设备
PC机、WAVE软件、51超级板等。
六、参考程序框图
;*************************************************************
;*Description:
*
;*LED数码管显示演示程序*
;*在8个LED数码管上依次显示1,2,3,4,5,6*
;**
;*************************************************************
;===========================================================
ORG00000H;Reset向量
LJMPMAIN
;===========================================================
MAIN:
MOVSP,#60H;初始化堆栈指针
MOVP1,#00H;初始化I/O口
MOVP2,#0FFH
MAIN_LP:
LCALLDISPLAY
MOVDPTR,#DIS_CODE;设定显示初值
MOVA,#1
MOVCA,@A+DPTR
MOV30H,A
MOVA,#2
MOVCA,@A+DPTR
MOV31H,A
MOVA,#3
MOVCA,@A+DPTR
MOV32H,A
MOVA,#4
MOVCA,@A+DPTR
MOV33H,A
MOVA,#5
MOVCA,@A+DPTR
MOV34H,A
MOVA,#6
MOVCA,@A+DPTR
MOV35H,A
LCALLDISPLAY
SJMPMAIN_LP
;ENDOFmain
;===========================================================
DISPLAY:
PUSHACC
MOVP1,#00H;先关闭所有数码管
MOVA,#01H
MOVP1,A
MOVP2,30H
LCALLDELAY1
MOVA,#02H
MOVP1,A
MOVP2,31H
LCALLDELAY1
MOVA,#04H
MOVP1,A
MOVP2,32H
LCALLDELAY1
MOVA,#08H
MOVP1,A
MOVP2,33H
ACALLDELAY1
MOVA,#10H
MOVP1,A
MOVP2,34H
ACALLDELAY1
MOVA,#20H
MOVP1,A
MOVP2,35H
ACALLDELAY1
POPACC
RET
;ENDOFtimer0
;===========================================================
DELAY1:
MOVR5,#4
D3:
MOVR6,#123
NOP
DJNZR6,$
DJNZR5,D3
RET
DIS_CODE:
DB0DFH;0
DB086H;1
DB0BBH;2
DB0AFH;3
DB0E6H;4
DB0EDH;5
DB0FDH;6
DB087H;7
DB0FFH;8
DB0EFH;9
DB0F7H;A
DB0FCH;B
DB0D9H;C
DB0BEH;D
DB0F9H;E
DB0F1H;F
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;单片机学习板005----------------------------按键扫描实验;;;;;;;;
;;;;;;;;;;;;;
;;;本程序为按键演示程序,按下AN1,数码管显示循环加一,按下AN2;;;;
;;;数码管显示循环减一。
AN1---p0.0,AN2---p0.1;;;;
;;;程序运行期间可能按键出现失灵现象,长按一会就可实现其功能;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG0000H
AJMPSTART
ORG0030H
START:
JNBP0.0,ADD1
JNBP0.1,SUB1
AJMPSTART
ADD1:
MOVA,#00H
MOVR0,A
MOVDPTR,#ZIXINGMA
LOOP:
JNBP0.0,ADD1
JNBP0.1,SUB1
MOVA,R0
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY
CJNEA,#00,NEXT
AJMPADD1
NEXT:
INCR0
AJMPLOOP
SUB1:
MOVA,#00H
MOVR1,A
MOVDPTR,#ZIXINGMA1
LOOP1:
JNBP0.0,ADD1
JNBP0.1,SUB1
MOVA,R1
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY
CJNEA,#00,NEXT1
AJMPSUB1
NEXT1:
INCR1
AJMPLOOP1
DELAY:
MOVR4,#10
D2:
MOVR5,#250
D3:
MOVR6,#250
NOP
DJNZR6,$
DJNZR5,D3
DJNZR4,D2
RET
ZIXINGMA:
DB0DFH;0
DB086H;1
DB0BBH;2
DB0AFH;3
DB0E6H;4
DB0EDH;5
DB0FDH;6
DB087H;7
DB0FFH;8
DB0EFH;9
DB0F7H;A
DB0FCH;B
DB0D9H;C
DB0BEH;D
DB0F9H;E
DB0F1H;F
DB00H
ZIXINGMA1:
DB0F1H;F
DB0F9H;E
DB0BEH;D
DB0D9H;C
DB0FCH;B
DB0F7H;A
DB0EFH;9
DB0FFH;8
DB087H;7
DB0FDH;6
DB0EDH;5
DB0E6H;4
DB0AFH;3
DB0BBH;2
DB086H;1
DB0DFH;0
DB00H
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;单片机学习板011----------------------------定时器计数器实验;;;;;;;;
;;;;;;;;;;;;;
;;;;广告灯左移计时中断
;;;;;
ORG00H
JMPSTART
ORG0BH
JMPTIM0
START:
MOVTMOD,#00H
MOVTH0,#0F0H
MOVTL0,#0CH
SETBEA
SETBTR0
SETBET0
MOVR5,#100
MOVA,#0FEH
MOVP2,A
LJMP$
TIM0:
;中断服务程序
CLRTR0
MOVTH0,#05H
MOVTL0,#01H
SETBTR0
DJNZR5,LOOP
MOVR5,#100
RLA
MOVP2,A
LOOP:
RETI
END