基于单片机的简易电子表的设计.docx

上传人:b****4 文档编号:3510493 上传时间:2022-11-23 格式:DOCX 页数:21 大小:208.35KB
下载 相关 举报
基于单片机的简易电子表的设计.docx_第1页
第1页 / 共21页
基于单片机的简易电子表的设计.docx_第2页
第2页 / 共21页
基于单片机的简易电子表的设计.docx_第3页
第3页 / 共21页
基于单片机的简易电子表的设计.docx_第4页
第4页 / 共21页
基于单片机的简易电子表的设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于单片机的简易电子表的设计.docx

《基于单片机的简易电子表的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的简易电子表的设计.docx(21页珍藏版)》请在冰豆网上搜索。

基于单片机的简易电子表的设计.docx

基于单片机的简易电子表的设计

滁州学院

学年设计报告

 

设计题目:

基于单片机的简易电子表的设计

系别:

计算机科学与技术

专业:

计算机科学与技术

组别:

起止日期:

年月日~年月日

指导教师:

姚光顺

 

计算机科学与技术系二○○九年制

学年设计题目

基于单片机的简易电子表的设计

组长

翟振华

学号

5061251040

班级

06计科一班

系别

计算机

专业

计算机科学与技术

组员

翟振华,张林

指导教师

姚光顺

学年设计目的

初步掌握基于单片机的编程的基本实现方法和思路,更进一步的熟悉嵌入式的开发原理。

学年设计所需环境

学年设计任务要求

学年设计工作进度计划

序号

起止日期

工作内容

分工情况

教研室审核意见:

 

教研室主任签字:

年月日

学年设计任务书

 

1引言…………………………………………………………………………1

2需求分析…………………………………………………………………………2

2.1二维平面……………………………………………………………………3

3概要设计…………………………………………………………………………4

3.1红黑树……………………………………………………………………5

4详细设计…………………………………………………………………………6

4.1部分代码……………………………………………………………………7

5调试与操作说明…………………………………………………………………8

5.1使用说明……………………………………………………………………9

6学年设计总结与体会……………………………………………………………10

6.1总结…………………………………………………………………………11

6.2体会…………………………………………………………………………11

致谢…………………………………………………………………………………12

[参考文献]………………………………………………………………………13

学年设计的主要内容

⒈目录

目录是将报告书内的章节标题依次排列。

⒉需求分析

主要内容包括本学年设计题目、学年设计任务及要求、学年设计思想、软硬件运行环境及开发工具。

⒊概要设计

主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、完成本学年设计所用方法及其原理的简要说明。

⒋详细设计

主要是本课题所需要的硬件设计与软件设计,包含建立设计所需的数学模型并列出必要的计算公式、计算过程及说明,硬件电路的设计与实现,写出设计计算结果;绘出计算机程序框图,写出自编的程序。

⒌调试与操作说明

系统调试分析与操作使用说明。

⒍学年设计总结与体会

主要对本课题开发过程进行归纳和总结,本课题在设计过程中所遇到的技术难点及解决方法。

还应包括本课题尚存在的问题,以及进一步开发的见解与建议。

并写出通过本次学年设计的收获和体会。

⒎致谢

以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意。

⒏参考文献

为了反映论文的科学依据和作者尊重他人研究成果的严肃态度以及向读者提供有关信息的出处,应列出本学年设计所涉及的主要参考文献。

⒐附录

有些材料编入文章主体会有损于编排的条理性和逻辑性,或有碍于文章结构的紧凑和突出主题思想等,可将这些材料作为附录编排于全文的末尾。

 

一.设计要求

1.P1.3接地,设置p1.3行上从左到右4个键依次为:

切换键,校正键,加1键,确定键。

2.切换键的功能:

每按一次切换键显示“月份日期”、“时分”、“分秒”。

如由“12.05”到“14.35”到“34.23"或相反,表示由12月5日切换到“14点35分”再切换到“34分23秒”或相反。

3.校正键的功能:

