单片机实验一一Word格式文档下载.docx

上传人:b****6 文档编号:19643742 上传时间:2023-01-08 格式:DOCX 页数:11 大小:46.20KB
下载 相关 举报
单片机实验一一Word格式文档下载.docx_第1页
第1页 / 共11页
单片机实验一一Word格式文档下载.docx_第2页
第2页 / 共11页
单片机实验一一Word格式文档下载.docx_第3页
第3页 / 共11页
单片机实验一一Word格式文档下载.docx_第4页
第4页 / 共11页
单片机实验一一Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机实验一一Word格式文档下载.docx

《单片机实验一一Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实验一一Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

单片机实验一一Word格式文档下载.docx

其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;

“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

八、原理图

十、实验程序

******************************************************************

;

设计选题:

实验五-----秒表系统设计

描述:

2位LED数码显示"

秒表"

显示时间为00~99秒,每秒自动加1,

一个"

开始"

键,一个"

复位"

暂停"

键,一个“快加”键。

调用子程序:

暂停键子程序,计时键子程序,清0键子程序,加一子程序

显示子程序,定时子程序

所用特殊寄存器:

寄存器A,寄存器C

所用中断:

外部中断INT0、INT1,定时器T0、T1

实验作者:

吴呤--2号,方晓瑛--10号

***************************************************************************

org0000h

ajmpmain 

;

主程序入口地址

org0003h

ajmpzhongduan0 

中断0入口地址

org000bh

ajmpyanshi 

定时器T0入口地址

org0013h

ajmpzhongduan1 

中断1入口地址

org001bh

ajmpdingshi1 

定时器T1入口地址

org0030h

***********************************************************

主程序

main:

movtcon,#05h 

主程序开始外部中断跳变模式

movtmod,#11h 

定时器0,1模式1

movie,#8fh 

开总中断,中断0,1,定时器0,1

movdptr,#tab

movr1,#00h

movr2,#00h

movr3,#40 

循环次数40

movtl0,#2Ch 

置初值,定时25MS

movth0,#0CFh

movtl1,#78h 

置初值,定时10MS

movth1,#0ech

clrtr0 

关定时器

clrtr1

暂停键K3,快加键K4程序

here:

jbp1.0,here

show:

clrtr1

clrtr0

acallxianshi

kuaijia:

jbp1.2,kuaijia 

等待P1.2为0快加

setbtr1

here3:

jnbp1.2,here3

ajmp 

here

外部中断INT0子程序-----计时按键K1子程序

zhongduan0:

setbtr0 

计时按键

reti

外部中断INT1子程序----复位按键K2子程序

zhongduan1:

clrtr0 

复位按键

mov12h,#00h

mov11h,#00h

acallxianshi 

调用显示子程序

加一子程序

jia1:

inc 

r1 

加1子程序

cjner1,#0ah,loop 

判断是否到表尾

mov 

r1,#00h

r2

cjner2,#0ah,loop

r2,#00h

loop:

mov12h,r1 

重新赋值

mov11h,r2

ret

显示子程序

xianshi:

movr7,#02h 

2个数码管显示子程序

movr0,#12h

loop5:

movr6,#08h 

8位2进制数

mova,@r0

movca,@a+dptr

loop6:

rlca 

循环左移

clrp3.1

movp3.0,c

setbp3.1

djnzr6,loop6

decr0

djnzr7,loop5

定时器T0子程序

yanshi:

定时子程序

djnzr3,loop7

acalljia1 

调用加1子程序

movr3,#40

loop7:

定时器T1子程序

dingshi1:

movtl1,#78h 

mov12h,r1

jnbp1.0,show

acalljia1

lop7:

reti

tab:

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

end

十一、课程设计心得体会

1、认真审题,看懂题目的要求!

选择适当的课题,不益太简单或者太难。

做到既能把课题完成又能锻炼自己的能力!

2、根据课题要求,复习相关的知识,查询相关的资料。

3、根据实验条件,找到适合的方案,找到需要的元器件及工具,准备实验。

4、根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。

然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。

5、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。

6、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。

