课 程 设 计
课程名称 微机课程设计
题目名称__ 计时器
学生学院___ 自动化学院_______
专业班级_ 14级自动化班 _
学 号
学生姓名___ _
指导教师____ 林丽纯 _
2016 年 12月 21日
目录
TOC \o "1-3" \h \z \u 一、课程设计目的 1
二、课程设计内容 1
三、系统设计说明 2
四、系统原理图 3
五、程序设计部分 3
六、参考文献13
一、课程设计目的
1.巩固和加深对微机原理和应用课程内容的理解,提高应用水平
2.掌握汇编语言程序的编程方法
3.熟悉键盘控制和七段数字管的使用
二、课程设计内容
计算机编程课程设计内容:
1、编程 8.A、9、F共4个数经XLAT查表后,在四位七段数管LED上显示;
编程在显示器上显示相应的关键值,要求显示值左移;
3.编程实现:
定义键盘按钮,7个是数字键0、1、2、3、4、5、6,1个功能键:设置SET;
显示器上的四位显示为时(两位)、分(两位)、秒(用发光二极管显示);
按键盘SET,时间可以设置和修改。
三、系统设计说明
本课程的目的是使用可编程并行输入/输出接口芯片8255A以及七段数字管实现计时器的设计。
8255A连接键盘,键盘扫描按钮可以设置计时器的时间,根据任务安排定义键盘按钮7为0、1、2、3、4、5、6、1功能键:设置SET。
设计理念:根据系统系统原理图接线。
(1)计时器利用延迟程序的调用进行计时,每次查询TABLE表中的下一个数字显示在数字管中,进入延迟程序后查询下一个数字,即完成计时功能。
(2)在计时状态下,只能扫描键盘按下SET进入数字键盘扫描,即时间设置。按下SET功能键后,扫描键盘数字键,然后显示SET键再次按下后,进入判断:此时数码管前两位是否小于24?后两个小于59吗?如果都小于,开始计时,否则继续扫描键盘数字键,当SET再次按键时做出新的判断。
四、系统原理图
五、程序设计部分
1.程序一
1.1题目:
编程 8.A、9、F共4个数经XLAT查表后,在四位七段数管LED上显示;
1.2流程图:
1.3源程序:
STACKSEGMENT STACK
DW 32 DUP(?)
STACKENDS
DATASEGMENT
TABLEDB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH
DB 0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
VA1DB 0FEH,0FDH,0FBH,0F7H ;对应亮的数码管
VA2DB 0FH,0DH,0BH,09H ;将要显示的98AF七段码建成一张表
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,0646H
MOV AL,80H
OUT DX,AL ;8255初始化
A1:MOV SI,OFFSET VA1
MOV DI,OFFSET VA2
MOV BX,OFFSET TABLE
MOV CX,0004H;显示4位,CX赋予0004H
A2:MOV DX,0642H
MOV AL,[SI]
OUT DX,AL ;控制亮数码管
MOV DX,0644H
MOV AL,[DI]
XLAT ; 查表TABLE获取要显示的数据
OUT DX,AL
INC SI
INC DI
CALLY DALLY
LOOP A2
JMP A1
DALLY:PUSH CX ;延时子程序
MOV CX,0001H
A3:MOV AX,0FFFH
A4:DEC AX
JNZ A4
LOOP A3
POP CX
RET
CODEENDS
END START
2.程序三
2.1题目:
编程实现:实现:
定义键盘按钮,7个是数字键0、1、2、3、5、8、9,1个功能键:设置SET;;
显示器上的四位显示器是