单片机秒表001sWord文档格式.docx

上传人:b****6 文档编号:19122818 上传时间:2023-01-04 格式:DOCX 页数:23 大小:175.10KB
下载 相关 举报
单片机秒表001sWord文档格式.docx_第1页
第1页 / 共23页
单片机秒表001sWord文档格式.docx_第2页
第2页 / 共23页
单片机秒表001sWord文档格式.docx_第3页
第3页 / 共23页
单片机秒表001sWord文档格式.docx_第4页
第4页 / 共23页
单片机秒表001sWord文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

单片机秒表001sWord文档格式.docx

《单片机秒表001sWord文档格式.docx》由会员分享,可在线阅读,更多相关《单片机秒表001sWord文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

单片机秒表001sWord文档格式.docx

打开电源后,数码管显示000.0,有自动计时和设定计时两种工作模式,通过SW2(P1.4)进行控制,当SW2和SW1打开时,按下启动键(P1.0),系统正计时,当SW1和SW2都闭合时,进行倒计时,倒计时的设定时间P1.1和P1.2的按键进行控制,当减到结束时间后需要计时时间的设定,(即从设定的时间逐渐减到0000后结束),同时数码管闪动显示结束时的时间,同时数码管闪动显示结束时的时间,再次打开P1.5键后会更改为正计时,如此循环。

设定时间及正负计时后,按下启动键(P1.0键),程序开始进行计时,计数器/定时器T0开始计时中断,计时结束后,同时数码管闪动显示结束时的时间同时数码管闪动显示结束时的时间。

在计时结束后按下复位键,程序可以回到主程序最开始,可以再次进行设定计时,如此往复循环。

3.3各部分电路设计

1.单片机最小系统

本系统设计采用AT89C51单片机。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容(由于在微机原理中学过C-51的具体知识,这里不再详细说明)。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。

图3-3AT80C51

2.晶体振荡电路

MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器X1尽可能接近单片机。

图3-4晶振原理图

3.复位电路

采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。

这不仅能使单片机复位,而且还能使

单片机的外围芯片也同时复位。

当程序出现错误时,可以随时使电路复位。

图3-5复位电路图

4.数码管的显示

显示电路既可以选用液晶显示器,也可以选用数码管显示。

我们采用的是数码管显示电路。

用4个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;

动态显示所使用的端口比较少,可以节省单片机的I/O口。

在设计中,我们采用LED动态显示,用P0口驱动显示。

由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。

电路图如下所示:

5.按键扫描电路介绍:

扫描法师在判定有按键按下后逐行逐列的状态出现全非1的状态,这时0状态的行、列焦点的键就是所按下的键位。

确定矩阵式键盘上哪个键位被按下时运用扫描法,进行查询。

判断键盘中有无键位按下,先将全部的焊线Y0~Y3置低电平,然后检测列线的状态。

只要有一列的电平为低电平,则表示键盘中有键位被按下,而且闭合的按键位于低电平线与4根行线交叉的4个按键中,若所有列线均为高电平,则键盘中没有按键按下。

判断闭合键位所在的位置,在确定了有键位按下后,即可进行确定具体闭合键的过程。

其方法是:

一次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低电平,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键.

四、软件设计

4.1设计思路

4.2流程图

开始

设定时间

不是

检测计时是否到时间

是否复位

五、程序设计如下:

LSECEQU80H

SEC1EQU81H

SEC2EQU82H

SEC3EQU83H

SEC4EQU84H

SEC5EQU85H

SEC6EQU86H

SEC7EQU87H

CISHUEQU88H

ORG0000H

AJMPMAIN

ORG0003H

LJMPINT0

ORG000BH

AJMPTIME0

ORG0013H

LJMPINT1

ORG001BH

LJMPTIME1

MAIN:

CLRP1.7

CLRP1.6

CLRP1.5

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#00H

MOVTL1,#00H

CLR00H

CLR01H

CLRTR1

CLR02H

CLR03H

CLR04H

MOVTMOD,#09H

MOVIE,#8FH

SETBIT0

SETBIT1

MOVR0,#80H

MOVR1,#05H

MOVR0,85H

MOV@R0,#0BH

MOVR0,#86H

MOVR0,#87H

ZFUZHI:

MOV@R0,#00H

INCR0

DJNZR1,ZFUZHI

MOVR0,#81H

MOV@R0,#0AH

MOVR7,#00H

MOVR0,#70H

CHUZHI:

DJNZR1,CHUZHI

MOVR4,#00h

S1:

ACALLSAOMIAO

LCALLBIJIAO

ACALLFT

ACALLDISP

JMPS1

KEYSCAN:

JBP1.0,AA

RET

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

SAOMIAO:

CLREA

JB00H,KEYOUT

JNBP1.2,KEYSCAN0

JNBP1.3,KEYSCAN1

KEYOUT:

SETBEA

WAIT0:

JNBP1.2,WAIT0

MOVR0,#60H

MOVA,@R0

INCA

MOV@R0,A

CLRET0

CLRTR0

CJNEA,#05H,KEYOUT

JNB01H,ZHENG