第1次按下,校月,月份闪烁,通过加1键校正月份。

第2次按下,校日,日期闪烁,通过加1键校正日期。

第3次按下,校时,小时闪烁,通过加1键校正小时数。

第4次按下,校分,分钟闪烁,通过加1键校正分钟数。

第5次按下,校秒,秒钟闪烁,通过加1键校正秒钟数。

4.加1键的功能:

闪烁的内容不进位加1。

校月时,月份显示为1~12,校日时,日期显示为1~31,校时时,小时显示为0~23,校分时,分钟显示为0~59,校秒时,秒显示为0~59。

5.确定键的功能:

校正的内容生效,返回正常显示,在切换状态按下确定键,返回正常显示。

6.开机后从某一特定的时间开始显示,用第2个数码管的小数点以1秒的周期闪烁,切换到日期显示时该小数点不闪烁,其他3个数码管的小数点不亮。

7.按切换键时,始终任然走时。

8.按校正键时,时钟继续走时,按确定键后按新设定的时间继续走时。

二.设计内容

1.编写程序,完成上面要求,利用定时器中断和静态显示,实现电子钟走时和校时。

2.时间或日期显示用四个数码管分别显示时、分(分、秒)或月、天。

显示格式如下:

1

2

2

7

月日

1

1

4

8

时分

4

5

4

5

分秒

三.资源分配

40H存月,41H存天,42H存时,43H存分,44H存秒,30H、31H缓显区。

用YUE、TIAN、HOU、MIN、SEC、HHOU、HMIN,分别代替40H、41H、42H、43H、44H、30H、31H。

2FH.0校准状态指针,50H存等键释放处键值,51H存40H按加键时作需加1的地址指针,20H校准对象指针,21H中断次数指针,22H切换指针。

P1.4校正键,P1.5切换键,P1.6加键,P1.7确定键。

编程原理与思路

电子时钟的走时通过中断记时,中断时间到1S时,秒加1,到60S,秒重新记时分加1,分到60,分清0时加1,时到24,时清0天加1,天到31,天清0月加1,月到13,月置1。

有按键则进行按键处理,需显示的数送缓显区调用显示子程序,中断返回,等待下次中断。

键的判断放到中断里面处理,人正常按一次键所需时间在100ms左右,中断时间为1/16S,在中断里面判键肯定不会漏键,判键的前提要等键释放,无键或没放键不执行判键程序。

正常的等键释放如:

JNBP1.4$。

在中断里面这中方法行不通,如果你按键时间超过1/16S,当下次中断来临时,程序还在等键处(中断里面),无法执行中断。

此处等键释放用以下几条指令实现MOVA,P1;CJNEA,50H,NEXT0;NEXT0:

MOV50H,A(50H存上次的键码,取P1口,与上次的键码比较,相等则表示没按键或没放键,不相等则有新的按键,并把这次键码存下已便与下次的键码比较)。

校正状态做总线,在此基础上分别判断各按键,2FH.0做校正状态标志,第一次按下校正键,建立校正标志,20H做校正对象指针,20H置0。

校正状态时,每按一次校正键,20H加1,当20H等于5时清0。

校正时数码管闪烁,把前两个数码管看成高位,后两数码管看成低位。

当校月或时时,高位闪烁,校日、分或秒时,低位闪烁,用20H.0、20H.1判断是哪个位闪烁,如:

(20H.0)等与1,表示校正对象是日或分即低位闪烁,20H.2单独用来判断秒的闪烁。

加键只在校正状态下起作用,非校正状态下按此键无效。

每按一次加键,对应的值加1。

50H存月的地址,50H加20H的内容为要加1的地址,如:

校时是,按加键,时需加1,即((50H)+(20H))加1,(50H)+(20H)存放的值等于时的地址。

校正时,无进位加1,每按一次加键后,对应的数值加1,当数值加到最大时,则清0,但不进位。

切换键只在非校正状态下起作用,校正状态下按此键无效。

