当前位置:文档之家› 字符串动画显示汇编语言程序设计

字符串动画显示汇编语言程序设计

字符串动画显示汇编语言程序设计
字符串动画显示汇编语言程序设计

目录

1总体方案论证 (1)

1.1题目功能分析 (1)

1.2算法说明 (1)

2流程图设计及说明 (2)

2.1主程序流程图设计 (2)

2.2分布具体功能实现流程图设计 (3)

2.2.1字符串右移 (3)

2.2.2字符串下移 (4)

2.2.3字符串闪烁 (5)

3软件设计关键问题或程序段落说明 (5)

3.1提示输入字符串显示功能实现 (5)

3.2向右、向下移动功能实现 (7)

3.3字符串大小写变化实现 (9)

3.4颜色变化功能实现 (10)

3.5退出功能实现 (10)

4调试说明、结果记录及分析 (11)

4.1调试说明 (11)

4.2结果记录与分析 (11)

4.2.1 提示输入字符串 (11)

4.2.2输入后显示字符串 (12)

4.2.3在特定位置从无到有显示 (12)

4.2.4在特定位置向右移动 (13)

4.2.5在特定位置向下移动 (13)

4.2.6小写变成大写加闪烁 (14)

5课程设计收获及心得 (15)

6参考文献 (16)

字符串动画显示汇编语言程序设计

1总体方案论证

1.1题目功能分析

(1)屏幕提示输入字符串;

(2)输入完成后,字符动画显示,显示方式可为:从无到有,从左到右,从上到下,大小写变化、颜色变化等;