MOVA,#00H

MOV@R0,A

SETBET0

SETBP1.7

SJMPKEYOUT

ZHENG:

MOVR2,#05H

YY:

DJNZR2,YY

SETBEX0

WAIT1:

JNBP1.3,WAIT1

CJNEA,#01H,KSCAN11

MOVR1,#70H

MOV@R1,A

CJNEA,#0AH,KEYOUTMOVA,#00H

KSCAN11:

CJNEA,#02H,KEYSCAN3

MOVR0,#82H

MOVR1,#72H

INCA

CJNEA,#0AH,KEYOUT

KEYO:

KEYSCAN3:

CJNEA,#03H,KEYSCAN4

MOVR0,#83H

MOVR1,#73H

KEYSCAN4:

CJNEA,#04H,KEYO

MOVR0,#84H

MOVR1,#74H

CJNEA,#0AH,KEYO

LJMPKEYOUT

BIJIAO:

JNB01H,ZHBJ

JNB03H,BJFH

CJNEA,#00H,BJFH

ACALLBAOJING

SETBP1.6

JMPBJFH

ZHBJ:

JNB06H,BJFH

CLR06H

CJNEA,70H,BJFH

CJNEA,72H,BJFH

CJNEA,73H,BJFH

CJNEA,74H,BJFH

BAOJING:

SETBTR1

MOVR0,#89H

CJNEA,#01H,AN

MOV@R0,#0CH

DECR0

JMPBAJIFAHU

AN:

BAJIFAHU:

SETBP1.5

FT:

MOVR2,#08H

MOVR1,#90H

MOVDPTR,#TAB

FT1:

MOVCA,@A+DPTR

INCR1

DJNZR2,FT1

TAB:

DB

3FH,06H,5BH,4FH,

66H,6DH,7DH,07H,

7FH,6FH,80H,00H,40H

DISP:

MOVR0,#81H

MOV@R0,#0CH

MOVR0,#90H

MOVR1,#08H

MOVR2,#0FEH

DISP1:

MOVA,R2

MOVP2,A

MOVA,@R0

MOVP0,A

MOVA,R2

ACALLDL1MS

INCR0

RLA

MOVR2,A

DJNZR1,DISP1

MOVP0,#0FFH

MOVP2,#0FFH

INT0:

JNBP1.0,DUAN1

JNBP1.1,DUAN2

DUAN1:

JB00H,TING

SETBTR0

SETB00H

RETI

TING:

CLRTR0

DUAN2:

JB01H,ZHJSHU

SETB01H

SETBP1.5

MOVR0,#80H

MOVR1,#70H

MOVR3,#05H

ZHUANYI1:

MOVA,@R1

MOV@R0,A

INCR1

DJNZR3,ZHUANYI1

JMPOUT1

ZHJSHU:

CLR01H

SETB05H

CLRP1.5

BB:

DJNZR2,BB

OUT1:

RETI

INT1:

XX:

DJNZR1,XX

TIME0:

SETB03H

SETB06H

JB01H,FJI

PUSHACC

PUSHPSW

MOVTH0,#03CH

SETBTR0

MOVR0,#88H

CJNEA,#02H,OUTTO

MOV@R0,#00

CJNEA,#0AH,OUTTO

MOVR0,#82H

MOVA,@R0

INCA

CJNEA,#0AH,OUTTO

MOV@R0,#00

MOVR0,#83H

CJNEA,#0AH,OUTTO

MOVR0,#83H

MOV@R0,#00H

MOVR0,#84H

OUTTO:

SETBET0

POPPSW

POPACC

FJI:

PUSHPSW

CLRET0

MOVTL0,#0B0H

MOVTH0,#03CH

MOVR0,#88H

CJNEA,#02H,OUTTO1

MOV@R0,#00H

DECA

CJNEA,#0FFH,OUTTO1

MOV@R0,#09H

MOVA,@R0

DECA

CJNEA,#0FFH,OUTTO1

MOVR0,#83H

OUTTO1:

POPPSW

POPACC

TIME1:

CJNEA,#02H,ITFH

ITFH:

END

六、设计总结:

经过二个星期的课程设计,过程曲折可谓一语难尽。

在此期间我也失落过,也曾一度热情高涨。

从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

在老师的指导下,我们顺利完成了课程设计。

让我学到了以下几点:

1、将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻。

对程序的编译过程了解透彻。

2、本次课程设计以自己设计为主,因此培养了学习的积极性,让我能够独立去分析问题、发现问题、解决问题,更增强我与老师同学交流沟通和合作完成任务的能力。

3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEUS等的基本知识。

程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。

4、由于水平有限,实验程序运行有一定的限制,以后会加强改进。

总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,虽然程序可能有一定的浪费资源,且较罗嗦,但这需要在实践中慢慢提高,还希望老师能够多多指导,促进我不断的进步。

最后再一次感谢邸老师对我的悉心指导和无私帮助。

七、参考文献:

[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007

[2]夏继强.单片机实验与实践教程[M].北京:

北京航空航天大学出版社,2001

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

当前位置:首页 > 自然科学

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

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