文档库 最新最全的文档下载
当前位置:文档库 › 七段码显示汇编语言程序设计

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

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

课程设计任务书

学生姓名专业班级

指导教师黄珍工作单位自动化学院

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

初始条件:

采用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 界面。屏幕上出现提示“if you want to quit,please press 'q' or 'Q'!”字样。同时模拟七段数码管循环显示数字从F 依次到0。若在键盘输入'q' or 'Q'则退出该程序,如果输入的为其他符号或者没有输入则程序继续运行。

1.2 算法说明

由于程序需要在DOS 界面上显示七段数码管,所以要模拟七段数码管。在数据定义的时候要给予定义。

七段码显示器字形与代码的对应关系如下:

本程序采用的是向左循环,根据标识符CF 是1或者是0来判断是否开启相对应的模拟数码管,故表1-1中代码(B )代码为高七位有效。

由于本程序需要循环显示数字F-0,所以数据段定义的七段码的数字为0fch,60h,0dah,0f2h,66h,0b6h,0Beh,0e0h,0feh,0f6h,0EEH,3EH,9CH,7AH,9EH,8EH (0-F )。

然后程序循环显示每一位数字,从所赋初值开始,以此减1循环显示,循环的同时检测键盘是否有输入,如果有输入则与'q'和'Q'相比较,如果输入的是这两个则结束循环,否则循环继续。每次循环中调用延时子程序来达到调节数码管刷新的频率。

1

2 3

4

5

6

7

表1-1七段码显示字形与代码的对应关系

2 程序流程图设计及其说明

2.1 程序流程图

A

图2-1 程序流程图

2.2 程序流程图说明

从程序流程图可以看出,程序一旦开始运行就不会自动停止,需要人工输入“Q”或者“q”来终止程序。程序分为如下部分:七段码数据定义部分;循环显示数字部分;显示每一个数字部分;延时部分;判断键盘输入部分。

七段码数据定义部分:由于程序需要在DOS界面上显示七段数码管,所以要模拟七段数码管。故刚开始定义模拟数码管,并规定好每段数码管的偏移量。

循环显示数字部分:初始赋予起始循环数字,并清屏,定义光标,根据循环数字逐一显示。当循环数字小于0时返回至初始值,继续循环。

显示每一个数字部分:根据定义的代码,采用做循环左移指令,根据CF位来选择对应数码管段,开启则继续保留,关闭则用空格填充。

延时部分:利用LOOP循环指令,延时为总循环次数*系统执行一条指令时间。

判断键盘输入部分:根据键盘是否有输入以及输入的是否为“Q”或者“q”来终止程序,否则继续循环。

3程序段落的说明

3.1 数据段定义

DATA SEGMENT

BUFF DB ' -- ',0AH,0DH,35DUP( )

DB '| |',0AH,0DH,35DUP( )

DB ' -- ',0AH,0DH,35DUP( )

DB '| |',0AH,0DH,35DUP( )

DB ' -- ',0AH,0DH,35DUP( ),24H

MEM DB207DUP(?)

VAL DB1,43,125,165,123,41,83

TAB DB0fch, 60h, 0dah, 0f2h, 66h, 0b6h, 0Beh, 0e0h, 0feh, 0f6h, 0EEH, 3EH, 9CH, 7AH, 9EH, 8EH

MESSAGE DB 'If you want to quit,please press ''q'' or ' 'Q''!' ,0AH,0DH,0AH,0DH, 35DUP( ),24H

NUMBER DB ?

DATA ENDS

在数据定义段,BUFF定义了模拟七段数码管的显示,其中35 dup ( )是将七段数码管显示在了屏幕中间。同时给为BUFF开辟空间MEM,开辟此空间让每次显示不至于破坏BUFF数据。同时定义VAL为每段数码管在BUFF里面的偏移量,TAB为0-F的每一位数字的七段数码管显示编码,以及循环显示的数字个数即起始显示数字NUMBER。MESSAGE为定义系统提示退出的信息。

3.2 程序初始化

CODE SEGMENT

ASSUME DS:DATA ,CS:CODE ,ES:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

DS和ES对应于数据段DATA,CS对应于代码段CODE,并将DATA的地址赋予DS和ES。

3.3 清空显示屏

A1:

MOV AH,06H