(3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。

1.2算法说明

(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;

(2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能;

大小写变化则通过将输入字符与‘a’和‘z’比较,若为小写字母,则减去20H,否则不变;

颜色变化则通过INT 10H的09H功能循环调用实现;

(3)退出功能通过将输入‘Q’和‘q’与其ASC 比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。

2流程图设计及说明

2.1主程序流程图设计

开始

段地址初始化

进入Dos窗口

输出提示信息

输入字符串

显示输入字符串

字符串右移

字符串向下移动

字符串小写变大写

三色变换闪烁

N

按Q,q?

Y

结束

图2-1 主程序流程图

图2-1 字符串动画总流程图

2.2分布具体功能实现流程图设计

2.2.1字符串右移

结束

输完? 获取字符串

Y

Y N

图2-2 字符串右移流程图

开始

输出字符串

设置光标起始位置 延迟1

输出空白覆盖字符串

延迟2

结束?

N

横坐标更新

结束

输完? 获取字符串

Y

Y N

图2-3 字符串下移流程图

开始

输出字符串

设置光标起始位置 延迟1

输出空白覆盖字符串

延迟2

结束?

N

纵坐标更新

3软件设计关键问题或程序段落说明

3.1提示输入字符串显示功能实现

屏幕提示输入字符串主要运用中断INT 21H 的0A H 功能,输入后回车则完成字符串在特定位置的显示。另外,在此段程序中,还通过用空字符串的逐个显示来完成字符从无到有的功能实现。 lea dx ,buf

mov ah ,0ah

结束

Y 图2-4 字符串闪烁流程图

N

获取字符串

开始

N

是否输完? Y 输出字符串

设置起始位置 延迟1

设置字符串颜色

次数已到?

mov bx,2;多字符输入,回车结束,有效内容自第三个始。

mov di,0

B1:

mov al,buf[bx]

cmp al,13;是否是回车?

je AG1

mov buff1[di],al

inc bx

inc di

jmp B1

AG1:

mov ah,0

mov al,2

int10h;黑白文本

OTHER:

mov cx,0ffffh;

AG:

mov dh,7;hang

mov dl,35;lie

mov ah,2

mov bh,0;页号为0

int10h;置光标位置

lea dx,buff1

mov ah,9

int21h;显示字符串

mov dh,7

mov ah,2

mov bh,0

int10h;置光标位置

lea dx,buff2

mov ah,9

int21h;

sub cx,1;

jnz AG ;不等于转移

3.2向右、向下移动功能实现

如流程图可知,向下和向右移动,程序基本相同,只不过一个改变的是行,另一个改变的是列,以下以向右移动为例。主要通过INT 10H 调用,且循环操作一定次数实现。其中,在下一次输出时,为了清除前一个位置的输出,用空字符串替代。另外,通过延时控制移动速度。程序如下:

mov al,3

mov ah,0

int10h;16色文本

mov dl,0;字符串向右移动, 给出起始列

bbb2:

MOV SI,OFFSET buff1

mov di,0

bbb1:

mov dh,7;dh hang dl lie

inc dl

mov ah,2

int10h;置光标位置2号置光标位置9号指定输出,每次显示一个

mov ah,09;9号功能

inc di

mov al,[si]

inc si

mov bh,0;显示页

mov bl,0eh;color

mov cx,01;显示字符的次数

int10h

cmp di,0fh; 立即数大小取决于字符串大小

jb bbb1

call delay1

sub dl,0fh; 设置列

mov SI,OFFSET buff2

mov di,0

ccc1:

mov dh,7;dh hang dl lie

inc dl

mov ah,2

int10h;置光标位置

mov ah,09;9号功能

inc di

mov al,[si]

inc si

mov bh,0;显示页

mov bl,0eh;color

mov cx,01;字符重复一次

int10h

cmp di,0fh

jb ccc1

call delay2

; mov ah,07

; int 21h 首先在一个位置输出然后输出空白覆盖掉在输出下一个位置cmp dl,25

jnb xiangxia ; 在这里跳出右移,转到向下

sub dl,0dh

jmp bbb2

3.3字符串大小写变化实现

因为在ASC 表中大小写相差20H,所以通过将输入字符与‘a’和‘z’比较,若为小写字母,则减去20H,否则不变。程序如下:

daxiaoxie:

mov dl,7

mov dh,35

MOV SI,OFFSET buff1

mov di,0

a1:

mov al,[SI]

cmp al,'$'

je shansuo

cmp al,'a'

jb next

cmp al,'z'

ja next

sub al,20h

mov [SI],al

next:inc SI

jmp a1

3.4颜色变化功能实现

颜色变化功能实现相当于对字符串属性定义,表现出颜色差别,然后循环调用并插入延时。以下程序效果是三种颜色闪烁,其中aaa1表示黄色,aaa2表示绿色,aaa3表示红色。具体程序如下:

shansuo: ;三种颜色闪烁

call aaa1

call delay1

call aaa2

call delay1 ;内部转换后还是用BIOS 10h 9号功能调用

call aaa3

call delay1

jmp shansuo

3.5退出功能实现

退出功能通过将输入‘Q’和‘q’与其ASC 比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。

mov ah,08h;q键退出

int21H

cmp AL,'Q'

je exit

cmp AL,'q'

je exit

exit: mov ah,4ch

int21h

4调试说明、结果记录及分析

4.1调试说明

所谓程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。

调试过程中出现很多问题。很多次,程序更改后得不到目标文件,主要原因是编程过程中不够细心,而且没有整体把握。例如,有段名重复的错误,还有对调用不熟悉造成编程过程很痛苦。

4.2结果记录与分析

4.2.1 提示输入字符串

以下是在运行程序后窗口出现的界面,提示输入字符串以及按‘Q’或‘q’退出。如图3.1:

图3.1 提示输入字符串

4.2.2输入后显示字符串

以下是输入字符串后按回车前显示的界面。如图3.2:

图3.2 输入字符串

4.2.3在特定位置从无到有显示

以下是按完回车键后依照程序设定位置,光标先跳到第七行、第三十五列,然后逐个字符循环显示字符串的界面对比。如图3.3:

图3.3 字符串从无到有

4.2.4在特定位置向右移动

以下是字符串从第七行、第零列开始右移的对比界面。如图3.4:

图3.4 字符串右移

4.2.5在特定位置向下移动

以下是字符串从第七行、第零列开始下移的对比界面。如图3.5:

图3.5 字符串下移

4.2.6小写变成大写加闪烁

以下是字符串中所有小写字母变成大写后进行黄、绿、红依次变化现象对比界面。如图3.6:

图3.6 字符串颜色变化

5课程设计收获及心得

学完《微机原理与接口技术》,本以为自己学到的东西挺多,直到课程设计开始,才深刻了解到自己似乎只了解个皮毛。作为微原中的核心,汇编语言的程序设计在课程学习中只有一章,而且书本上的例题与这次课程设计任务相比,难度不大。

几乎整整一周的微原课程设计结束,对于我,感受颇深,收获颇多。除了一些以前学过的指令,最深的感触是对中断INT 21H和INT 10H中一些常用功能的运用。

经过此次课程设计,我通过自己查资料、自己设计编程到最后完成功能实现,最终的成就感比平时更大,因为我感受到了学以致用,将理论用于实际的效果。

在以后的学习中,我会继续保持这样良好的态度对待任何学习,不论是课程设计还是实习,抑或只是平时课程学习,我将为了提高自身实践能力而有目的的学习与收获,而不仅仅是为了应付考试或者拿到学位证。

6参考文献

[1] 彭虎等编著.微机原理与接口技术(第二版).北京:电子工业出版社,2008

[2] 沈美明,温东禅.IBM-PC汇编语句程序设计(第2版).北京:清华大学出版社,2001

[3] 任向明,卢惠林.汇编语言程序设计实用教程.北京:清华大学出版社,2009

[4] 马力妮.80x86汇编语言程序设计.北京:机械工业出版社,2004

[5] 艾德才.Pentium系列微型计算机原理与接口技术.北京:高等教育出版社,2000

附录:程序清单

data segment

buff1 db ' $'

buff2 db ' $'

buf db100dup('$')

buff3 db 'please input a string !',13,10,'$'

buff4 db 'Press Q or q to exit!',13,10,'$'

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea dx,buff3;显示提示信息

mov ah,09h

int21h

lea dx,buff4;显示提示信息

mov ah,09h

int21h

lea dx,buf

mov ah,0ah

int21h

mov bx,2;多字符输入,回车结束,有效内容自第三个始。

mov di,0

B1:

mov al,buf[bx]

cmp al,13;是否是回车?

je AG1

mov buff1[di],al

inc bx

inc di

jmp B1

AG1:

mov ah,0

mov al,2

int10h;黑白文本

OTHER:

mov cx,0ffffh;

AG:

mov dh,7;hang

mov dl,35;lie

mov ah,2

mov bh,0;页号为0

int10h;置光标位置

lea dx,buff1

mov ah,9

int21h;显示字符串

mov dh,7

mov dl,35

mov ah,2

mov bh,0

int10h;置光标位置

lea dx,buff2

mov ah,9

int21h;

sub cx,1;

jnz AG ;不等于转移

;*********************************************************

mov al,3

mov ah,0

int10h;16色文本

mov dl,0;字符串向右移动, 给出起始列

bbb2:

MOV SI,OFFSET buff1

mov di,0

bbb1:

mov dh,7;dh hang dl lie

inc dl

mov ah,2

int10h;置光标位置2号置光标位置9号指定输出,每次显示一个

mov ah,09;9号功能

inc di

mov al,[si]

inc si

mov bh,0;显示页

mov bl,0eh;color

mov cx,01;显示字符的次数

int10h

cmp di,0fh; 立即数大小取决于字符串大小

jb bbb1

call delay1

;*********************************************************

sub dl,0fh; 设置列

MOV SI,OFFSET buff2

mov di,0

ccc1:

mov dh,7;dh hang dl lie

inc dl

mov ah,2

int10h;置光标位置

mov ah,09;9号功能

inc di

mov al,[si]

inc si

mov bh,0;显示页

mov bl,0eh;color

mov cx,01;字符重复一次

int10h

cmp di,0fh

jb ccc1

call delay2

; mov ah,07

; int 21h 首先在一个位置输出然后输出空白覆盖掉在输出下一个位置cmp dl,25

jnb xiangxia ; 在这里跳出右移,转到向下

sub dl,0dh

jmp bbb2

xiangxia: ;字符串向下移动

mov dl,0

mov dh,7;dh hang dl lie

ddd2:

MOV SI,OFFSET buff1

mov di,0

eee1:

inc dl

mov ah,2

int10h;置光标位置

mov ah,09;9号功能

inc di

mov al,[si]

inc si

微机原理字符串动画显示

课程设计报告 学生:甄晓学号:130704121 专业班级:电科131班 课程名称:微型计算机原理及应用技术 学年学期: 2015—2016学年第一学期 同组人员:思雨文娟哲博朗 指导教师:艳 2 0 15年 12月

课程设计成绩评定表

目录 一设计目的 (1) 二设计任务和要求 (1) 三设计容 (1) 四源代码以及主要代码分析 (5) 五效果及功能展示 (12) 六自己的贡献和心得体会 (14)

字符串的动画显示程序设计 一、设计目的: 1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序; 3、熟悉常用的DOS功能; 4、小组合作完成设计题目。 二、设计任务和要求 1、设计字符串的动画显示程序 2、程序设计基本要求 1)菜单 容包括:①输入字符串;②字符串动画显示;③退出。 2)输入字符串 选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。 3)字符串动画显示 所显示字符串在一矩形框从无到有,从右至左移动,完全从框移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。 4)在主菜单中选择退出项,则结束程序返回DOS。 三、设计容: 1、使用的DOS功能:

