微机汇编实验七屏幕字符显示程序

合集下载

实验二LED显示程序设计实验

实验二LED显示程序设计实验

实验二LED显示程序设计实验一、实验目的1、初步学习和了解VHDL语言编程方式2、学习和掌握七段数码显示译码器的设计方法3、学习和掌握VHDL的多层设计方法二、实验要求1、根据硬件设计的思维方式,编制LED七段码的显示程序2、要求是一位LED以定位方式显示3、完成LED七段码波形分析的显示功能4、在EDA实验箱上按要求显示三、实验设备1、计算机一台2、EDA——Ⅳ实验箱一台四、实验原理1、七段码是用一种纯组合的逻辑电路,通常是用小型专用的IC门电路组成,数字输入与输出表达均未16进制,处理一般较复杂,而用FPGA/CPLD来实现较为简单。

2、七段码输入与输出的原理与真值表关系。

1.输入:七段码输入为四个输入信号,用来表示为“0000”到“1111”,即表示为十六进制的“0”到“F”。

2.输出:七段码输出为七个输出信号,分别用“A、B、C、D、E、F、G”七个符号来表示。

一般规定,输出信号为“1”时,它所控制的发光二极管为点亮状态,输出信号为“0”时,它所控制的发光二极管为熄灭状。

本实验使用的七段数码管为共阴极组,其电路如图2.1所示。

图2.1 共阴极数码管及其电路3.输入与输关系为四位二进制代码组成十六进制代码,将其代码显示,其对应关系如表2.1所示。

4.显示方式是通过选位的方式进行,是将FPGA/CPLD的三位二进制的信号输出,通过外部三——八译码器硬件电路,选中一路LED信号为输出,故选择一位LED数码管显示,本实验是采取选相应的一个指定位置进行LED显示。

3、输入是通过外部的四个按键操作而组成一位十六进制。

其连接到FPGA/CPLD的对应的引脚上,需进行引脚分配。

4、编写译码程序,生成底层组件,组合成底层文件。

表2-1 七段字符显示真值表五、实验步骤1、 在D 盘建立自己的文件目录2、 在自己的文件目录下,建立项目文件 File \ Project \ 文件名A3、 在自己的文件目录下,建立文本文件 File \ Project \ 文件名B.vhd 。

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

用七段数码管显示简单字符——译码器及其应用实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验一用七段数码管显示简单字符——译码器及其应用一、实验目的1、了解显示译码器的结构和理解其工作原理。

2、学习7段数码显示译码器设计。

3、学习用基逻辑门、3-8译码器、4-1选择器控制显示器的显示。

二、实验内容1、了解逻辑门、3-8译码器、4-1选择器的工作原理,设计基本电路,实现以下功能:C2C1C0是译码器的3个输入,用C2C1C0的不同取值来选择在七段数码管上输出不同字符。

七段数码管是共阳极的。

图1 七段译码器C2C1C0 的不同取值对应显示的字母如下:图2 字符编码三、实验仪器及设备: 一、PC 机二、 Quartus Ⅱ 9.0三、 DE2-70 四、显示器四、实验步骤1、列出真值表,计算要实现以上功能时数码管的0-7段对应的逻辑函数式。