MOV AL,0

MOV BH,7

MOV CX,0

MOV DX,986FH

INT10H

采用BIOS中断INT 10H的06H功能,AH=06H是向上滚屏,AL是滚动行数,当AL=0时是清屏,BH是空白区域的缺省属性,(CH、CL)是窗口的左上角位置(Y 坐标,X坐标),(DH、DL)是窗口的右下角位置(Y坐标,X坐标)

3.4 重置光标

MOV AH,02H

MOV BH,0

MOV DX,610H

INT10H

采用BIOS中断INT 10H的02H功能,用文本坐标下设置光标位置。BH为显示页码数,DH是行(Y坐标),DL是列(X坐标)。

3.5 数码显示处理工作

LEA SI,BUFF

LEA DI,MEM

CLD

MOV CX,207

REP MOVSB

将BUFF的内容传至MEM中,开辟此空间让每次显示不至于破坏BUFF数据。用CLD使DF=0,当DF=0时地址往增加方向移动。

3.6 取得计数并为下次循环准备

MOV BL,NUMBER

MOV AL,TAB[BX]

CMP BL,0

JL ROUND

DEC BL

MOV NUMBER,BL

取得初始计数NUMBER以及其在定义的数据段TAB中的数码编码。判断NUMBER 数值是否小于0,如果小于0则跳转到程序的开头ROUND重新为NUMBER赋值,如果NUMBER不小于0则将NUMBER减1后的数值赋给NUMBER作为下次循环的初值。

3.7 一个数字的数码管显示

LEA DI,VAL

MOV CX,7

B1:

ROL AL,1

JC B2

MOV BL,[DI]

MOV SI,BX

MOV MEM[SI],20H

MOV MEM[SI+1],20H

B2:

INC DI

LOOP B1

为CX赋值7,因为每个七段数码管有7个部分要显示,将数字的数码编码每一位循环左移到CF中,然后判断CF,如果是1则跳转到B2(该段数码管显示),如果是0则继续执行下面的程序,由于每个数码管占两个字节所以用20h (空格)填充MEM[SI]跟MEM[SI+1]以完成原字符的模拟。

3.8 显示程序

MOV AH,09H

MOV DX,SEG MESSAGE

MOV DS,DX

MOV DX,OFFSET MESSAGE

INT21H

MOV AH,09H

MOV DX,OFFSET MEM

INT21H

调用DOS的09H号功能输出字符,显示所需要输出的字符。首先输出数据段定义的系统提示信息。然后由于数字数码管模拟部分已经存储在MEM中,所以显示MEM的内容就是显示的是该数字的数码管模拟。

3.9 程序延时部分

PUSH CX

PUSH DX

MOV DX,10000

C1:

MOV CX,65500

C2:

LOOP C2

DEC DX

JNZ C1

POP DX

POP CX

利用LOOP循环来延时,延时时间为10000*65500*系统执行一条指令时间

3.10 判断键盘输入部分

D1:

MOV AH,0BH

INT21H

CMP AL,0

JNZ D2

JMP A1

D2:

MOV AH,08H

INT21H

CMP AL,'Q'

JZ EXIT

CMP AL,'q'

JZ EXIT

JMP A1

D1调用DOS的第0BH号功能,判断AL中的数值,如果为00H则有输入跳转D2判断输入的字符,如果为0FFH则直接跳转到AL循环执行下一个数字的显示。

D2调用DOS的第08H号功能,判断AL中的是否为“Q”或者“q”,如果是两者中的一个则调转到EXIT结束DOS以及跳出语句。如果不是则跳转到A1显示下一个数字。

3.11 结束DOS以及跳出语句

EXIT:

MOV AX,4C00H

INT21H

CODE ENDS

END START

程序至此结束。

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

运行程序结果倒数从F到0如下列截图4-1到4-16所示:F:

图4-1显示结果F

E:

图4-2显示结果E

D:

图4-3显示结果D

C:

图4-4显示结果C

B:

图4-5显示结果B A:

图4-6显示结果A 9:

图4-7显示结果9 8:

图4-8显示结果8 7:

图4-9显示结果7

6:

图4-10显示结果6 5:

图4-11显示结果5 4:

图4-12显示结果4 3:

图4-13显示结果3 2:

图4-14显示结果2