1) 显示字符串 MOV AH,09H INT 21H ;入口参数DS:DX=缓冲区2) 键盘输入一个字符 MOV AH,01H INT 21H ; AL=输入的字符3)终止当前程序并返回调用程序 MOV AH,4CH INT 21H ;AL=退出码4)输入字符串 MOV AH,0AH INT 21H ;入口参数DS:DX=缓冲区 2、使用工具和软件: PC机一台,MASM汇编软件 3、流程图: 1) 字符串从右向左移动

LCD超实用动画显示

Prodigals空间:https://www.doczj.com/doc/bc16305547.html,/prodigals/blog PS:终于把LCD汉字动画显示搞完了,这个是自己动手制作的,看着效果,还是不错了,毕竟才128*64还是黑白色的效果 效果图在最下面(WORD不支持去空间看哈),相信你把这个源代码搞明白了,LCD12864就可以随意操作了。 * ——————————————————————LCD12864驱动程序—————————————————————————————* #include "LCD12864_H.H" static void delay(uchar ms) { while(ms--) {;} } /******************************* 液晶判忙函数 函数名称:LCD_CheckState() 说明:仅当数据线/指令线的第7位为0时,才可操作。 功能:判断LCD液晶是否忙,以便接收数据。 *******************************/ static void LCD_CheckState(void) //判断液晶是否忙 { DPOR=0x00;//初始化端口 LCDRs=0;//指令 LCDRw=1;//读 LCDEn=1; //上升沿,读取指令 delay(1); while(DPOR&0X80); //仅当第7位为0时,才退出等待(判别busy信号) LCDEn=0; //拉低,以便下次读取 } /********************************************************************** 函数名称:LCD_WriteSfr 入口参数:style,input 说明:style为“0”时,表示写指令;style为“1”时,表示写数据。inupt表示要写入的数据或者指令。 功能:I/O口向液晶控制器写操作函数

