多功能时钟微机原理及应用课程设计.docx

上传人:b****8 文档编号:9813775 上传时间:2023-02-06 格式:DOCX 页数:18 大小:57.56KB
下载 相关 举报
多功能时钟微机原理及应用课程设计.docx_第1页
第1页 / 共18页
多功能时钟微机原理及应用课程设计.docx_第2页
第2页 / 共18页
多功能时钟微机原理及应用课程设计.docx_第3页
第3页 / 共18页
多功能时钟微机原理及应用课程设计.docx_第4页
第4页 / 共18页
多功能时钟微机原理及应用课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

多功能时钟微机原理及应用课程设计.docx

《多功能时钟微机原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《多功能时钟微机原理及应用课程设计.docx(18页珍藏版)》请在冰豆网上搜索。

多功能时钟微机原理及应用课程设计.docx

多功能时钟微机原理及应用课程设计

课程设计

课程名称微机原理及应用课程设计

题目名称多功能时钟

学生学院

专业班级

学号

学生姓名

指导教师

 

2013年1月2日

多功能时钟

一.小组介绍

 

二.任务要求

用8086/8088CPU设计一个多功能时钟。

要求实现:

日常使用时正确显示的是时、分、秒;根据需要,还可以作为秒表使用;还可以显示日期。

 

三.设计方案

整个时钟分为5个模块,主程序模块,时钟模块,数码管模块,键盘模块,秒表模块。

1.主程序模块:

主程序模块为循环键盘扫描和显示模块

2.时钟模块:

时钟新号由8254跟模拟8259A共同提供,8254的clk0接18.432KHZ的时钟源,分频为1HZ的时钟信号,作为8259A的中断(IRQ6)请求(即每秒加1),然后控制时钟的增加

3.数码管模块:

用了动态扫描数码管的方法显示

4.键盘模块用了四个按键:

日期,秒表,计时/暂停,清零

A.日期:

控制日期与其他显示的切换(一般是显示时间的)

B.秒表:

控制秒表与其他显示的切换

C.计时/暂停:

控制秒表的计时/暂停

D.让秒表清零,并暂停

5.秒表模块:

在IRQ6中控制秒表是否计数

 

四、上机操作记录

1.按照电路装置连线,输入源程序且检查无误,编译连接并加载,点击run开始运行

2.一开始数码管显示时间(时分秒)

3.按“日期”按键,数码管显示日期(年月日),再按“日期”按键,退出日期显示,显示回时间

4.A按“秒表”按键,数码管显示秒表(开始的时候记时为0);

B接着按“计时/暂停”按键,秒表开始计时,再按“计时/暂停”按键,秒表暂停计时;

C按“清零”按键,秒表的数值变为0,并暂停记时,再按“计时/暂停”按键,秒表重新从0开始记时;

D按“秒表”按键,数码管退出秒表显示,返回时间显示。

 

五、心得及体会

虽然有一定的基础,且经过近一个学期的汇编实训,对简单系统的设计有一定的经验,但是完成规模相对较大的课程设计仍然会有困难。

任务下发伊始感觉无从下手,不过经过仔细查找阅读相关资料,小组的设计思路慢慢清晰。

设计时我们采用分模块设计的思想,程序的核心是算法的运用,经过大家的思考和不断讨论,终于顺利写出算法,课程设计也突破了最大的难关,直至最后整个程序成功完成。

经过此次课程设计,不仅增强了编程技巧和实验操作技能,对代码的运用更加熟练,也让小组成员对系统设计有了更清晰的认识,强化了合理的设计思想,更重要的是让大家对汇编产生了更强烈的兴趣,我们也已计划查阅相关书籍资料,更加深入地了解使用汇编语言,争取在复杂系统的设计上有所建树。

 

六、系统设计流程图

(见下页)

 

设置IRQ6中断向量

开放IRQ6中断

设置8255工作方式

设置8254工作方式、分频示数

PC4按下

PC5按下

N

显示日期

显示时间

N

PC4是否再次按下

Y

(日期优先)