1:

图4-15显示结果1

0:

图4-16显示结果0 在程序运行的任何时候按“Q”或者“q”程序退出。

5 课程设计收获及心得体会

这次微机原理课程设计总共进行了一个多星期,虽然短暂,但过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。

刚开始拿到题目,扫了一眼之后,发现居然是七段码显示汇编,心里难免有点轻视,书上例题7-1就跟这差不多,估计没什么难度。但实际动手操作时才发现了问题,没有电子数码管,也无法运用8253,必须在DOS界面上显示数码管。以前在做微机实验的时候,由于程序是事先汇编好的,我主要研究主程序,并没有涉及这一块。翻书查看,也没有找到相关资料。无奈之下,只好上网搜寻有关BIOS和DOS的指令,尤其重点查看了INT 10H和INT 21H。理解了很久才略懂一些,尝试着写出了有关界面的程序。

我刚开始忙着写程序,常常写到一半就断了思路,无法继续。这时候我才想起老师在上课的时候总是强调要先画流程图,以前我其实并不赞同,认为这是浪费时间,但是这次我尝试了一下,把大概的框架写好,然后依据框架一点一点编程序,忽然觉得简单了很多。通过程序方框图,才能明白每一步要做什么,需要完成什么任务。有了清晰的思路之后,在调试程序中才能更容易查出出错的部分。通过这次课设,我认识到了我以前对流程图的观点是错误的,同时也懂得了如何更加合理的利用流程图汇编程序。

将整体程序编完后便进行了调试,不得不说,调试程序也是一个技术活。我常常看到程序本身能运行,却显示不出想要的结果。只好根据自己的理解,一点一点慢慢地推测问题的所在,然后修改。这需要扎实的理论基础,也需要相当的耐心和仔细,花费了大量时间之后,终于得到了想要的结果。

通过这次课程设计使我懂得了理论与实际相结合的重要性,光学理论知识也许实际操作时什么都做不了,只有提高自己的动手能力和独立思考的能力,才能随机应变,解决各种难题。

这次微机原理的课程设计是一个发挥所学知识的舞台,巩固了所学知识并且学会了如何应用到实际工作当中。在同学和老师的帮助下受益匪浅。

参考文献

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

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

版社,2001

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

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

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

2000

附录

程序清单:

DATA SEGMENT

BUFF DB ' -- ',0AH,0DH,35DUP( );定义模拟数码管

DB '| |',0AH,0DH,35DUP( )

DB ' -- ',0AH,0DH,35DUP( )

DB '| |',0AH,0DH,35DUP( )

DB ' -- ',0AH,0DH,35DUP( ),24H

MEM DB207DUP(?);开辟此空间让每次显示不至于破坏BUFF数据

VAL DB1,43,125,165,123,41,83;每段数码管在buf的偏移量

TAB DB

0fch,60h,0dah,0f2h,66h,0b6h,0Beh,0e0h,0feh,0f6h,0EEH,3EH,9CH,7AH,9EH, 8EH;0-F的10个数的数码编码,最低位不空,其他从左往右,为0的则关闭相应数码管

MESSAGE DB 'If you want to quit,please press ''q'' or

''Q''!',0AH,0DH,0AH,0DH,35DUP( ),24H;系统提示信息

NUMBER DB ?

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA ,CS:CODE ,ES:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

ROUND:

MOV NUMBER,15

A1:

MOV AH,06H;向上滚屏

MOV AL,0;滚动行数(0—清窗口)

MOV BH,7;空白区域的缺省属性

MOV CX,0;窗口的左上角位置(Y坐标,X坐标)

MOV DX,986FH;窗口的右下角位置(Y坐标,X坐标)

INT10H

MOV AH,02H;光标位置

MOV BH,0;显示页码

MOV DX,610H;DH=行(Y坐标),DL=列(X坐标)

INT10H

LEA SI,BUFF;将BUFF的内容传送到MEM中

LEA DI,MEM

CLD;DF=0,地址往增加方向移动

MOV CX,207

REP MOVSB;每执行一次CX减1,直至CX减到0

MOV BL,NUMBER

MOV AL,TAB[BX];取得该数的数码编码

CMP BL,0;判断计数bl是否为0

JL ROUND

DEC BL