微机原理移动动画显示设计

河南农业大学 课程设计报告 题目:移动动画显示设计 课程:微型计算机原理 专业:电子信息工程 班级:09电信(2)班 学生姓名: 学号: 指导教师:朱娟花 完成日期:2011.12.26 机电工程学院

目录 前言 (1) 1.1实习目的 (1) 1.2实习要求 (1) 第一章绪言 (1) 第二章软件系统介绍 (2) 2.1关于emulator的软件介绍 (2) 第三章程序设计分析 (5) 3.1 程序设计思路 (7) 3.2 程序流程图设计 (7) 3.3软件各模块内容 (9) 3.4程序清单及详细注释 (9) 3.5实验结果 (15) 第四章系统实现 (16) 4.1 程序源代码 (17) 总结 (18) 参考文献 (18)

前言 1实习目的 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机硬件特性并能直接控制硬件的唯一语言。 汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。 对我们掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 培养我们综合运用所学知识独立完成汇编程序课题的能力。使我们能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。 提高我们对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。培养我们从资料文献、科学实验中获得知识的能力,提高我们从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。培养我们勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 1实习要求 动画程序设计 要求完成一个在显示器上显示一个图形动画设计,即当程序运行时可看到移动的图形或图像。 此程序涉及到宏和I/O中断的调用,要求我们掌握对宏的定义和使用,使用汇编语言对I/O中断的使用。 小组成员分工协作完成。要求我们每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。学生查阅相关资料,自学具体课题中涉及到的新知识,能够按照老师的要求对待设计的系统的程序流程图进行正确地绘制。学生在老师的指导下,能够写出相应的源程序代码,采用结构化、模块化程序设计方法,功能要完善,界面要美观。所设计的系统原则上要能够运行无误,结果准确。在条件允许的情况下,学生能够最终将系统所要实现的功能演示出来。最后经验收合格后,按要求写出课程设计报告。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。

图形动画吴志超

图形动画 设计内容摘要: 此次微机原理课设根据设计任务阐述动画鸟汇编程序的设计基本思想和方案,绘制程序流程图,运用8086cpu提供的指令,伪指令,宏指令及dos,bios功能调用编写程序源代码,同时给出说明诠释,并利用计算机提供的软件调试工具队所编写程序进行调试,记录下整个程序分析的过程与运行结果。 目录:1设计的任务和要求 2小组成员及分工 3软件编程 4程序运行的结果 5设计过程中出现的问题及解决方法 6设计总结 7程序清单 8参考文献 1设计任务和要求:一只小鸟飞过屏幕,飞鸟的动作可由小写字母v变为破折号来模仿,这两个字符先后交替在两列显示。 (1)采用bios显示中断int 10h。 (2)设置显示方式为文本方式。 (3)写字母v和破折号的ASCII码分别是76H和0C4H,这两个字符的颜色为白色,即字符属性为0FH,将字符颜色改成黑色,即字符属性为00H。 (4)小鸟的起始位置为0~20行,每个字符显示0.5秒(循环实现),然后消失。 2小组成员及分工:吴志超,王义学。 吴志超:编写程序,调试程序,整理课设。 王义学:查找文献,整理文档。 3软件编程: (1)软件流程图:

(2)汇编语言程序: setiom macro x,y,z,l,m,n ;宏定义 mov x,y z l,m int n endm pushr macro x,y,z,w ;宏定义 push x push y push z push w endm popr macro x,y,z,w ;宏定义 pop w pop z pop y pop x endm data segment ;定义数据段 bird db 2 ;鸟字符图形参数表 db 76h,0fh,0,0 ;v字符,字符属性,行偏移,列偏移 db 0c4h,0fh,1,0 ;破折号,字符属性,行偏移,列偏移cont dw 0 ;保存字符个数 point dw 0 ;保存字符首地址 line db 0 ;保存行号 clum db 0 ;保存列号 data ends stack segment ;定义堆栈段 dw 256 dup(?) ;定义256个字内存单元 stack ends code segment public'code' ;定义代码段 assume cs:code,ds:data,ss:stack ;分配段 start: mov ax,data ;程序开始 mov ds,ax ;将数据段的内容给ds

微机原理课程设计_字符串动画显示

河北科技大学 课程设计报告 学生姓名韩永亮学号:10L0751250 专业班级:电信L104 课程名称:微型计算机原理及应用技术 学年学期:2 0 1 2—2 0 1 3学年第1学期指导教师:刘伟 2 0 13年1月

课程设计成绩评定表 学生姓名韩永亮学号10L0751250 成绩 专业班级电信L104 起止时间2013-1-7 至2013-1-11 设计题目字符串动画显示 指 导 教 师 评 语 指导教师: 年月日

一、课程设计的目的和任务 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。 通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 二.设计题目 题目三字符串动画显示 设计内容要求: 1、菜单 内容包括:①输入字符串;②字符串动画显示;③退出。 2、输入字符串 选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。 3、字符串动画显示 所显示字符串在一矩形框内左右来回移动,左移到左侧边框处自动右移,右移到右侧边框处自动左移,直到有任意键按下,停止字符串动画显示返回主菜单。 4、在主菜单中选择退出项,则结束程序返回DOS。 三、课程设计的主要步骤 课程设计可以分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤: 1.总体设计

单片机Led动画显示设计

单片机与嵌入式系统 课程设计 题目Led动画显示设计 班级 08051301 学生学号 2013302075 学生姓名涂小韵 分数

1.实验内容 使用8x8 LED点阵显示器完成如下功能: (1)从显示器中间点开始,依次点亮组成不同大小的同心正方形LED,顺序是0 ×0、2×2、4×4、6×6、8×8; (2)形成从全部熄灭状态到中心亮点逐渐变大,直到充满整个8×8点阵的动画 效果; (3)在全部点亮后,再从最外圈开始按照8×8、6×6、4×4、2×2、0×0的顺 序依次熄灭LED; (4)形成点亮面积逐渐向中心缩小,直到全部熄灭的动画效果; (5)每次点亮或者熄灭的变化都是以固定的0.5秒时间间隔进行; 2.实验环境 1.硬件平台:HC6800-ES V 2.0单片机开发板 2.软件开发环境:KEIL C51 3.下载软件:普中ISP自动下载软件 https://www.doczj.com/doc/bc16305547.html,B转串口驱动:开发板USB转串口CH340驱动 3.硬件设计 1硬件图

2设计说名 这个实验主要用c51内核和74H595以及led点阵,内部SRCLK连接P3^6,RCLK连接P3^5,SER连接P3^4。数据由74H595串行输入然后并行输出到LED 点阵,同时数据由p0口输出到LED点阵中 3硬件资源说明 74H595当SRCLK和RCLK为0时,清除74H595的数据,SRCLK置1时,数据串行输入,RCLK置1数据并行输出 8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮; 4.软件设计 1硬件资源使用设置说明 需要将JOE跳线帽接GND,74H595的SRCLK置1时,数据串行输入,RCLK置1数据并行输出,存储器中先存储{0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}的一维数组和{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00}, {0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00}, {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}, {0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00}, {0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00}, {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},