显示秒表

Y

秒表暂停/计数切换

N

N

Y

N

Y

秒表清零且暂停计数

注:

要进入秒表,需先退出日期显示。

七、程序清单

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

DATA1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATA2DB0DFH,0EFH,0F7H,0FBH,0FDH,0FEH;位选

BUFFER1DB3FH,3FH,3FH,3FH,3FH,3FH;存放时间的数码管段选

BUFFER2DB06H,3FH,06H,3FH,5BH,06H;存放日期的数码管段选

BUFFER3DB3FH,3FH;存放秒表的数码管段选

GETKEYDB00H;00无按键,0FF有按键

XIANRIQIDB00H;00不显,0FF有PC4按下,显示日期

XIANMIAOBIAODB00H;00退出,0FF有PC5按下,显示秒表,并且为秒表计数加1的条件

JISHUDB00;00暂停,0FF有PC6按下开始计数

SECONDDB00H

MINUTEDB00H

HOURDB09H

DATEDB01H

MONTHDB01H

YEARDB12H

BIAODB00H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

CLI

;-------------------------------------------------------设置irq6向量

PUSHDS

MOVAX,0

MOVDS,AX

MOVAX,OFFSETIRQ6

MOVSI,38H

MOV[SI],AX

MOVAX,SEGIRQ6

MOVSI,3AH

MOV[SI],AX

POPDS

;--------------------------------------------------------;开放irq6

INAL,21H

ANDAL,BFH

OUT21H,AL

;---------------------------------------8255端口跟工作方式;AB出,C入

MOVAL,88H

MOVDX,0606H

OUTDX,AL

;--------------------------8254初始化,gate0,方式2,先低后高,二进制

MOVAL,34H

MOVDX,06C6H

OUTDX,AL

MOVAL,00H;输入频率18432十六进制是4800H

MOVDX,06C0H

OUTDX,AL

MOVAL,48H

OUTDX,AL

;-----------------------------------------------------------主程序

STI

A1:

CALLKEYTEST

CMPGETKEY,0FFH

JNZA2

CALLKEYSCAN;扫描按键

A2:

CALLDISP;显示数码管

JMPA1

;---------------------------------------------------IRQ6中断处理程序

IRQ6:

PUSHAX

PUSHCX

CMPJISHU,0FFH

JNZIAA

MOVAL,BIAO

ADDAL,01H

DAA

MOVBIAO,AL

CMPBIAO,99H

JNZIEXIT

MOVBIAO,00H

IAA:

MOVAL,SECOND

ADDAL,01H

DAA

MOVSECOND,AL

CMPSECOND,60H

JNZIEXIT

MOVSECOND,0

MOVAL,MINUTE

ADDAL,01H

DAA

MOVMINUTE,AL

CMPMINUTE,60H

JNZIEXIT

MOVMINUTE,0

MOVAL,HOUR

ADDAL,01H

DAA

MOVHOUR,AL

CMPHOUR,24H

JNZIEXIT

MOVHOUR,0

MOVAL,DATE

ADDAL,01H

DAA

MOVDATE,AL

CMPDATE,30H;假设一个月有30天

JNZIEXIT

MOVDATE,0

MOVAL,MONTH

ADDAL,01H

DAA

MOVMONTH,AL

CMPMONTH,12H

JNZIEXIT

MOVMONTH,0

MOVAL,YEAR

ADDAL,01H

DAA

MOVYEAR,AL

 

IEXIT:

CALLDEAL;

MOVAL,20H;结束中断

OUT20H,AL

POPCX

POPAX

IRET

;------------------------------------------------------------按键检测

KEYTEST:

MOVAL,0FEH

MOVDX,0602H

OUTDX,AL

MOVDX,0604H

INAL,DX

ANDAL,0F0H

CMPAL,0F0H

JZKEYTEST_1

MOVGETKEY,0FFH

KEYTEST_1:

RET

;------------------------------------把时间日期秒表转换成数码管的段选

DEAL:

PUSHSI

PUSHDI