MOV NUMBER,BL;把减1后的bl赋值给timer作为下次循环开始时显示的初值

LEA DI,VAL;取各段数码管在VAL的偏移量

MOV CX,7;所需要检测的位数

B1:

ROL AL,1;左移1位,七段数码管要移动7次

JC B2;如果是1,则该段数码管打开,直接跳到下一步

MOV BL,[DI];如果是0则该段数码管关闭,继续往下执行程序

MOV SI,BX

MOV MEM[SI],20H;用空格填充原字符完成模拟,每个数码管占两个字节MOV MEM[SI+1],20H

B2:

INC DI;数码管编码第一位的判断结束,进入下一位的判断

LOOP B1

MOV AH,09H;显示系统提示信息

MOV DX,SEG MESSAGE

MOV DS,DX

MOV DX,OFFSET MESSAGE

INT21H

MOV AH,09H

MOV DX,OFFSET MEM

INT21H

PUSH CX;延时程序,延时时间为10002*65500*系统执行一条指令时间

PUSH DX

MOV DX,10000

C1:

MOV CX,65500;赋值loop循环次数cx=65500

C2:

LOOP C2

DEC DX

JNZ C1;检测dx是否为0,不为0则返回C1处

POP DX

POP CX

D1:

MOV AH,0BH;调用DOS 功能0BH 检测键盘是否有输入

INT21H

CMP AL,0

JNZ D2;如果有输入,则跳转到D2

JMP A1;如果没有输入,则跳转到again执行下一个数字的显示D2:

MOV AH,08H;调用DOS 功能08H 判断键盘输入的字母

INT21H

CMP AL,'Q';判断键盘输入是否为Q

JZ EXIT;如果是则跳转到exit

CMP AL,'q';判断键盘输入是否为q

JZ EXIT;如果是则跳转到exit

JMP A1;重新跳回开头

EXIT:

MOV AX,4C00H;结束dos以及跳出语句

INT21H

CODE ENDS

END START

本科生课程设计成绩评定表

指导教师签字:

年月日

七段码数字钟课程设计讲解

目录 1 系统概述 (2) 1.1 数字钟的设计目的 (2) 1.2 基本内容及目标 (2) 2 方案论证 (3) 2.1 数字钟设计方案论证 (3) 2.2 数码管显示原理 (3) 2.3 控制任务要求 (4) 3 硬件设计 (4) 3.1 系统的原理方框图(略) (4) 3.2 主电路设计 (4) 3.3 I/O接点地址分配 (5) 3.4 编程元器件选型及地址分配 (6) 4 软件设计 (7) 4.1 主流程图 (7) 4.2 PLC梯形图 (8) 5 系统调试结果分析 (19) 设计心得 (20) 参考文献 (21)

1 系统概述 本设计共分五大章:第一章是系统概述,介绍了PLC系统概述和设计目的、设计内容以及实现的目标。第二章是方案论证,即数码管数字电子钟设计方案与工作原理介绍及应用。第三章是硬件设计,即数字电子钟的主电路设计及元器件的选型,进一步清楚的了解其内部结果和工作原理。第四章是软件设计,即数字电子钟的主流程及梯形图程序,第五章是系统调试,即硬件软件调试结果及结果分析等。设计心得即是本设计所取得的成果及其设计意义。针对本设计在制作过程所参考文献及资料的统一说明及介绍。 1.1 数字钟的设计目的 本系统采用计数器、显示器和校时电路组成。由LED数码管来显示PLC所输出的信号。总体方案设计由主体电路和扩展电路两大部分组成,其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。 1.2 基本内容及目标 1.1.1 PLC控制系统的基本内容包括如下几点 (1) 选择用户输入、输出设备以及输出设备驱动的控制对象,这些设备属于一般的电气元件,选择方法请参考其他有关资料。 (2) PLC的选择:PLC是控制系统的核心部件,对于保证整个控制系统的技术经济性能指标起着重要作用。选择PLC,应包括机型、容量、I/O点数、电源模块以及特殊功能模块的选择等。 (3) 设计控制程序:主电路、梯形图、控制系统流程图等。控制程序是控制整个系统工作的软件,是保证系统工作正常、安全可靠的关键,因此控制程序的设计必须经过反复调试、修改,直到符合要求为止。 (4) 编制系统的技术文件:包括说明书、电气图及电气元件明细表等。传统的电气图,一般包括电气原理图、电器布置图及电气安装接线图。 1.1.2 设计的实现目标 本设计运用SIMEINS S7—200软件控制系统为基础,设计了PLC电子时钟的梯形图。学习PLC的最终目的是能把它应用到实际控制系统中去,若遇到实际的工业控制项目,需用PLC进行控制,应如何着手去设计一个控制系统。