22H作切换指针,第一次按下切换键,显示日期,22H置1,每按一次切换键,22H加1,当22H等于3时清0,用22H的低3位判断显示“日期”、“时和分”或“分和秒”。

正常显示下20H置0即显示“分和秒”。

确定键按下,初始化各指针即可。

显示子程序里面有校正位闪烁和秒点闪烁(由于秒已显示出来,故秒点闪烁不再处理)。

数码管是共阳极的,当送#0FF时,数码管灭。

当在校正状态时,确定闪的位置方法与校正位置判断同理,不闪的数码管正常送数,取反F0,当F0等与1时,缓显地址里面的数,当F0等0时,送#0FFH。

四.数据流程图如下:

主函数流程图

 

 

中断程序流程图

 

N

N

Y

 

NY

(A)

YNY

 

N(A)

YN

YYY

NYN

Y

N

Y

N

Y

 

N

 

显示子程序

 

 

Y

NN

Y

NYY

 

Y

N

 

 

加键子程序

 

Y

YYYYY

NN

 

YYYYY

 

记时子程序

 

N

Y

 

N

Y

 

N

Y

 

N

Y

 

N

Y

 

仿真图运行与调试

五.设计的源程序

电子表程序

YUEEQU40H;月

TIANEQU41H;天

HOUEQU42H;时

MINEQU43H;分

SECEQU44H;秒

HHOUEQU30H;时间缓冲区

HMINEQU31H

ORG0000

LJMPMAIN

ORG000BH

LJMPTT0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;主程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0030H

MAIN:

MOVSP,#65H

MOV2FH,#00;校准状态指针

MOV21H,#00;做中断次数指针

MOV50H,#0FFH;处理等键释放

MOV51H,#40H;按加键时,存放要加1的单元

MOV20H,#00;做校准指对象指针

MOV22H,#00;做切换键指针

MOVSCON,#00

MOVTMOD,#01

MOVTL0,#0EEH

MOVTH0,#85H

MOVHOU,#12H

MOVMIN,#25H

MOVSEC,#00

MOVHHOU,#00H;时间缓冲区设初值

MOVHMIN,#00H;时间缓冲区设初值

MOVYUE,#03H

MOVTIAN,#09

SETBET0

SETBTR0

SETBEA

SJMP$

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;时间显示

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

XTIME:

MOVDPTR,#TAB

CLRTI

JNB2FH.0,KK3;判断是否为校正状态

CPLF0

JB20H.0,KK3;判断校正的对象

JB20H.2,KK3

JBF0,KK3

LCALLKK6

LJMPKK2

KK3:

MOVA,HHOU

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVSBUF,A

LCALLKK7

MOVA,HHOU

ANLA,#0FH

MOVCA,@A+DPTR

MOVC,21H.3

;ANLC,20H.0;点的闪烁

MOVACC.0,C

MOVSBUF,A

LCALLKK7

KK2:

JB20H.2,PP7;是高电平则秒闪

JNB20H.0,KK4

PP7:

JBF0,KK4

LCALLKK6

LJMPEXIT

KK4:

MOVA,HMIN

ANLA,#0F0H

SWAPA

MOVCA,@A+DPTR

MOVSBUF,A

LCALLKK7

MOVA,HMIN

ANLA,#0FH

MOVCA,@A+DPTR

MOVSBUF,A

LCALLKK7

LJMPEXIT3

EXIT2:

MOVA,#00

MOVSBUF,A

LCALLKK7

MOVSBUF,A

LCALLKK7

EXIT3:

RET

KK7:

JNBTI,$

CLRTI

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;中断处理(有按键处理)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TT0:

MOVTL0,#0EEH

MOVTH0,#85H

INC21H

MOVA,21H

CJNEA,#10H,NEXT1

MOV21H,#00

LCALLCTIME;调用记时子程序

NEXT1:

MOVA,P1;等键释放

CJNEA,50H,NEXT0

JNB2FH.0,NEXT8

LJMPTOP1