LEASI,SECOND

LEADI,BUFFER1

MOVBX,OFFSETDATA1

MOVCX,07H

DEAL_1:

MOVAL,[SI]

ANDAL,0FH

XLAT

MOV[DI],AL

INCDI

MOVAL,[SI]

PUSHCX

MOVCL,4

SHRAL,CL

XLAT

POPCX

MOV[DI],AL

INCDI

INCSI

LOOPDEAL_1

POPDI

POPSI

RET

;------------------------------------------------------显示子程序

DISP:

PUSHSI

PUSHDI

LEADI,DATA2

CMPXIANRIQI,0FFH

JNZDISP_1

LEASI,BUFFER2;显示日期

MOVCX,06H

JMPDISP_3

DISP_1:

CMPXIANMIAOBIAO,0FFH

JNZDISP_2

LEASI,BUFFER3;显示秒表

MOVCX,02H

JMPDISP_3

DISP_2:

LEASI,BUFFER1;显示时间

MOVCX,06H

DISP_3:

MOVAL,[SI];送段选

MOVDX,0600H

OUTDX,AL

MOVAL,[DI];送位选

MOVDX,0602H

OUTDX,AL

CALLTIME

INCSI

INCDI

LOOPDISP_3

POPDI

POPSI

RET

;------------------------------------------------查看按下的是哪个键

KEYSCAN:

CALLTIME;去抖动

MOVGETKEY,00H

CALLKEYTEST

CMPGETKEY,0FFH

JZKEYSCAN_1

JMPEXIT1

KEYSCAN_1:

TESTAL,10H

JNZNEXT_1

CALLKEYRIQI

JMPEXIT

NEXT_1:

TESTAL,20H

JNZNEXT_2

CALLKEYMIAOBIAO

JMPEXIT

NEXT_2:

TESTAL,40H

JNZNEXT_3

CALLKEYJISHU

JMPEXIT

 

NEXT_3:

CALLKEYCLEAR

EXIT:

MOVAL,0FEH;按键释放检测

MOVDX,0602H

OUTDX,AL

MOVDX,0604H

INAL,DX

ANDAL,0F0H

CMPAL,0F0H

JNZEXIT

EXIT1:

MOVGETKEY,00H

RET

;----------------------------------------------------KEYRIQI子程序

KEYRIQI:

CMPXIANRIQI,0FFH

JNZKEYRIQI_1

MOVXIANRIQI,00H

JMPKEYRIQI_2

KEYRIQI_1:

MOVXIANRIQI,0FFH

KEYRIQI_2:

RET

;--------------------------------------------------KEYMIAOBIAO子程序

KEYMIAOBIAO:

CMPXIANMIAOBIAO,0FFH

JNZKEYMIAOBIAO_1

MOVXIANMIAOBIAO,00H

JMPKEYMIAOBIAO_2

KEYMIAOBIAO_1:

MOVXIANMIAOBIAO,0FFH

KEYMIAOBIAO_2:

RET

;-----------------------------------------------------KEYJISHU子程序

KEYJISHU:

CMPXIANMIAOBIAO,0FFH

JNZKEYJISHU_2

CMPJISHU,0FFH

JNZKEYJISHU_1

MOVJISHU,00H

JMPKEYJISHU_2

KEYJISHU_1:

MOVJISHU,0FFH

KEYJISHU_2:

RET

;-----------------------------------------------------KEYCLEAR子程序

KEYCLEAR:

CMPXIANMIAOBIAO,0FFH

JNZKEYCLEAR_1

MOVBIAO,00H

MOVJISHU,00H

KEYCLEAR_1:

RET

;----------------------------------------------------------延时子程序

TIME:

PUSHAX

PUSHCX

MOVCX,0002H

TIME1:

MOVAX,0021H

TIME2:

DECAX

JNZTIME2

LOOPTIME1

POPCX

POPAX

RET

CODEENDS

ENDSTART

 

八、电路装置连接图

(见附页)

 

 

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

当前位置:首页 > 高等教育 > 经济学

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

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