智能电表异常显示代码解决方案

智能电表异常显示代码解决方案 本文档对电表需要通过显示提示的以下4类异常代码做出原因分析以及解决措施。下面对各类异常的提示代码进行定义。所有异常提示的均以Err-作为前缀,代码为两位BCD数字。对于已经在液晶屏上有提示符号的将不再定义,按照型式规范中相关说明执行。 一、电表故障类异常提示 此类异常一旦发生需要将显示的循环显示功能暂停,液晶屏固定显示该异常代码。 异常名称异常类型异常代码处理方法 控制回路错 电表故障Err-01 返厂处理 误 ESAM错误电表故障Err-02 返厂处理 电表故障Err-03 返厂处理 内卡初始化 错误 时钟电池电 电表故障Err-04 返厂处理 压低 电表故障Err-05 返厂处理 内部程序错 误 存储器故障 电表故障Err-06 返厂处理 或损坏 时钟故障电表故障Err-07 返厂处理

二、事件类异常提示 此类异常一旦发生需要在显示的循环显示的第一屏插入显示该异常代码。 异常名称异常类型异常代码处理方法 过载事件类异常Err-51 须告知该表 用户减少负 荷 电流严重不平衡事件类异常Err-52 检查并调整 线路各相电 流 过压事件类异常Err-53 检查电压过 高原因 功率因数超限Err-54 检查线损是 否正常 超有功需量报警事件事件类异常Err-55 提醒用户减 少用电负荷 有功电能方向改变(双向计量除外)事件类异常Err-56 检查接线是 否正确 三、电表状态提示

此类异常一旦发生需要在显示的循环显示的第一屏插入显 示该异常代码。目前此类异常只有停电显示电池欠压、透支 状态两种,但是目前这两种异常均有液晶提示符号,因此 不另外定义。 四、IC卡相关提示 此类异常为IC卡处理过程中发生异常需要在卡处理结束后 进行提示。 异常名称异常类型异常代码处理方法 认证错误IC卡相关提示Err-10 插入密钥下装卡,待提示 成功后才能进行开户购电ESAM验证失败IC卡相关提示Err-11 返厂处理 客户编号不匹配IC卡相关提示Err-12 由售电大厅检查该用户卡 内表号或户号设置是否与 现场安装的电表表号或户 号相同,如不相同,首先 检查是否有装错表或插错 卡等现象。如果的确因为 制卡有误,可通过售电系 对卡内表号或户号进行更 改。

七段数码管译码扫描显示实验指导书

实验四 七段数码管译码扫描显示 一、实验目的: 通过对译码和串行扫描电路的设计,理解多位数码管串行扫描输出的工作原理以及七段数码管的译码以及串行扫描输出的设计方法。 二、实验条件: 1. 安装WindowsXP 系统的PC 机; 2. 安装QuartusII6.0 EDA 软件; 3. GW48型SOPC 开发平台; 三、实验要求: 通过VHDL 编程,实现7段数码管的译码输出,并通过所设计的串行扫描控制,对8个7段数码管扫描输出,要求8个数码管从左到右分别显示“1”、“2” 、“3” 、“4” 、“5” 、“6” 、“7” 、“8”,并且每一位都对应有一个显示控制端,当控制端为高电平时,对应数码管点亮,否则熄灭。具体接口如下所示: clk :时钟输入端,此信号是 串行扫描的同步信号。 data_control[7..0]:8个分别控制数码管显示的输入信号; led_addr[7..0]:对8个数码管进行串行扫描的输出控制信号; seg7_data[6..0]:驱动7段数码管各显示段的输出信号; 首先在QuartusII 上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC 开发平台中。在硬件实现中,要求: 1. 用实验平台的8个数码管输出显示(共阴接法),并且用其下方的8个按键分别控制对应数码管的显示与否。 注:采用I/O 模式5实现输入控制和输出显示方式。为了实现数码管的串行扫描,必须把数码管连接成串行控制输出电路,我们可以通过I/O 板上的跳线实现此操作,如右图所示,把模式数码管右方的跳线(JP24)向下连接即可。 此跳线必须下置,以实现数码管的串行扫描接法,具体电路如附录所示

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.wendangku.net/doc/6f7853043.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