真值表如下:函数表达式如下: “0”='02C C +“1”=“2”=0'1'012C C C C C ++“3”=(2C +1C +'0C )(2C +0C +'1C )(2C +'1C +'0C ) “4”=“5”=2C “6”=2C +1C +02C C2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。

建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0,DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。

参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。

新建仿真文件,给出输入信号,观察输出信号是否符合要求。

编译工程,完成后下载到FPGA 中。

拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。

字符显示实验报告

字符显示实验报告

一、实验目的1. 熟悉计算机字符显示的基本原理。

2. 掌握字符显示编程的基本方法。

3. 了解字符显示在计算机图形界面设计中的应用。

二、实验原理计算机字符显示是计算机输出设备的基本功能之一。

它通过将字符编码转换为字符图形,并在屏幕上显示出来,实现信息的输出。

字符显示主要包括以下三个步骤:1. 字符编码:将字符转换为计算机可识别的编码,如ASCII码、GB2312等。

2. 字模转换:将字符编码转换为字符图形,即字模。

3. 显示输出:将字符图形输出到屏幕上。

三、实验内容1. 实验环境:Windows操作系统、C++编程环境。

2. 实验步骤:(1)创建一个新的C++项目。

(2)编写字符显示程序,实现以下功能:① 输入字符编码。

② 将字符编码转换为字符图形。

③ 在屏幕上显示字符图形。

3. 实验代码:```cpp#include <iostream>#include <windows.h>using namespace std;// 定义字模数组,存储字符图形unsigned char font[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 空格 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, // 字母A // ... 其他字符的字模数据};// 字符显示函数void DisplayChar(unsigned char ch) {int width = 8; // 字模宽度int height = 16; // 字模高度int i, j;// 创建位图BITMAP bmp;bmp.bmWidth = width;bmp.bmHeight = height;bmp.bmWidthBytes = width;bmp.bmBits = new BYTE[bmp.bmWidthBytes bmp.bmHeight];// 初始化位图for (i = 0; i < bmp.bmHeight; i++) {for (j = 0; j < bmp.bmWidthBytes; j++) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0;}}// 绘制字符图形for (i = 0; i < height; i++) {for (j = 0; j < width; j++) {if (font[(ch - 32) height + i] & (0x80 >> j)) {bmp.bmBits[i bmp.bmWidthBytes + j] = 0xFF;}}}// 创建设备上下文HDC hdc = GetDC(NULL);HDC memDC = CreateCompatibleDC(hdc);// 创建位图句柄HBITMAP hBitmap = CreateCompatibleBitmap(hdc, width, height); SelectObject(memDC, hBitmap);// 绘制位图BitBlt(memDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY);// 清理资源DeleteObject(hBitmap);DeleteDC(memDC);ReleaseDC(NULL, hdc);// 输出字符cout << ch << endl;}int main() {unsigned char ch;cout << "请输入一个字符:";cin >> ch;DisplayChar(ch);return 0;}```4. 运行程序,输入一个字符,观察屏幕上是否显示对应的字符图形。

微机原理课程设计 字符显示.

微机原理课程设计 字符显示.

某某学院微机原理课程设计2013级电气工程及其自动化专业班级题目字符图形显示姓名学号指导教师职称二О一三年12 月13 日摘要 (3)一、字符图形显示的基本原理 (4)二、设计方案 (4)三、硬件设计 (4)四、软件设计 (5)4.1 主模块及子模块说明 (5)五、设计体会 (13)参考文献 (14)摘要本课程设计是通过使用汇编语言来完成的,具体实现的方法可以通过在MASM使用环境下运行,也可以通过在DOS环境下完成。

我做的课程设计是通过编写汇编语言程序,实现字符图形的显示。

在编写初期,我对字符“SPORT”进行了设计,确定了每个字符所在的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。

接着开始编写程序,编写完程序后,对程序进行了注释,最后调试出所要求的字符。

本程序可以在DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能。

整个课程设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。

关键词:字符显示,10号中断,图形,BIOS一、字符图形显示的基本原理字符图形显示可以在DOS环境下完成,编写完程序后分析并理解每条程序的意思,并解释主要程序的意思,最后调试出所要求的字符。

在程序编写前,我首先对自己显示的图形进行了设计,确定了每个数字相对于前一个数字的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。

本次实验实验的编写环境是MASM,编译、链接也是在该环境下实现的。

程序的运行我使用的是DOS环境。

通过参考网上的一些原程序,要编写好该程序,首先应该对BIOS的中断熟悉,因此程序编写前,我先认真学习了该BIOS中断的有关功能。

二、设计方案在课程设计之前,首先要明确设计的目的。

本次课程设计的题目是字符图形显示,要求我们能够编写一个汇编程序,正确的显示所要求的字符。

七段码显示汇编语言程序设计

七段码显示汇编语言程序设计

课程设计任务书学生姓名专业班级指导教师黄珍工作单位自动化学院课程设计题目七段码显示汇编语言程序设计初始条件:采用16位微处理器8086 CPU以及86系列微型计算机的指令系统;软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。

要求完成的主要任务:设计汇编语言程序,实现七段码显示效果,具体功能要求如下:(1)数字0~9或A~F中的每个数字、字母用“¦”和“—”字符组成的“七段”码图形表示;(2)运行程序后,要求数字0~9或字母A~F依次循环显示;(3)单击“Q”或“q”键退出程序。

根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试:撰写课程设计说明书。

课程设计说明书的撰写格式如下:(1)设计说明书包括封面、任务书(指导老师提供)、正文、参考文献(3~5篇)、附录(程序清单,要求有注释)、成绩评定表(指导老师提供)。

(2)说明书正文包含总体方案论证(算法说明);程序流程图设计及其说明;软件设计关键问题或程序段落的说明;程序调试说明、结果记录及分析;课程设计收获及心得体会。

(3)同一选题若为合作完成,设计说明书中需注明本人承担的设计部分。

(本次课程设计时间:2011年1月10日-21日,历时两周)指导教师签名:年月日系主任(或责任教师)签名:年月日目录1 总体方案论证 (1)1.1 七段数码管显示功能分析 (1)1.2 算法说明 (1)2 程序流程图设计及其说明 (3)2.1 程序流程图 (3)2.2 程序流程图说明 (4)3程序段落的说明 (5)3.1 数据段定义 (5)3.2 程序初始化 (5)3.3 清空显示屏 (5)3.4 重置光标 (6)3.5 数码显示处理工作 (6)3.6 取得计数并为下次循环准备 (6)3.7 一个数字的数码管显示 (6)3.8 显示程序 (7)3.9 程序延时部分 (7)3.10 判断键盘输入部分 (7)3.11 结束DOS以及跳出语句 (8)4 程序调试说明、结果记录及分析 (9)5 课程设计收获及心得体会 (13)参考文献 (14)附录 (15)七段码显示汇编语言程序设计1 总体方案论证1.1 七段数码管显示功能分析双击进入程序,运行显示DOS 界面。

实验报告一-显示程序实验

实验报告一-显示程序实验

信息工程学院实验报告实验项目名称:显示程序实验实验时间:2016.11.10班级:姓名:学号:一、实验目的1、掌握在PC 机上以十六进制形式显示数据的方法2、掌握部分DOS 功能调用使用方法。

3、熟悉Windows 集成操作软件Tdpit 的操作环境和操作方法。

二、实验设备PC 微机一台、TD-PITD+实验系统一套。

三、实验原理一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并利用DOS 功能调用完成一些提示信息的显示。

通过本实验,初步掌握实验系统配套操作软件的使用。

实验中所使用DOS 功能调用(INT 21H)说明如下。

(1)显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2)显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3)键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4)返回DOS 系统入口:AH=4CH调用参数:AL=返回码程序流程图如图1-1 所示。

