微型计算机技术与汇编语言课程设计报告.docx
- 文档编号:17104439
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:31
- 大小:548.73KB
微型计算机技术与汇编语言课程设计报告.docx
《微型计算机技术与汇编语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《微型计算机技术与汇编语言课程设计报告.docx(31页珍藏版)》请在冰点文库上搜索。
微型计算机技术与汇编语言课程设计报告
2017-2018学年第一学期
《微型计算机技术与汇编语言》
课程设计报告
学院:
计算机科学与工程
班级:
150403
姓名:
高阳,卢传馨,刘梅
项目组:
20
指导教师:
王新颖
设计时间:
2017年12月18日-29日
课程设计名称
微型计算机技术与汇编语言课程设计
专业
计算机科学与技术
班级
150403
学生姓名
高阳,卢传馨,刘梅
指导教师
王新颖
2017年12月27日
课程设计任务书
课程设计题目
微型计算机技术与汇编语言课程设计
起止日期
2017年12月18日—2017年12月29日
设计地点
老图3408
设计任务及日程安排:
设计任务:
实验一:
用D/A,A/D实现闭环测试
实验二:
新闻条目定时刷新显示器设计
时间安排
2017.12.18
动员大会,确定题目
2017.12.19-22
查资料,完成实验一的上机题目程序编写,调试,同时上机进行实际测试验收工作
2017.12.23-24
实验二资料查找
2017.12.25-26
完成实验二的电路设计,程序编程设计
2017.12.27
实验二上机编程,调试
2017.12.28
书写实验报告
2017.12.29
答辩
注:
此任务书由指导教师在课程设计前填写,发给学生座位本门课程设计的依据。
一、团队构成及分工
团队:
职能
成员
任务分工
成绩
组长
高阳
电路设计
组员
卢传馨
程序编写
刘梅
资料整理
指导教师签字:
年月日
二、项目进度计划
序号
任务名称
开始时间
完成时间
持续时间
1
确定题目
2017.12.18
2017.12.18
1天
2
实验一的资料收集,初步设计
2017.12.19
2017.12.19
1天
3
实验一上机编程,调试
2017.12.20
2017.12.20
1天
4
细化设计
2017.12.21
2017.12.21
1天
5
上机编程,调试
2017.12.22
2017.12.22
1天
6
收集实验二资料
2017.12.23
2017.12.24
2天
7
电路设计,编程设计
2017.12.25
2017.12.26
2天
8
上机编程,调试
2017.12.27
2017.12.27
1天
9
完成实验报告
2017.12.28
2017.12.28
1天
10
答辩
2017.12.29
2017.12.29
1天
3、
三.实验报告
实验一用D/A、A/D实现闭环测试
一.实验目的
1.加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。
2.熟悉DAC0832数模转换器的特性和接口方法,掌握D/A输出程序的设计和调试方法。
二.实验原理
1、实验原理
本实验采用DAC0832和ADC0809做数模转换和模数转换闭环测试实验,即将数模转换器输出的模拟量作为模数转换器的模拟量输入,并比较D/A设定的数字量与A/D读出的数字量,从而得出实验结论。
由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与8088CPU总线直接接口。
图中是只有一路模拟量输出,且为单极型电压输出。
DAC0832工作于单缓冲方式,它的ILE接+5V,/CS和/XFER相接后作为0832芯片的片选CS-0832。
这样,对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。
进行D/A转换只需如下两条命令:
MOVAL,DATA0 ;DATA0为设定的待要转换的数字量。
OUTDAPORT,AL;DAPORT为DAC0832的端口地址,数字量送端口。
ADC0809是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。
ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。
图中ADC0809的CLK信号接1MHZ,基准电压Vref(+)接Vcc。
一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。
ADC0809的转换结束信号EOC未接,如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。
本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C接系统地址线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H、06H、07H。
启动本A/D转换只需如下两条命令:
MOVAL,DATA ;DATA为通道值。
OUTADPORT,AL;ADPORT为ADC0809端口地址,通道值送端口。
读取A/D转换结果用下面一条指令:
INAL,ADPORT
2、实验软件编程提示
0832芯片输出产生锯齿波,只须由AL中存放数据的增减来控制。
当AL中数据从00逐渐增加到FF产生溢出,再从00增大到FF,不断循环,从而产生连续不断的锯齿波。
与此相对应ADC0809不断地将0832所输出的模拟量进行A/D转换,转换结果会不断地在显示器上显示,模拟量与数字量对应关系的典型值为+5V-FFH,2.5V-80H,0V-00H。
为了便于比较,本实验中显示器的最高位显示“d”,而后显示设定的D/A数字量的十进制值(三位),而后显示“—”,最后显示A/D转换结果的十进制值(三位)。
三.实验线路连接
(1)060H~06FH连接A/D转换器ADC0809的片选信号CS_0809。
(2)A/D转换器ADC0809的通道1输入信号IN1连接D/A转换器DAC0832的输出信号OUT1。
(3)070H~07FH连接D/A转换器DAC0832的片选信号CS_0832。
4.实验记录
线路连接
5.实验结果
4、
设计报告
实验二新闻条目定时刷新显示器设计
一.设计目的
利用8253和LCD1602,实现一个定时刷新新闻的显示器。
2.设计内容:
1.用8253产生周期性的定时中断信号;
2.在内存建立具有5条新闻条目的新闻表(假设每条新闻不多于32个字符),然后等间隔(间隔时间由8253控制)的方式轮流在LCD上显示新闻;
3.按下独立式键后退出。
3.设计方案
(1)设计思路
建立一个新闻条目地址表
BASEDWNEW0,NEW1,NEW2,NEW3,NEW4;定义新闻条目地址
NEW0DB‘NEW0:
WELCOMENanjing!
....’,0;定义新闻条目
NEW1DB‘NEW1:
OlympicGames....’,0
NEW2DB‘NEW2:
HappyNewYear....’,0
NEW3DB‘NEW3:
NanjingUniversity....’,0
NEW4DB‘NEW4:
YangziRiver....’,0
ROWDW0;定义新闻条目地址表指针
CPU响应中断请求时,通过地址表从新闻条目地址表中取出当天的新闻条目地址,送LCD显示,然后修改地址指针指向下一新闻条目。
(2)硬件设计
1)LCD显示
2)8086CPU,8253,8255,74HC245,74LS373
3)三个输入,输出
(3)软件设计
1)中断服务程序
2)发送数据子程序
四.实施方案
(1)硬件系统实现
(2)软件系统实现
N
Y
图2-1主程序流程图
NN
Y
图2-2中断服务程序流程图
Y
N
N
Y
图2-3发送数据子程序流程图
5、程序清单
实验一
CODESEGMENT
ASSUMECS:
CODE
ADPORTEQU0060H
DAPORTEQU0070H
CONTPORTEQU00DFH
DATAPORTEQU00DEH
DATA0EQU0500H
DATA1EQU0510H
DATA2EQU0514H
DATA3EQU0518H
DATA4EQU0519H
DATA5EQU051AH
DATA6EQU051CH
START:
JMPCONTORL
CONTORL:
CALLFORMAT
CALLLEDDISP
CALLDELAY
MOVAL,0D
DACON:
PUSHAX
OUTDAPORT,AL
CLC
MOVSI,DATA5
MOVAL,1D
ADCAL,[SI]
DAA
MOV[SI],AL
INCSI
MOVAL,0D
ADCAL,[SI]
DAA
MOV[SI],AL
MOVSI,DATA5
MOVAL,[SI]
MOVBX,DATA2
CALLCONVERS
INCSI
MOVAL,[SI]
CALLCONVERS1
INCBX
MOVDS:
[BX],AL
CALLDELAY
ADCON:
MOVAX,00
OUTADPORT,AL
CALLDELAY
INAL,ADPORT
CALLCBCDM
MOVBX,DATA6
MOV[BX],AX
MOVBX,DATA1
CALLCONVERS
MOVAL,BYTEPTRDS:
[051DH]
CALLCONVERS1
INCBX
MOVDS:
[BX],AL
CALLLEDDISP
POPAX
INCAX
CMPAX,100H
JBDACON
MOVAX,0H
MOVWORDPTRDS:
[DATA5],0H
JMPDACON
CONVERS:
PUSHAX
CALLCONVERS1
MOVDS:
[BX],AL
INCBX
POPAX
MOVCL,4H
SHRAL,CL
CALLCONVERS1
MOVDS:
[BX],AL
RET
CONVERS1:
PUSHBX
MOVBH,0H
ANDAL,0FH
MOVBL,AL
MOVAL,CS:
[BX+DATA0]
POPBX
RET
LEDDISP:
MOVAL,90H
OUTCONTPORT,AL
LED1:
CMPBYTEPTRDS:
[DATA3],07H
JALED2
MOVBL,DS:
[DATA3]
MOVBH,0H
MOVAL,DS:
[BX+DATA1]
OUTDATAPORT,AL
ADDBYTEPTRDS:
[DATA3],01H
JNZLED1
LED2:
MOVBYTEPTRDS:
[DATA3],00
RET
CBCDM:
MOVBL,AL
ANDAX,0FH
CMPAL,09H
JNANEXTBIT
ADDAL,06H
NEXTBIT:
MOVBYTEPTRDS:
[DATA4],AL
MOVAL,BL
MOVBH,0
MOVBL,BYTEPTRDS:
[DATA4]
MOVCL,4H
SHRAL,CL
JZOK
MOVCX,AX
MOVAL,BYTEPTRDS:
[DATA4]
CLC
NEXT:
ADDAL,16H
DAA
JNCNEXTBIT1
ADDAH,1H
NEXTBIT1:
DECCX
JNZNEXT
MOVBX,AX
OK:
MOVAX,BX
RET
FORMAT:
MOVAX,0H
MOVDS,AX
MOVBX,0
MOVWORDPTRDS:
[BX+DATA0],063FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],4F5BH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],6D66H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],077DH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],6F7FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],7C77H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],5E39H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],7179H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],525EH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],4077H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],7740H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],5E52H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],0H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],0H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA0],0H
RET
DELAY:
MOVAX,5H
DELAY1:
DECAX
NOP
NOP
MOVCX,0FFFFH
DELAY2:
LOOPDELAY2
JNZDELAY1
RET
CODEENDS
ENDSTART
实验二
P8253_BASEEQU0290H
P8253_0EQUP8253_BASE+0
P8253_1EQUP8253_BASE+2
P8253_2EQUP8253_BASE+4
P8253_CONEQUP8253_BASE+6
BUTTONEQU02A0H
GATEEQU02BH
;-----------------LCD寄存器地址--------------A2A1A0
LCD_CMD_WREQU0280H;000向LCD写入指令
LCD_DATA_WREQU0282H;010向LCD写入数据
LCD_BUSY_RDEQU0284H;100从LCD读忙信号
LCD_DATA_RDEQU0286H;110从LCD读数据
;---------------------------LCD命令--------------------------
LCD_CLSEQU01H;清屏指令
LCD_HOMEEQU02H;光标归位指令
LCD_SETMODEEQU04H;模式设置指令
LCD_SETVISIBLEEQU08H;显示开关控制指令
LCD_SHIFTEQU10H;设定显示屏或光标移动方向指令
LCD_SETFUNCEQU20H;功能设置指令
LCD_SETGADDREQU40H;设定CGRAM指令
LCD_SETDADDREQU80H;设定DDRAM指令
DATASEGMENT
ORG1000H
PRMTDB‘---DaliyNews---’,0
PRMT2DB‘---ByeBye----’,0
BASEDWNEW0,NEW1,NEW2,NEW3,NEW4;定义新闻条目地址表
NEW0DB‘NEW0:
WelcomeNanjing!
....’,0;定义新闻条目
NEW1DB‘NEW1:
OlympicGame....’,0
NEW2DB‘NEW2:
HappyNewYear....’,0
NEW3DB‘NEW3:
NanjingUniversity...’,0
NEW4DB‘NEW4:
YangZiRiver....’,0
ROWDW0;定义新闻条目地址表指针
NUMDW0;当前行已显示字符个数
DATAENDS
CODESEGMENT
ASSUMCS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
;-------------------NMI中断向量初始化----------------
NMI_INIT:
PUSHES
XORAX,AX;AX清0
MOVES,AX
MOVAL,2;NMI中断类型码为2
XORAH,AH;AH清空
SHLAL,1;2*4
SHLAL,1
MOVSI,AX;SI指向中断向量在中断向量表中的起始地址
MOVAX,OFFSETNMI_SERVICE;取中断服务程序的偏移地址
MOVES:
[SI],AX;取中断向量表
MOVBX,CS;取中断服务程序的段地址
MOVES:
[SI+2],BX;送中断向量表
POPES
;--------------------8253初始化-----------------
MOVAL,10110101B;T2读写高低字节工作方式2BCD码
MOVDX,P8253_CON;写入控制字
OUTDX,AL
MOVDX,P8253_2;T2地址
MOVAL,00H;写入计数初值低字节
OUTDX,AL
MOVAL,10H;写入计数初值高字节
OUTDX,AL
MOVAL,01110111B;T1读写高低字节工作方式3BCD码
MOVDX,P8253_CON;写入控制字
OUTDX,AL
MOVDX,P8253_1;T1地址
MOVAL,00H;写入计数值低字节
OUTDX,AL
MOVAL,00H;写入计数值高字节
OUTDX,AL
MOVAL,01H;令8253的GATE1,2=1,启动定时
MOVDX,GATE
OUTDX,AL
;------------------LCD初始化----------------------------;D7D6D5D4D3D2D1D0
MOVAL,LCD_SETFUNC+10H+08H;001DLNFxx
;001110xx
;8位数据总线,显示2行,5*7点阵--38H
CALLWRCMD
MOVAL,LCD_CLS;清屏---01H
CALLWRCMD
;D7D6D5D4D3D2D1D0
MOVAL,LCD_SETVISIBLE+04H;00001DCB
;00001100
;显示功能开,无光标--0CH
CALLWRCMD;D7D6D5D4D3D2D1D0
MOVAL,LCD_SETMODE+02H;000001I/DS
;00000100
;写入新数据后光标右移--06H
CALLWRCMD
MOVAL,LCD_SETDADDR;第1行第1列
CALLWRCMD
MOVSI,OFFSETPRMT
CALLWRSTR
MOVROW,0
MOVNUM,0
AGAIN:
MOVDX,BUTTON;读入按键状态
INAL,DX
ANDAL,01H
JNZAGAIN;键没有按下,则继续检测
MOVAL,0;令8253的GATE1,2=0,停止计数
MOVDX,DATE
OUTDX,AL
MOVAL,LCD_CLS;清屏---01H
CALLWRCMD
MOVAL,LCD_SETDADDR;第1行第1列
CALLWECMD
MOVSI,OFFSETPRMT2;显示结束提示
CALLWRSTR
JMP$
NMI_ServicePROC;中断服务子程序
PUSHAX
PUSHBX
MOVBX,[ROW]
MOVAL,LCD_CLS;清屏
CALLWRCMD
MOVAL,LCD_SETDADDR;第1行第1列
CALLWRCMD
MOVSI,BASE[BX]
CALLWRSTR
MOVAL,LCD_SETDADDROR40H;第2行第1列
CALLWRCMD
CALLWRSTR;显示第新闻第2行
ADDROW,2;指向下一条新闻
CMPROW,10;是否到达最后一条新闻
JNEEXIT
MOVROW,0
EXIT:
POPBX
POPAX
IRET
NMI_ServiceENDP
WTBUSYPROC;LCD忙等待子程序
PUSHDX
PUSHAX
MOVDX,LCD_BUSY_RD
WAIT0:
INAL,DX
TESTAL,80H
JNZWAIT0
POPAX
POPDX
RET
WTBUSYENDP
WRCMDPROC;写指令子程序
PUSHDX
WR:
CALLWTBUSY
MOVDX,LCD_DATA_WR
MOVAL,[SI]
CMPAL,0
JEEXIT_STR;是否到字符串尾
OUTDX,AL
INCSI
INCNUM
CMPNUM,16
JEEXIT_STR;当前行是否已显示了16个字符
JMPWR;是否继续显示
EXIT_STR:
MOVNUM,0
POPAX
POPDX
RET
WRSTRENDP
CODEENDS
ENDSTART
课程设计成绩考核表
学院
计算机科学与工程学院
专业
计算机科学与技术
班级
150403
姓名
高阳
学号
20152216
课程名称
微型计算机技术与汇编语言课程设计
课程设计题目
1.用D/A,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 汇编语言 课程设计 报告