6位7段LED数码管显示

目录 1. 设计目的与要求..................................................... - 1 - 1.1 设计目的...................................................... - 1 - 1.2 设计环境...................................................... - 1 - 1.3 设计要求...................................................... - 1 - 2. 设计的方案与基本原理............................................... - 2 - 2.1 6 位 8 段数码管工作原理....................................... - 2 - 2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 - 2.3 动态显示原理.................................................. - 4 - 2.4 unSP IDE2.0.0 简介............................................ - 6 - 2.5 系统硬件连接.................................................. - 7 - 3. 程序设计........................................................... - 8 - 3.1主程序......................................................... - 8 - 3.2 中断服务程序.................................................. - 9 - 4.调试............................................................... - 12 - 4.1 实验步骤..................................................... - 12 - 4.2 调试结果..................................................... - 12 - 5.总结............................................................... - 14 - 6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -

智能电表错误代码详解

智能电表错误代码详解一、国网表故障代码说明: 故障提示显示方式如图所示:

”符号,电池电压低,液晶有电池显示“如果停电后,电表时间会丢失,此时需要更换电能表。无意义Err 电表故障内部程序错误- 05 06 存储器故障或损坏-Err电表故障时间错误,需要观察电表时间是否有问题。电表故障单相表规范已定义 Err -08 时钟故障倍的最大电流时,用户使用负荷大于的1.2事件类异常-Err过载 51 -51”Err电表轮显“ Err事件类异常电流严重不平衡-对单相表无意义52 Un Err过压-53 事件类异常 1.15电压大于倍Err“54 Err 功率因数超限-0.2,电表轮显用户环境功率因数小于 54”-超有功需量报警事件 Err事件类异常-55 进出线反了,会提示‘Err-Err-变向能功有电方改 56',液晶有56 事件类异常 (双向计量除外)“”闪烁。 没有加密成功或远程更新密钥失败。认证错误-Err10 IC卡相关提示单相表规范已定义 11 验证失败ESAM 卡相关提示ICErr- Err用户号错,客户编号不匹配会提示。- IC卡相关提示12 用户卡或远程下发参数,用户卡或远程下发参数时,购电次数错,会Err卡相关提示充值次数错误IC 13 - 提示。”为最大值,超购电囤有液晶提示符号购电超囤积卡相关提示IC14 -Err设置成“999999.99积(购电时如果:剩余金额+本次购电金额)金额限值,则出现该提示。>囤积进现场参数设置卡对本IC卡相关提示 Err-15 连着多次对一只表插一张现场参数卡则第2 先插入一张现场表已经失效或者次就会出现该提示参数设置卡版本号大的卡,再插入一张比上或者次的版本号小的卡,就会出现该提示

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=3997 https://www.wendangku.net/doc/6f7853043.html,快速开发新闻系统在线播放 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=1243 https://www.wendangku.net/doc/6f7853043.html, 2.0快速入门(12)-https://www.wendangku.net/doc/6f7853043.html, 2.0网站快速导航 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=4825 https://www.wendangku.net/doc/6f7853043.html, 高级排错技巧 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.wendangku.net/doc/6f7853043.html,开发SQL Server 2005 OLAP应用 https://www.wendangku.net/doc/6f7853043.html,/so/so138.aspx?id=2535

用七段数码管显示简单字符

用七段数码管显示简单字符——译码器及其应 用 一、实验目的 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 C 2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。 建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0, DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。 参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。 新建仿真文件,给出输入信号,观察输出信号是否符合要求。 编译工程,完成后下载到FPGA 中。 拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。 基于3-8译码器和4-1选择器重复上述2.、中的步骤完成设计。

51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

七段数码管显示

七段数码管显示设计报告 目录 一、设计任务 二、题目分析与整体构思 三、硬件电路设计 四、程序设计 五、心得体会