字符式LCD1602移动显示

物理与电子工程学院 《单片机原理与接口技术》课程设计报告书 设计题目:字符式LCD移动显示设计 专业: 班级: 学生姓名: 学号: 指导教师: 2015年11 月16 日

专业:班级:

本次课程设计用到的单片机是STC12C5A60S2,以STC12C5A60S2为控制核心,以LCD1602液晶为显示模块。通过编程的方式让LCD1602液晶显示字符,采用移屏显示。首先把所要显示的字符写在LCD1602的地址为10到27和50到67的隐藏显示区域,然后经过移屏指令把所要显示的字符移动到LCD1602的地址为00到0F和40到4F的显示区域。 关键词:STC12C5A60S2;1602;移屏显示

1 STC12C5A60S2简介 (1) 1.1 STC1602的性能 (1) 1.2 引脚动能 (2) 2 1602LCD简介 (3) 3 硬件设计 (6) 4 软件设计 (7) 5 仿真 (9) 6 心得体会 (9) 参考文献 (10) 附录 (11)

1 STC12C5A60S2简介 1.1 STC1602的性能 本次课程用STC12C5A60S2作为控制核心,下面是有关STC12C5A60S2的介绍:STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(T1)的单片机,是高速/功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250k/s),针对电机控制,强干扰场合。 (1) 增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051; (2) 工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机) (3) 工作频率范围:0-35MHZ,相当于普通8051的0~420MHZ; (4) 用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节; (5) 片上集成1280字节RAM; (6) 通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统 I/O 口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20ma; (7) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片; (8) 有EERROM功能(STC12C5A60S2/AD/PWM无内部EERROM); (9) 看门狗: (10)内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可以直接1K电阻到地); (11)外部掉电检测电路:在P4.6口有一个抵押门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机,误差为+/-3%; (12) 共有4个16位定时器,2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟; (13) 外部中断I/O口7路,PWM(2路)/PCA(可编程计数器阵列2路); (14) A/D转换,10位精度ADC,共8路,转换速度可达250K/S; (15) 通用全双工异步串行口(UART),由于STC12系列是高速的8051,可在用定时器或PCA软件实现多串口; (16) STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RXD2/P1.2,TXD/P1.3;工作温度范围:-40~+85℃(工业级)/0~+75℃(商业级); (17) 封装:PDIP-40,LQFP-44,LQFP-48,I/O口不够时,可用到2到3 根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可以用A/D键盘扫描来节省I/O口,或者双用CPU,三线通信,还多了串口。

(完整word版)字符串动画显示汇编语言程序设计

目录 1总体方案论证 (1) 1.1题目功能分析 (1) 1.2算法说明 (1) 2流程图设计及说明 (2) 2.1主程序流程图设计 (2) 2.2分布具体功能实现流程图设计 (3) 2.2.1字符串右移 (3) 2.2.2字符串下移 (4) 2.2.3字符串闪烁 (5) 3软件设计关键问题或程序段落说明 (5) 3.1提示输入字符串显示功能实现 (5) 3.2向右、向下移动功能实现 (7) 3.3字符串大小写变化实现 (9) 3.4颜色变化功能实现 (10) 3.5退出功能实现 (10) 4调试说明、结果记录及分析 (11) 4.1调试说明 (11) 4.2结果记录与分析 (11) 4.2.1 提示输入字符串 (11) 4.2.2输入后显示字符串 (12) 4.2.3在特定位置从无到有显示 (12) 4.2.4在特定位置向右移动 (13) 4.2.5在特定位置向下移动 (13) 4.2.6小写变成大写加闪烁 (14) 5课程设计收获及心得 (15) 6参考文献 (16)

