微机原理实验报告1
微机原理实验报告(1)

微机原理与接口技术实验报告学院:计算机科学与工程学院专业:计算机科学与技术班级:计算机四班学号:姓名:指导老师:宋芳2011年12月1日调试程序DEBUG的使用练习一、实验目的:1.学习DEBUG常用命令的使用2.熟悉8086的寄存器3.了解程序运行的过程二、实验内容:分别用DEBUG程序的命令实现对PC机RAM单元、CPU寄存器等的内容修改及简单程序的跟踪运行;三、具体实验过程Debug的R命令查看、改变CPU寄存器的内容Debug的D命令查看内存中的内容Debug的E命令改写内存中的内容Debug的U命令将内存中的机器指令翻译成汇编指令Debug的T命令执行一条机器指令当指令是修改段寄存器SS时,修改SP的指令也一下执行了。
也可以跳到指定代码段执行:-t=0B39:0106Debug的A命令以汇编指令的格式在内存中写入一条机器指令用G是断点执行,用-g=100 106 10D,默认为段地址是CS。
2、在debug中,遇到loop循环指令时,可以用p跳过;实验十八写文件实验一.实验要求编写程序,将内存区域中用DEBUG程序设置好的一连串数据,以ASCII码1AH为结束符作为一个文件,存入磁盘,文件名为DATA.AAA.二.实验目的掌握写文件的DOS功能调用方法。
三.实验说明1.对于文件的读写操作,DOS提供了两种手段,第一种手段使用FCB进行存取,第二种手段是文件代号法进行存取。
文件代号法支持目寻路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。
2.使用文件代号法,要求文件名(含路径)用ASCII串表示,所谓ASCII串,就是以空字符00H结尾的一串ASCII字符。
3.文件代号法存取时出现错误,则功能调用返回时,要将CF标志位置1,同时在AX寄存器中返回统一的出错代码。
程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。
四.实验代码DATA SEGMENTBUFFER DB 'my name is tang zhi quan,my number is 0905010215' COUNT EQU $-BUFFER ;the count of ASCII for bufferDA DB 'please enter the file absolute path and file name:$' ADDRESS DB 40,?,40 DUP (?)BUILD_FAIT DB OFFSET AX3,OFFSET AX4,OFFSET AX5AX3 DB 'path cannot find$'AX4 DB 'open file too much$'AX5 DB 'access method is wrong$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DA ;Prompt for the file absolute pathMOV AH,9INT 21HLEA DX,ADDRESS ;set file pathMOV AH,0AHINT 21HMOV AH,2 ;put crlfMOV DL,0AHINT 21HMOV DL,0DHINT 21HMOV AL,ADDRESS+1 ;the number of path to SI MOV AH,0MOV SI,AXMOV DX,OFFSET ADDRESS+2 ;the first address for file path MOV BX,DXMOV BYTE PTR [BX+SI],'$' ;the end add 'S' to mark the end MOV CX,00H ;file propertyMOV AH,3CH ;create a file,the absolute path is "ADDRESS" INT 21HJNC NEXT ;sign create file succesWRONG_SHOW: MOV BX,OFFSET BUILD_FAIT;show the reason for file establish SUB AX,3 ;fail code of ax is 3,4,5ADD BX,AX ;ds:dx is the wrong information's first address MOV DL,[BX]MOV DH,0MOV AH,9INT 21HNEXT: MOV BX,AX ;ax is the number of file handlesMOV CX,COUNT ;the number of bufferLEA DX,BUFFER ;ds:dx point the first address of buffer MOV AH,40HINT 21HINT 21H ;endMOV AX,4C00HINT 21HCODE ENDSEND STAR开始初始化用int 21H的9号调用显示提示输入文件的绝对路径用int21H的0AH号调用输入并回显在屏幕上,并存入变量ADDRESS中,在后面加入'$'结束符输出换行回车用int21H的3CH号调用创建文件DATA.AAA,属性为默认读写CF=1YN创建文件失败,显示错误信息用int21H中的40H调用将buffer中的数据写入文件用int21H的3EH调用关闭文件结束实验三 8255输出实验一.实验要求编写程序,一8255作为输出口,控制8个单色LED灯。
微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。
本实验报告将介绍我对微机原理实验的学习和思考。
实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。
通过实际操作,我加深了对计算机内部数据表示方式的理解。
这对于后续学习计算机系统结构和编程语言至关重要。
实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。
这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。
实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。
这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。
实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。
实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。
这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。
实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。
实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。
通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。
未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。
我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。
微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级2016级二O一八年十二月三十日微机原理综合实验实验一利用DEBUG调试程序调试程序段1、实验目的1)熟悉DEBUG有关命令的使用方法。
2)利用DEBUG掌握有关指令的功能。
3)利用DEBUG运行简单的程序段。
2、实验内容1)进入和退出DEBUG程序。
2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
3、实验准备1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。
2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。
3)阅读将AX左移9位的程序段。
4、实验步骤1)在DOS提示符下,进入DEBUG程序。
2)在DOS目录下启动DEBUG。
3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。
5、实验报告要求1)如何启动和退出DEBUG程序。
2)整理每个DEBUG命令使用的方法,实际示例及执行结果。
3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验结果:实验二分支程序实验1、实验目的1)掌握分支程序的设计方法。
2)掌握利用DEBUG修改参数、检查结果的方法。
3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
2、实验内容1)编写一个程序,显示AL寄存器中的两位十六进制数2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。
3、实验准备1)编写实验内容要求的两个程序。
2)写出调试以上程序,即修改程序参数,检查结果的操作方法。
3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。
微机原理实验一报告