一.设计任务 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通 信号分时控制各个数码管的公共端,循环依次点亮各个数码管。当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。 根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分: 1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4; 2. 动态扫描:实现动态扫描时序。 利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。 二.题目分析与整体构思 使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。当其值为“1”时,相应的7 段数码管被选通。当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管 SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。该四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接,当DIP 开关全部拨到上方时(板上标示为:7SEGLED),FPGA 的相应IO 引脚和四位7 段数码管连接,7 段数码管可以正常工作;当DIP 开关全部拨到下方时(板上标示为:EXPORT5),FPGA 的相应IO引脚与7 段数码管断开,相应的FPGA 引脚用于外部IO 扩展。 注意:无论拨码开关断开与否,FPGA 的相应IO 引脚都是与外部扩展接口连接的,所 以当正常使用数码管时,不允许在该外部扩展接口上安装任何功能模块板。 数码管选通控制信号分别对应4 个数码管的公共端,当某一位选通控制信号为高电平时,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要50×4=200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符。 三.硬件电路设计 设计结构图如下:

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

七段共阴数码管电子钟PLC程序设计原理

七段共阴数码管电子钟PLC程序设计原理 控制要求: 1.用四个七段数码管分别显示“时十位”、“时个位”、“分十位”和“分个位”。 2.用两个发光二极管显示“秒闪烁”。 3.有“预置”和“校对”时间功能。 I/O分配: X0—运行开关,X1—预置按钮;Y0—A,Y1—B,Y2—C,Y3—D,Y4—E,Y5—F,Y6—G;Y7—“秒闪烁”指示;Y13—“时十位”显示,Y12—“时个位”显示,Y11—“分十位”显示,Y10—“分个位”显示。COM端接线:COM1和COM2(Y0—Y7所对应的公共端)接24V直流电源“+”极,COM3(Y10—Y13所对应的公共端)和COM接24V电源“-”极。 一、总体设计思想 为了减少输出点数和接线,可以将四个共阴数码管的阳极都用Y0—Y6来驱动,但让其依次轮班接通;四个数码管的阴极分别用Y10—Y13来同步控制其接通“-”极的时间,以期达到四个数码管轮番显示的目的。 二、具体设计过程 1.用两个定时器T0和T1产生秒脉冲,用Y7输出。 2.用计数器C0将秒脉冲变成分脉冲。 3.用位左移指令[SFTL]形成分个位左移码。 4.用位左移指令[SFTL]形成分十位左移码。 5.用位左移指令[SFTL]形成时个位左移码。 6.用位左移指令[SFTL]形成时十位左移码。 7.用位左移指令[SFTL]安排四个数码管轮番接通。 8.将四个位左移码分别译成七段数码管的字显示码,并考虑四个数码管轮番接通问题。 9.将字显示码用Y0—Y6输出。 个位编码表 由编码表可得逻辑表达式: M40=(M1+M3+M4+M6+M7+M8+M9+M10)M100 M41=(M1+M2+M3+M4+M5+M8+M9+M10)M100 M42=(M1+M2+M4+M5+M6+M7+M8+M9+M10)M100 M43=(M1+M3+M4+M6+M7+M9)M100

用7段数码管显示9秒倒计时

1 设计内容及目标 1.1设计题目 用七段LED数码管显示倒计时 1.2设计要求 (1)用8255控制七段LED数码管。 (2)可选:用8254定时器显示时间。 (3)可选:可通过开关控制暂停计时、继续计时或时间清零。 1.3设计目的 通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。