字符串动画显示汇编语言程序设计 1总体方案论证 1.1题目功能分析 (1)屏幕提示输入字符串; (2)输入完成后,字符动画显示,显示方式可为:从无到有,从左到右,从上到下,大小写变化、颜色变化等; (3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。 1.2算法说明 (1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能; (2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能; 大小写变化则通过将输入字符与‘a’和‘z’比较,若为小写字母,则减去20H,否则不变; 颜色变化则通过INT 10H的09H功能循环调用实现; (3)退出功能通过将输入‘Q’和‘q’与其ASC 比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。

微机原理字符串动画显示6

微机原理课设报告 学生姓名:常卫洪学号:130704101 专业班级:电子科学与技术131班 课程名称:微型计算机原理及应用技术 学年学期:2015-2016学年第1 学期 指导教师:赵艳 2 015年12 月

课程设计成绩评定表

目录 一、设计目的--------------------------------------------4 二、设计任务与要求-------------------------------------4 三、小组分工--------------------------------------------4 四、实现方法--------------------------------------------4 五、功能效果展示---------------------------------------11 六、改进以及及建意-------------------------------------13 七、心得体会---------------------------------------------14 八、参考资料--------------------------------------------14 九、附源程序--------------------------------------------14

一、设计目的: 1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序; 3、熟悉常用的DOS功能; 4、小组合作完成设计题目。 二、设计任务与要求 设计内容要求: 1、菜单 内容包括:①输入字符串;②字符串动画显示;③退出。 2、输入字符串 选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。 3、字符串动画显示 所示字符串在一矩形框内一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,重复上述过程直至按任意键,则停止字符串动画显示返回到主菜单。 4、在主菜单中选择退出项,则结束程序返回DOS。 三、进度及分工安排 1.进度安排

微机原理课程设计之字符串动画显示

disp macro x,y, lengths,color,flag,var mov ah,13h;fun number mov al,1;the monitor show model mov bh,0;page num mov bl,color;color mov cx,lengths;str lengths mov dh,x;str line mov dl,y;str col ife flag mov bp,offset var else mov bp,var endif;set the bp value int 10h endm ;--------------------------------------- data segment line equ 2 color equ 5fh ;color_board equ 3Dh line1 db 177,56 dup(177),177 line2 db 177,56 dup(' '),177 line3 db 177,56 dup(177),177 ll equ $-line3 xx equ (80-ll)/2 line4 db "serial ports com1 and com2 automatic test program " l equ $-line4 i equ (80-l)/2;每次右移位显示的起始列号为I j equ i+l-1;第一次左移位显示的起始列号为J lorg db j+1 lorg1 db l/2+20-3 lorg2 db l/2+i+3 count dw 0 count1 dw 0 data ends ;----------------------------- CODE SEGMENT ASSUME CS:CODE,DS:CODE,es:data start: MOV AX,CODE MOV DS,AX mov ax,0b800h

微机实验报告:基于中断的字符串屏幕动态显示

基于中断的字符串屏幕动态显示 一.实验要求 利用系统定时源设计1CH中断程序,要求每隔一定时间在系统机屏幕上显示一行字符串。显示十行后自动结束,并且在显示十行过程中按任意键也可结束。 二.实验设备 硬件:PC机。 软件:“未来汇编”汇编语言开发环境 三.实验程序 FILENAME:634.ASM .486 DATA SEGMENT USE16 OLD1C DD ? ICOUNT DB 18 COUNT DB 10 MESSAGE DB 0DH,0AH, 'B10010937JLS$' DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX CLI CALL READ1C CALL WRITE1C STI SCAN: MOV AH,1 INT 16H JNZ RE CMP COUNT,0 JNZ SCAN RE: CALL RESET MOV AH,4CH INT 21H

SERVICE PROC PUSHA PUSH DS MOV AX,DATA MOV DS,AX DEC ICOUNT JNZ EXIT MOV ICOUNT,18 MOV AH,09H MOV DX,OFFSET MESSAGE INT 21H DEC COUNT EXIT: POP DS POPA IRET SERVICE ENDP READ1C PROC MOV AX,351CH INT 21H MOV WORD PTR OLD1C,BX MOV WORD PTR OLD1C+2,ES RET READ1C ENDP WRITE1C PROC PUSH DS MOV AX,CODE MOV DS,AX MOV DX,OFFSET SERVICE MOV AX,251CH INT 21H POP DS RET WRITE1C ENDP RESET PROC MOV DX,WORD PTR OLD1C MOV DS,WORD PTR OLD1C+2 MOV AX,251CH INT 21H RET RESET ENDP CODE ENDS END BEG

微机原理字符串动画显示64639

课程设计报告 学生姓名:甄晓学号:130704121 专业班级:电科131班 课程名称:微型计算机原理及应用技术 学年学期:2015—2016学年第一学期 同组人员:张思雨张文娟张哲姚博朗指导教师:赵艳 2 0 15年12月

课程设计成绩评定表

目录 一设计目的 (1) 二设计任务和要求 (1) 三设计内容 (1) 四源代码以及主要代码分析 (5) 五效果及功能展示 (12) 六自己的贡献和心得体会 (14)

字符串的动画显示程序设计 一、设计目的: 1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序; 3、熟悉常用的DOS功能; 4、小组合作完成设计题目。 二、设计任务和要求 1、设计字符串的动画显示程序 2、程序设计基本要求 1)菜单 内容包括:①输入字符串;②字符串动画显示;③退出。 2)输入字符串 选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。 3)字符串动画显示 所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。 4)在主菜单中选择退出项,则结束程序返回DOS。 三、设计内容: 1、使用的DOS功能:

1) 显示字符串 MOV AH,09H INT 21H ;入口参数DS:DX=缓冲区2) 键盘输入一个字符 MOV AH,01H INT 21H ; AL=输入的字符3)终止当前程序并返回调用程序 MOV AH,4CH INT 21H ;AL=退出码4)输入字符串 MOV AH,0AH INT 21H ;入口参数DS:DX=缓冲区 2、使用工具和软件: PC机一台,MASM汇编软件 3、流程图: 1) 字符串从右向左移动

南邮基于中断的字符串动态显示

实验报告 (2011 / 2012 学年第二学期) 课程名称微型计算机原理与接口技术 实验名称基于中断的字符串动态显示 实验时间年月日指导单位 指导教师 学生姓名班级学号 学院(系) 专业

实验报告 实验名称基于中断的字符串动态显示指导教师 实验类型验证实验学时2实验时间 一、实验目的和要求 实验目的:掌握8259的结构、工作原理、工作方式、初始化及应用编程;掌握微机系统中断程序的设计。 要求:①基本要求:每隔1秒钟,在屏幕中央显示一行自己的学号,显示10次后程序自动退出。 ②高级要求:每隔1秒钟,在屏幕中央以水平滚动的方式动态显示 自己的学号,循环往复,直到用户敲击键盘为止。 二、实验环境(实验设备) 未来汇编 8259中断控制器

三、实验原理及内容 实验原理:系统定时器每隔55ms产生一次日时钟中断,中断18次为990ms,接近一秒钟,由于日时钟中断每次都要调用1CH中断,因此可以设计新的1CH型的中断服务程序,对日时钟中断进行计数,计满18次显示一次学号。实验内容:【程序代码】 .486 DATA SEGMENT USE16 ;数据段定义 NUM DB 'B11010105',0AH,0DH,'$' OLD1C DD ? ICOUNT DB 18 ;中断计数初值 FLAG DB 0 DATA ENDS CODE SEGMENT USE16 ;代码段 ASSUME CS:CODE,DS:DATA START: MOV AX, DATA ;DS段赋值 MOV DS, AX MOV CX,10 MOV FLAG,0 CLI ;关中断 CALL READ1C CALL WRITE1C STI ;开中断 LAST: OR FLAG,0 JZ LAST MOV FLAG ,0 MOV AH,9 MOV DX,OFFSET NUM INT 21H ;显示一行

微机原理字符串动画显示

HEBEl UNIVERSlTY OF SClENCE AND TECHNOLOGY 课程设计报告 学生姓名:甄晓学号:130704121 专业班级:电科131班 课程名称:微型计算机原理及应用技术 学年学期:2015—2016学年第一学期 同组人员:张思雨张文娟张哲姚博朗 指导教师:赵艳 20 15年12月

课程设计成绩评定表

一设计目的 (1) 二设计任务和要求 (1) 三设计内容 (1) 四源代码以及主要代码分析 (5) 五效果及功能展示 (12) 六自己的贡献和心得体会 (14)

字符串的动画显示程序设计 一、设计目的: 1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉DoS环境以及在DoS下会调试编写好的汇编程序; 3、熟悉常用的DOS功能; 4、小组合作完成设计题目。 二、设计任务和要求 1、设计字符串的动画显示程序 2、程序设计基本要求 1 )菜单 内容包括:①输入字符串;②字符串动画显示;③退出。 2)输入字符串 选择该项后, 可以输入一个字符串. 该字符串即为动画显示时所显示的字符串. 3)字符串动画显示 所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。 4)在主菜单中选择退出项,则结束程序返回DoS。 三、设计内容: 1、使用的DOS功能: 第 1 页共15 页

1) 显示字符串MOV AH,09H INT 21H ;入口参数DS:DX缓冲区 2) 键盘输入一个字符MOV AH,01H INT 21H ;AL=输入的字符 3) 终止当前程序并返回调用程序MOV AH,4CH INT 21H ;AL=退出码 4) 输入字符串MOV AH,0AH INT 21H ;入口参数DS:DX缓冲区 2、使用工具和软件: PC机一台,MASI汇编软件 3、流程图: 1) 字符串从右向左移动 第2 页共15 页

相关主题
文本预览
相关文档 最新文档