微机原理实验一1.DEBUG 的基本操作:(1)从WINDOWS 进入DOS 之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R 命令,查看和记录CPU 各个寄存器的内容:-R 回车看到什么?AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 0000 ADD [BX+SI],AL DS:0000=CD(3)输入 A 命令,汇编下面的字符“WINDOWS”显示程序(DEBUG 调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H 处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII 码INT 21 ;INT 21 是DOS 功能调用,AH=2 代表2 号功;能。
这3 句合起来的功能是:显示DL 中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44INT 21MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U 命令反汇编上面的程序:-U 100问:这里100代表什么?反汇编从0100开始(5)输入G命令连续运行上面的程序,记录运行结果:-G=100AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 B402 MOV AH,02(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117-E 11B(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100WELCOMEAX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=011E NV UP EI PL NZ NA PO NC 16D3:011E CC INT 3(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车T=100AX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0102 NV UP EI PL NZ NA PO NC 16D3:0102 B257 MOV DL,57-g=100 106W-g=100 10aWE-g=100 10eWEL-g=100 11eWELCOME2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS:0100 8D360010 LEA SI,[1000] ;将EA=1000送入SI中0104 8D3E2010 LEA DI,[1020] ;将EA=1020送入DI中0108 8A04 MOV AL,[SI] ;(AL)←((SI))010A 240F MOV BL,AL ;将AL中的一个字送入BL010C 240F AND AL,0F ;(AL)←(AL)^(01H)010E E80E00 CALL 011F ;调用EA=011F中的指令0111 80E30 AND BL,F0 ;(BL)←(BL)^(F0H)0114 B90400 MOV CX,4 ;将立即数4送入CX中0117 D2EB SHR BL,CL ;将BL中的内容左移CL;中指出的位数,且每次移位最低位补0 0119 88D8 MOV AL,BL ;将BL中的一个字送入AL011B E80100 CALL 011F ;调用EA=011F中的指令011E F4 RET :返回指令011F 3C09 CMP AL,09 ;(AL)-09,根据结果设置标志位0121 7602 JBE 0125 ;执行EA=0125的指令0123 0407 ADD AL,07 ;(AL)←(AL)+07H0125 0430 ADD AL,30 ;(AL)←(AL)+30H0127 8805 MOV [DI],AL ;(AL)送入EA=(DI)的单元中0129 47 INC DI ;(DI)←(DI)+1012A C3 RET ;返回指令运行结果:1)写出执行上述程序的命令行-G=1002)程序执行后,[1020]=_____41_____,[1021]=___35______。
微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理实验报告V1.1_20080315_

实验一拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、试验电路
五、实验步骤
用连续或单步方式运行程序,检查4000H-4002H中内容变化情况。
六、思考
如何用断点方式调试本程序。
七、程序
八、程序调试结果
实验二数据排序实验
一、实验目的
熟悉8088指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其方法为用冒泡法将RAM中几个单字节无符号的正整数,按从大到小的次序重新排列。
三、程序框图
四、试验电路
五、实验步骤
在4000H-400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H-400AH中内容是否按从大到小排列。
在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。
六、思考
编一程序把4000H-400AH中内容按从小到大排列。
七、程序
八、程序调试结果。
微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加, 要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1.DATA2为首的5个内存单元中(低位在前), 结果送回DATA1处。
三、程序框图图3-1四、参考程序清单程序名: XIANGJ.ASMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?) DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC N EARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP A D2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五: 结果分析这次试验依次将相加数和被相加数存入AL, BL, 依次从低位向高位相加, 然后把结果放在内存中, 根据程序走向, 相加的结果依次放在内存地址DS:0000到DS:0004的位置上, 和我们实验预期结果一样。
微机原理的实验报告

微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。
二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。
2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。
3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。
4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。
三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。
(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。
观察实验现象并记录。
(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。
观察程序的执行结果,并记录相关数据。
(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。
观察实验现象并记录相关数据。
2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。
(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。
(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。
四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。
2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。
但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。
五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术课程设计报告题目液晶显示系统设计系别虞山学院年级09 专业电子科学与技术班级Y05109学号Y051092xx姓名xx指导教师周平职称讲师设计时间2011.12目录第一章系统设计 (1)1.1题目要求 (1)1.2方案论证 (1)1.3实施方案 (2)第二章硬件设计 (3)2.1硬件原理图 (3)2.2 实验部分接线: (5)第三章软件设计 (7)3.1 流程图 (7)3.2实验代码分析 (7)3.2.1显示左半屏 (7)3.2.2显示右半屏 (8)3.2.3 设置X、Y、Z (8)3.2.4 控制输出方式 (8)3.2.4 锁存数据 (8)第四章系统调试 (10)4.1调试手段 (10)4.2 调试过程中的问题 (10)4.3解决办法 (10)总结 (11)参考文献 (12)第一章系统设计1.1题目要求一、任务:利用取模软件建立标准字库,编制程序,在液晶显示器上显示汉字二、要求:(1)了解点阵式液晶显示器工作原理和显示方法;(2)掌握8088微机系统与液晶显示器之间接口设计与编程;(3)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计;(4)通过课程设计提高应用能力,分析问题和解决问题的能力;(5)培养查阅资料的习惯,训练和提高自学,独立思考的能力。
1.2方案论证1.方案一:(1)显示内存与液晶显示屏(LCD 128*64)的关系;(2)利用8255芯片的PA口作为液晶显示器接口的数据线,PC口作为其控制线,自建字库后,通过查表程序依次将字库中的字形代码送显示内存显示汉字或图形;(3)编程流程:开显示→设置页地址→设置Y地址→写数据表1→写数据表2;(4)显示控制指令表2.方案二:本设计是以单片机为核心控制器件的简单文字符号图像的LCD显示系统,通过硬件和软件的共同配合之下实现了在128*64分辨率的液晶屏上显示字符、汉字、数字的功能,系统由单片机和液晶显示屏构成。
AT89C51单片机内部有4KB可反复擦写的Flash闪速存储器、128位字节的RAM,可以根据系统所需存储容量的大小来扩展ROM和RAM,可以根据系统所需存储容量的大小来扩展ROM和RAM。
图1-2 控制模块原理图图1-3 AT89C51单片机示意图1.3实施方案经过小组对各个方案的讨论与研究,了解各方案的实施可行性,最终我们选择方案一。
因为方案一更接近我们本学期所学的内容,我们更能理解其原理和硬件设备,便于实验的进行。
而方案二中所用的硬件设备是实验室所不具备的,不能实现其功能;方案三中用到还未涉及到的单片机知识,光靠我们现阶段的知识储备以及网上的部分资料,并不能完成实验,所以最终我们确定方案一。
第二章硬件设计2.1硬件原理图图2-1 8255与LCD128*64的连线图CPU的AD0-AD7与8255的数据线D0-D7相连接,CPU的读/写控制信号与8255的读/写控制信号相连接,CPU的端口选择信号(A1、A0)与8255的端口选择信号(A1、A0)相连接,CPU片选信号CS(低电平有效)与8255的A口控制地址相连接。
各模块说明:图2-2 8255内部结构从图中可知,8255A由以下三部分组成:(1) 外设接口部分(数据端口A、B、C)a)端口A。
端口A内部包含一个8位数据输入锁存器和一个8位数据输出锁存/缓冲器。
b)端口B。
端口B内部包含一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。
c)端口C。
端口C内部包含一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。
通过向芯片写入方式选择控制字,端口C可以被分成两个4位端口。
(2) 内部逻辑(A组和B组控制电路)这两组控制电路,根据芯片内部的控制寄存器内容(存放着CPU输出的方式选择控制字)和“读/写控制逻辑”发出的读/写命令,控制两组端口的工作方式和读/写操作。
A组控制电路控制端口A、端口C高4位(PC7~PC4)。
B组控制电路控制端口B、端口C低4位(PC3~PC0)。
(3)CPU接口部分a)读/写控制逻辑电路地址线A1和A0、CS(片选)、RD(读控制)、WR(写控制)、RESET(复位)信号的组合,用来控制8255A进行数据信息、状态信息和控制信息的传输。
b)数据总线缓冲器它是一个8位的双向三态数据缓冲器,它是8255A与CPU数据总线的接口,所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传送的。
表2-1 LCD128*64部分引脚说明引脚号引脚名称电平功能说明4 RS(CS) H/L 并行的指令/数据选择信号(串行的片选信号,高有效)5 R/W H/L 并行的读写选择信号(串行的数据口)6 E(CLK) H/L 并行的使能信号(串行的同步时钟)7 DB08 DB19 DB2H/L 数据端口10 DB311 DB412 DB513 DB614 DB715 CS1 H/L ——16 CS2 H/L ——17 RST H/L 复位(低电平有效)LCD液晶显示屏的原理:LCD是依赖极化滤光器(片)和光线本身。
自然光线是朝四面八方随机发散的。
极化滤光器实际是一系列越来越细的平行线。
这些线形成一张网,阻断不与这些线平行的所有光线。
极化滤光器的线正好与第一个垂直,所以能完全阻断那些已经极化的光线。
只有两个滤光器的线完全平行,或者光线本身已扭转到与第二个极化滤光器相匹配,光线才得以穿透。
LCD正是由这样两个相互垂直的极化滤光器构成,所以在正常情况下应该阻断所有试图穿透的光线。
但是,由于两个滤光器之间充满了扭曲液晶,所以在光线穿出第一个滤光器后,会被液晶分子扭转90度,最后从第二个滤光器中穿出。
LCD由两块玻璃板构成,厚度规格有0.7mm,0.63mm,0.5mm(也可以通过物理或者化学减薄的方式做到更薄),其间由包含有液晶(LC)材料的3~5μm均匀间隔隔开。
因为液晶材料本身并不发光,所以需要给显示屏配置额外的光源,在液晶显示屏背面有一块导光板(或称匀光板)和反光膜,导光板的主要作用是将线光源或者点光源转化为垂直于显示平面的面光源。
背光源发出的光线在穿过第一层偏振过滤层之后进入液晶层。
液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。
在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小的光阀。
在液晶材料周边是控制电路部分和驱动电路部分。
当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。
2.2 实验部分接线:(1)CPU的AD0-AD7与8255的数据线D0-D7相连接(2)CPU的读/写控制信号与8255的读/写控制信号相连接(3)CPU的端口选择信号(A1、A0)与8255的端口选择信号(A1、A0)相连接(4)CPU片选信号CS(低电平有效)与8255的A口控制地址相连接(5)8255的PA7-PA0与LCD128*64的DB7-DB0相连接(6)8255的PC0与LCD128*64的RS端口连接(7)8255的PC1与LCD128*64的R/W端口连接(8)8255的PC2与LCD128*64的E端口连接(9)8255的PC4与LCD128*64的CS1端口连接(10)8255的PC6与LCD128*64的CS2端口连接(11)LCD128*64的/RST端口与实验箱上的/RST端口连接(12)在P.状态下,按SCAL(13)运行程序LCDQD.ASM;或在实验系统处于P.状态下输入[22E0] →[EXEC]即可第三章 软件设计3.1 流程图图3-1 程序流程图先对8255进行初始化,设置其A 口、C 口为输出状态。
先设置左半屏显示,再进行X 、Y 、PAG 的设置,左半屏便会显示要输出的内容,然后再设置右半屏显示,同样要设置X 、Y 、PAG 的值,右半屏也会显示要输出的内容,而且实验输出时是一行一行的输出,一行输出结束后才进行下一行的判断、输出。
3.2实验代码分析3.2.1显示左半屏在屏幕上输出字符时,在屏幕上显示左半屏的字。
首先要先对PC 口进行设置, PC4控制左半屏,通过对PC6和PC4的输入来选择左半屏输出。
MOV DX,PCTL;右半屏选通无效MOV AL,CS2NOUT DX,AL MOV AL,CS1 ;左半屏选通有效 OUT DX,AL CALL XPAGE ;设置X,Y,PAGCALL COM ;显示字符 图3-2 显示左半屏流程图选通左半屏设置X 、Y 、Z输出字符3.2.2显示右半屏在屏幕上输出字符时,在屏幕上显示右半屏的字。
首先要先对PC 口进行设置, PC6控制右半屏,通过对PC6和PC4的输入来选择右半屏输出。
MOV DX,PCTL MOV AL,CS1N ;左半屏选通无效 OUT DX,AL MOV AL,CS2 ;右半屏选通有效OUT DX,AL CALL XPAGE ;设置X,Y ,PAGCALL COM;显示字符图3-3 显示右半屏流程图3.2.3 设置X 、Y 、Z在液晶屏上显示字符,用Z 来控制循环(循环从第一行开始)。
用X 和 Y 分别来设置地址和页数,在数据输入后要先对数据进行锁存。
MOV ZR,0c0HMOV YR,40HMOV PAG,0B8HMOV DX,PAMOV AL,ZR ;设置Z=0OUT DX,ALMOV AL,YR ;设置YOUT DX,ALMOV AL,PAG ;设置页数OUT DX,AL 图3-4 设置X 、Y 、Z 的流程图 3.2.4 控制输出方式在液晶屏上输出字符,Y16就是控制输出一个字符,通过PA 口输出字符。
MOV Y16,10HMOV BX,OFFSET TAB5 J4: MOV AL,CS:[BX] MOV DX,PA OUT DX,AL ;PA 口输出 INC BX DEC Y16 CMP Y16,00H ;判断字符是否输出结束JNZ J42 图3-5 控制输出流程图J42: JMP J4 3.2.4 锁存数据当R/W=’L ’时,E 信号下降沿锁存DB7-DB0,当R/W=’H ’,E=’H ’时,DRAM 数据读到DB7-DB0。
选通右半屏设置X 、Y 、Z输出字符给ZR 、YR 、PAG 赋初值设置Z 设置Y 设置PAG Y16=16TAB 5的地址赋值给BX PA 口输出字符MOV DX,PCTL;PC1=0 MOV AL,RWNOUT DX,ALMOV AL,EN ;PC2=0OUT DX,AL 图3-6 锁存数据流程图用复位方式使PC1=0用复位方式使PC2=0第四章系统调试4.1调试手段调试工具:dice8088(1)利用dice8088完成代码的编辑,编译与连接(执行菜单项:“调试”,“编译程序”)。