实验参考程序如下。

实验程序清单(例程文件名:A1.ASM)STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENT USE16MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$' MES1 DB 'Show a as hex:',0AH,0DH,'$'SD DB 'b'DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;显示退出提示MOV AH,09HINT 21HMOV DX,OFFSET MES1 ;显示字符串MOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0H ;取高4 位SHR AL,4CMP AL,0AH ;是否是A 以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4 位图1-1 显示程序实验参考流程图CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HKEY: MOV AH,1 ;判断是否有按键按下?INT 16H ;(为观察运行结果,使程序有控制的退出)JZ KEYMOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START四、实验内容与步骤(1)运行Tdpit 集成操作软件,进入编辑调试集成环境。

汇编做的字符显示程序

汇编做的字符显示程序

目录一.论文题目 (2)二.技术参数 (2)三.设计步骤 (2)1.数据段 (2)2. 主程序 (2)3. 清屏子程序 (3)4. 显示子程序 (3)五.程序代码 (4)六.程序运行结果 (16)七.设计体会 (17)八.参考文献 (17)九.附录 (17)一.论文题目字符图案显示程序二.技术参数1.通过编程将字符数据直接置入显示存储区,文本方式下屏幕上的字符位置所对应的显示缓冲区的偏移地址为:行号(0~24)×160+列号(0~79)×2。

2.BOIS功能调用:int 10H在本程序中发回了至关重要的作用。

在图形方式下,可以利用BOIS 的int 10h功能对屏幕上的像素进行读写和处理。

例如设置彩色文本方式:mov ah,0 ,mov al,3,int10h;取当前显示方式:mov ah,0fh ,int 10h,;置光标位置:mov ah,2 ,int 10h;显示字符:mov ah,09 ,int 10h等3.DOS系统功能调用(21H)。

从键盘输入字符:mov ah,01h ,int 21h,带返回码终止:mov ah,4ch ,int 21h。

三.设计步骤1.数据段在数据段中设置要显示“科技大学”图案的字符图形表。

图形表主要包括每个字符的ASCII,属性,以及在显示图形中的相对位移量(行、列坐标)四个参数组成。

其中,ASCII决定了用何种字符显示要求图案。

行、列坐标恰当的排列决定了图形的完整性和美观性。

2.主程序在主程序中完成初始化DOS,设置彩色文本方式等功能。

其中清屏子程序、显示子程序。

并且设置了退出的操作,操作者可以按空格退出,回到DOS界面。

3.清屏子程序INT 10H功能6使屏幕内容上卷指定的行,这个功能需要设置7个参数。

AH、BH、CH、CL、DH、DL分别表示了上卷行数、初始化窗口、卷入行属性、左上角行列号和右上角行列号。