2 设计原理 2.1设计思路 本次课程设计的题目是用七段LED数码管来显示倒计时。在这个设计中既要用到8255芯片,又要用到8254芯片对脉冲信号进行记数。设定初始值,每隔一秒,秒钟数字减一,每过60秒分钟个位减一。根据需要,需选择的芯片有8255、8259和8254。 2.2设计环境与器材 (1)PC微机一台。用于对程序的编写、编译和测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。 (2)微机原理实验箱一台。此设备必须能提供8254、8255、8259和数码管等必要芯片,并且能通过接受PC机传来的信息,显示出相应的功能,以支持电子时钟的实现。 (3)导线若干条。用于电路和芯片之间的连接。 2.3电路原理和主要芯片 2.3.1电路工作原理 首先利用程序硬性规定分、秒的起始时间为9。然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。 具体做法是将四个七段管显示器接到两片可并行接口8255芯片上,以此来控制七段管显示器的位操作以及段操作。并为之在数据段开辟一处空间,专门存放将要显示的数位代码。8254计时器将由PC机给定的频率加以分频,得到的新频率加到8259中断控制器的中断请求输入端。主程序为此可屏蔽中断设置专门的中断向量码。CPU获取此中断向量码后转向待需解决的程序进行操作。而这个程序便是整个主程序的心脏。通过它将使倒计时的显示时间以秒为减位,达到秒、分的减少。 2.3.2 8254主要功能 8254 是Intel 公司生产的可编程间隔定时器。是8253 的改进型,比8253 具有更优良的性能。8254 具有以下基本功能: ●有3 个独立的16 位计数器; ●每个计数器可按二进制或十进制(BCD)计数;每个计数器可编程工作于6 种不同工作方式;每个计数器允许的最高计数频率为10MHz;

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章 1.解答:有256个 2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元 E5 1E 3C 2A 3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH 4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX (3)乘法和除法DX,AX,AH,AL (4)保存段地址CS ,DS,ES,SS (5)表示运算结果为O FLAGS (6)将要执行的指令地址IP (7) 将要从堆栈取出数据的地址BP,SP,SS 8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应; 5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O 第三章 1.(1)立即寻址没有 (2)直接寻址7237H (3)使用BX的寄存器寻址没有 (4)使用BX的间接寻址 637DH (5)使用BX的寄存器相对寻址0D5B4H (6)基址变址寻址8E18H (7)相对基址变址004FH 2.根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H

智能电表错误代码详解

智能电表错误代码详解 一、国网表故障代码说明: 故障提示显示方式如图所示: 异常名称异常类型异常代码常见故障解释说明备注 控制回路错误电表故障Err-01 当剩余金额为0元时,电表继电器断开,触 发控制开关断电。当开关或电表出现异常电 能表仍能继续用电时,当递减1kWh后,液 晶显示“ERR-01”;此时断电后,“ERR-01” 消失,再继续走1kWh后电表液晶显示 “ERR-01”,当用户购电后,会自动扣除透 支电费,“ERR-01”消失。 单相表规范已定义 ESAM错误电表故障Err-02 安全芯片ESAM出现故障,需更换ESAM或电 能表进行维修。 单相表规范已定义内卡初始化错误电表故障Err-03 时钟电池电压低电表故障Err-04 电池电压低,液晶有电池显示“”符号, 如果停电后,电表时间会丢失,此时需要更 换电能表。 单相表规范已定义 内部程序错误电表故障Err-05 无意义 存储器故障或损坏电表故障Err-06 时钟故障电表故障Err-08 时间错误,需要观察电表时间是否有问题。单相表规范已定义过载事件类异常Err-51 用户使用负荷大于的1.2倍的最大电流时, 电表轮显“Err-51” 电流严重不平衡事件类异常Err-52 对单相表无意义 过压事件类异常Err-53 电压大于1.15倍Un 功率因数超限Err-54 用户环境功率因数小于0.2,电表轮显“Err -54” 超有功需量报警事件事件类异常Err-55 有功电能方向改变 (双向计量除外) 事件类异常Err-56 进出线反了,会提示‘Err-56’,液晶有 “”闪烁。 认证错误IC卡相关提示Err-10 没有加密成功或远程更新密钥失败。单相表规范已定义ESAM验证失败IC卡相关提示Err-11 客户编号不匹配IC卡相关提示Err-12 用户卡或远程下发参数,用户号错,会提示。 充值次数错误IC卡相关提示Err-13 用户卡或远程下发参数时,购电次数错,会 提示。 购电超囤积IC卡相关提示Err-14 设置成“999999.99”为最大值,超购电囤 积(购电时如果:剩余金额+本次购电金额 >囤积进金额限值,则出现该提示。) 有液晶提示符号 现场参数设置卡对本表已经失效IC卡相关提示Err-15 连着多次对一只表插一张现场参数卡则第2 次就会出现该提示或者先插入一张现场 参数设置卡版本号大的卡,再插入一张比上

新版汇编语言程序设计习题答案(钱晓捷主编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

相关文档
相关文档 最新文档