NEXT0:

MOV50H,A

JNB2FH.0,NEXT2;是否校正状态

JBP1.4,NEXT3;P1.4做校正键,看是否按下此键

INC20H

MOVA,20H

CJNEA,#05,TOP1

MOV20H,#00

TOP1:

JB20H.1,PP5;是高电平则显示时间

JB20H.2,PP3;是高电平则显示分和秒

OUT1:

LJMPKK1

NEXT3:

LCALLAKEY;调用是否有加键按下的子程序

JBP1.7,TOP1;是否按下确定键

MOV2FH,#00

MOV20H,#00

LJMPKK1

NEXT2:

JBP1.5,NEXT4;P1.5做切换键,看是否按下此键

INC22H

MOVA,22H

CJNEA,#03,NEXT8

MOV22H,#00;重新循环

CLRA

LJMPPP3

NEXT4:

JBP1.4,PP9;判断校正键是否已按下

SETB2FH.0;建立校正标记

MOV20H,#00;校正指针置0

LJMPKK1

PP9:

JBP1.7,TOP1;判断是否按下确定键

MOV22H,#00

NEXT8:

MOVA,22H

CJNEA,#01,NEXT5;是,则显示日期

KK1:

MOVHHOU,YUE

MOVHMIN,TIAN

SJMPXIAN

NEXT5:

CJNEA,#02,PP3

PP5:

MOVHHOU,HOU

MOVHMIN,MIN

SJMPXIAN

PP3:

;CJNEA,#00,EXIT;;相等显示分和秒

MOVHHOU,MIN

MOVHMIN,SEC

XIAN:

LCALLXTIME;调用显示子程序

EXIT:

RETI

KEY:

JBP1.6,LP0

MOVA,20H

ADDA,51H

MOVR0,A

MOVA,#01

ADDA,@R0

DAA

MOV@R0,A

CJNER0,#YUE,LP1;是否是月加1

CJNEA,#13H,LP0

MOVYUE,#01

LP1:

CJNER0,#TIAN,LP3;是否是天加1

CJNEA,#32H,LP0

MOVTIAN,#01

LP3:

CJNER0,#HOU,LP4

CJNEA,#24H,LP0

MOVHOU,#00

LP4:

CJNER0,#MIN,LP5

CJNEA,#60H,LP0

MOVMIN,#00

LP5:

CJNER0,#SEC,LP0

CJNEA,#60H,LP0

MOVSEC,#00

LP0:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;记时程序段

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CTIME:

MOVA,#01

ADDA,SEC

DAA

MOVSEC,A

CJNEA,#60H,LP7

MOVSEC,#00

MOVA,#01

ADDA,MIN

DAA

MOVMIN,A

CJNEA,#60H,LP7

MOVMIN,#00

MOVA,#01

ADDA,HOU

DAA

MOVHOU,A

CJNEA,#24H,LP7

MOVHOU,#00

MOVA,#01

ADDA,TIAN

DAA

MOVTIAN,A

CJNEA,#32H,LP7

MOVTIAN,#01

MOVA,#01

ADDA,YUE

DAA

MOVYUE,A

CJNEA,#13H,LP7

MOVYUE,#01

LP7:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;闪烁子程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KK6:

MOVA,#00

MOVSBUF,A

LCALLKK7

MOVC,21H.3

;ANLC,20H.0;点的闪烁

MOVACC.0,C

MOVSBUF,A

LCALLKK7

RET

TAB:

DB0FCH,60H,0DAH,0F2H,066H,0B6H,0BEH,0E0H,0FFH,0E6H

END

结束语

本文讨论了如何利用嵌入式技术来开发单片机电子表系统,基本满足了结构化,实时性,界面化,安全性,灵活性及稳定性等特点。

指导教师评语:

 

指导教师签名:

年月日

成绩

教研室审核意见:

 

教研室主任签字:

年月日

(此为最后一页)

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

当前位置:首页 > 表格模板 > 合同协议

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

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