在做这项工作前,将寄存器压栈保护寄存器,最后再出栈回复寄存器。

2023年微机原理实验指导书

2023年微机原理实验指导书

2.1系统生疏试验【试验目的】把握TD 系列微机原理及接口技术教学试验系统的操作,生疏Wmd86 联机集成开发调试软件的调试环境。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写试验程序,将00H~0FH 共16 个数写入到内存3000H 开头的连续16 个存储单元中。

【试验步骤】1.运行Wmd86 软件,进入Wmd86 集成开发环境。

2.在设置菜单中选择“汇编语言”和“16 位存放器”。

3.单击文集菜单的建命令,建一个文档,默认文件名为Wmd861。

4.编写试验程序,并保存,此时系统会提示输入的文件名,输完后点击保存。

5.单击编译文件,假设程序编译无误,则科技连续单击进展链接,链接无误前方可以加载程序。

6.连接PC 与试验系统的通讯电缆,翻开试验系统电源。

7.编译、链接都正确并且上下机通讯成功后,就可以下载程序,联机调试了。

可以通过端口列表中的“端口测试”来检查通讯是否正常。

点击下载程序。

为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。

下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。

起始运行语句下会有一条绿色的背景。

8.将输出区切换到调试窗口,试验命令D0000:3000 查看内存3000H 起始地址的数据。

9.点击按钮运行程序,等待程序运行停顿后,通过命令来观看程序结果。

10.也可以设置端点,要修改内存中的数据可以使用命令E,如E0000:3000 可以修改地址0000:3000 处的数据,修改完一个后,可按“空格”键连续输入下一个数。

输入完成后按“回车”键退出。

2.2数制转换试验【试验目的】1 把握不同进制数及编码相互转换的程序设计方法,加深对数值转换的理解。

2.生疏程序调试的方法。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写程序,将ASCII 码表示的十进制数转换为二进制数。

【试验步骤】1.依据程序流程图编写程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验时间:2014年6月4日实验成绩评定:
姓名:黄涛学号:2012311419
实验七屏幕字符显示程序
实验目的:
通过实验掌握下列知识:
1、8086/8088指令: JMP,CMP,LEA,CMPBS。

2、利用DOS功能调用INT21H的2号、8号、9号和0A号功能进行屏幕显示的方法。

3、IBM-PC机的ASCII码表及控制字符。

实验内容及步骤:
一、利用INT 21H 2号功能显示字符:
1、用A命令在100H处键入下列程序:
XOR DL,DL
MOV CX,100
LOP:MOV AH,2
INT 21
INC DL
PUSH CX
MOV CX,8
DELY: PUSH CX
MOV CX,0
J: LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。

仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?
3、按CTRL+BREAK退出此程序,若一次不行可多做几次。

二、自编一个程序, 在显示器上显示“How are you ?”,然后读一个字符,但不显示此字符,若读入字符是‘y’,则显示‘ok’。

解:程序如下:
DSEG SEGMENT
DAT1 DB 'HOW ARE YOU?',0DH,0AH,'$'
DAT2 DB 'OK',0DH,0AH,'$'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET DAT1
MOV AH,9
INT 21H
MOV AH,8
INT 21H
CMP AL,'Y'
JNE NEXT
LEA DX,DAT2
MOV AH,9
INT 21H
NEXT: MOV AH,4CH
INT 21H
CSEG ENDS
END START
程序编译:
程序运行:
1.输入“Y”:
2.输入其他字符:
三、自编一个程序, 屏幕显示“PASS WORD ?”,随后从键盘读入字符串,并比较这个字符串与内部设定的字符串,若两者相同,则显示“ok”,否则不作任何显示。

程序代码:
DSEG SEGMENT
PASS1 DB '1234'
N EQU $-PASS1
DT1 DB 'pass word',0DH,0AH,'$'
PASS2 DB 20
DB ?
DB 20 DUP(?)
DT2 DB 'OK $'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV ES,AX
LEA DX,DT1
MOV AH,9
INT 21H
LEA DX,PASS2
MOV AH,0AH
INT 21H
LEA SI,PASS1
LEA DI,PASS2
CMP BYTE PTR[DI+1],N
JNE LAST
MOV CX,N
LEA DI,PASS2+2
CLD
REPZ CMPSB
JNZ LAST
DISOK:LEA DX,DT2
MOV AH,9
INT 21H
LAST: MOV AH,4CH
INT 21H
CSEG ENDS
END START
程序编译:程序运行:。

相关文档
最新文档