7、该实验的程序可以参考DVCC系列单片机微机仿真实验系统实验指导书中的串并转换实验,也可自己根据自己熟悉的方法来编程。

8、在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。

9、这次的单片机课程设计重点是理论与实际的相结合。

不再只读书了。

10、该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。

此设计完毕!

-------------------------------------------------------

下面提供一个程序(供参考的)

开机初始化

MOVP3,#0FFH;

对P3口初始化,设置为高电平,用于按键输入

MOVP0,#0FFH;

使显示时间数码管熄灭

CLRF0

CLRF1

MOVDPTR,#NUMTAB;

指定查表启始地址

等待按键输入

根据按键的输入判断执行什么功能

按键1按下则执行功能1

MOVP3,#0FFH;

START:

JBP3.6,START1;

循环判断开始按钮K1是否按下?

ACALLDELAY10;

延时10毫秒触点消抖

JBP3.6,START;

如果是干扰就返回

JNBP3.6,$;

等待按键松开

LJMPGN1 

按键2按下则执行功能2

START1:

JBP3.7,START;

循环判断开始按钮K2是否按下?

JBP3.7,START1;

JNBP3.7,$

LJMPGN2

数码管显示秒表时间的程序

GN1:

先初始化

S1:

MOVA,#0

MOVTEMP,A 

GOON1:

MOVR2,#2

JS1:

MOVR3,#250

TIME1:

MOVA,TEMP;

将TEMP中的十六进制数转换成10进制 

MOVB,#10;

10进制/10=10进制

DIVAB

MOVB_BIT,A;

十位在A

MOVA_BIT,B;

个位在B

LCALLDPLOP1

插入一段判断定时过程中是否有按键输入的程序段

C1:

JBP3.6,B1

延时10毫秒消抖

JBP3.6,C1

CPLF0

ZT1:

JBP3.6,$;

JBP3.6,ZT1;

B1:

JBP3.7,LOOP1

ACALLDELAY10;

JBP3.7,B1

JNBP3.7,$;

AJMPOVER

LOOP1:

DJNZR3,TIME1;

2毫秒循环执行250次,时间约0.5秒

DJNZR2,JS1 

循环执行2次,时间为1秒钟

INCTEMP;

满一秒钟对时间加1

MOVA,TEMP

CLRC

SUBBA,#60

JNZGOON1;

判断TEMP的数值是否为60?

不为60循环 

ACALLOVER

RET

GN2:

MOVA,#14H;

设定倒计时的时间20S

MOVTEMP,A

数码管显示倒计时时间的程序

初始化

MOVP0,#14H;

使显示时间为设定的倒计时时间

GOON2:

JS2:

TIME2:

MOVDPTR,#NUMTAB;

DPLOP2:

MOVA,A_BIT;

取个位数

MOVCA,@A+DPTR;

查个位数的7段代码

MOVP0,A;

送出个位的7段代码

CLRP2.5;

开个位显示

ACALL 

DELY1;

显示1毫秒

SETBP2.5;

关闭个位显示,防止鬼影

MOVA,B_BIT;

取十位数

查十位数的7段代码 

送出十位的7段代码 

CLRP2.6;

开十位显示

ACALLDELY1;

SETBP2.6;

关闭十位显示,防止鬼影

C2:

JBP3.6,B2

JBP3.6,C2

ZT2:

JBP3.6,ZT2;

B2:

JBP3.7,LOOP2

LOOP2:

DJNZR3,TIME2;

DJNZR2,JS2 

DECTEMP;

满一秒钟对时间减1

JNZGOON2;

判断TEMP的数值是否为0?

不为0循环 

结束定时

OVER:

AJMPSTART;

退到开机初始化状态

1毫秒延时子程序

DELY1:

MOVR4,#2

D1:

MOVR5,#248

DJNZR5,$

DJNZR4,D1

10毫秒延时子程序

DELAY10:

MOVR4,#20

D2:

DJNZR4,D2

实验板上的两位一体的数码管0~9各数字的显示代码

NUMTAB:

DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H

DPLOP1:

查十位数的7段代码

送出十位的7段代码

END

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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