微机实验报告数模转换器和模数转换器实验5篇

时间:2019-05-14 04:21:58下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《微机实验报告数模转换器和模数转换器实验》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《微机实验报告数模转换器和模数转换器实验》。

第一篇:微机实验报告数模转换器和模数转换器实验

课程名称

微机接口与汇编语言

实验项目

实验五

数/模转换器和模/数转换器实验

实验仪器 TPC-USB通用微机接口实验系统

系 别 计算机学院

专 业

班级/学号

学生姓名 实验日期 2013.12.19 成 绩 指导教师

胡信裕

实验五 数/模转换器和模/数转换器实验

一、实验目的

1.了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。2.了解模/数转换器的基本原理,掌握ADC0809的使用方法。二.实验设备

1.PC微机系统一套

2.TPC-USB通用微机接口实验系统 一套 三.实验要求

1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。

2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。3.实验前仔细阅读理解教材相关章节的相关内容,实验时必须携带教材及实验讲义。四.实验内容及步骤

(一)数/模转换器实验

1.实验电路原理如图:DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),编程产生以下锯齿波(从Ua和Ub输出,用示波器观察)

参考电路图

2.8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:

(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。

3.产生锯齿波只须将输出到DAC0832的数据由0循环递增。4.参考流程图:

参考流程图

(二)模/数转换器

1.实验电路原理图如图。

(一)的DAC的输出Ua,送入ADC0809通道1(IN1)。

连接参考电路图

2.编程采集IN1输入的电压,在屏幕上显示出转换后的数据(用16进制数)。3.ADC0809的IN0口地址为298H,IN1口地址为299H。4.IN0单极性输入电压与转换后数字的关系为:

其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。

4.一次A/D转换的程序可以为

MOV DX,口地址 OUT DX,AL

;启动转换

;延时

IN AL,DX

;读取转换结果放在AL中

五、实验程序设计和调试运行

1、程序设计

实验一:(生成的是锯齿波)io0832a

equ 290h(a)主程序

参考流程图

(b)显示子程序 code segment assume cs:code start: mov cl,0 mov dx,io0832a lll:

mov al,cl out dx,al inc cl

;cl加1 inc cl inc cl inc cl inc cl inc cl inc cl push dx mov ah,06h

;判断是否有键按下

mov dl,0ffh int 21h pop dx jz lll

;若无则转LLL mov ah,4ch

;返回

int 21h code ends end start

实验二 :(生成正弦波)DATA SEGMENT IO0832A EQU 290H SIN DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH DB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H DB 80H,66H,4EH,38H,25H,15H,09H,04H DB 00H,04H,09H,15H,25H,38H,4EH,66H

;正弦波数据 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DS,AX

;置正弦波数据的偏移地址为SI,LL:MOV SI,OFFSET SIN

;一组输出32个数据

MOV BH,32

;将数据输出到D/A转换器

LLL:MOV AL,[SI]

MOV DX,IO0832A

OUT DX,AL

MOV AH,06H

MOV DL,0FFH

INT 21H

JNE EXIT

MOV CX,1 DELAY:LOOP DELAY INC SI DEC BH JNZ LLL JMP LL EXIT:MOV AH,4CH INT 21H CODE ENDS END START

2.实验过程(步骤)和实验结果说明

(1)按图连接实验电路;

(2)在TPC-IDE操作环境下,用文本编辑器编辑实验源程序(EXP5.asm);(3)在IDE操作环境下,对源程序(EXP5.asm)进行编译和连接,生成生成链接文件(EXP5.obj)和可执行文件(EXP5.exe);

(4)运行IDE操作环境下的调试命令,调试可执行文件(EXP5.exe);

(5)运行IDE操作环境下的执行命令,运行可执行文件(EXP5.exe),结果显示为:

运行成功后,可以从示波器中看到相应的波形,通过调节示波器,波形会更加明显。

实验结果 锯齿波:

正弦波:

六、实验总结

通过此次实验,我了解了数/模和模/数转换器的基本原理,以及掌握了DAC0832和ADC0809芯片的使用方法。在实验过程中,对于填写代码空白这一项,感觉很锻炼对于程序的阅读和理解能力。当然也遇到了一些障碍,通过请教老师和同学,最后都顺利解决,此次实验收获很大。

第二篇:微机实验报告

自动化 学院 物联网 专业 1 班 学号

姓名 协作者 教师评定

实验一 操作训练及数码转换实验

一、实验目的

1)掌握80x86微机原理及接口技术教学实验系统的操作,熟悉Wmd86联级集成开发调试软件的操作环境。

2)掌握不同进制数及数码相互转换的程序设计方法。

二、实验设备

PC一台,td-pite微机/单片机教学实验装置一套。

三、实验内容与步骤 实验程序:

1、STAK SEGMENT STACK

DW 64 DUP(?)STACK ENDS DATA SEGMENT

ORG 0500H DATA1 DB 00H, 01H,02H,03H,04H,05H,06H,07H,08H,09H,10H

DB 11H,12H,13H,14H,15H

ORG 0600H DATA2 DB 16 DUP(?)DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET DATA1

MOV DI, OFFSET DATA2

MOV CX,0010H A1: MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

LOOP A1

MOV AH,4CH INT 21H CODE ENDS END START 编译连接后使用U命令查看DS地址为0208 使用G命令运行再用D命令查看结果正确

2、将ASCLL码表示的十进制数转换成二进制数 参考程序 略 利用E命令修改0500开始的数据输入34 35 后G命令运行再用D命令查看结果为DATA:0510 2D正确输入为12 95时对应结果为0C 5F 编程练习一:

1)编程实现将十进制数的ASCLL码转换成BCD码 要求:用E命令从键盘输入的五位十进制数的ASCLL码已存放在0500H起始的内存单元内(例25H、30H、32H、34H、65H),把它转换成BCD码后,再分别存入050AH起始的内存单元内。若输入的不是十进制数的ASCLL码,则对应的结果的存放单元内容为“FF” 程序代码:

STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DB 25H,30H,32H,34H,65H ORG 050AH DATA2 DB 5 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV CL,5 A1: MOV AL, [SI] CMP AL,30H JB A2 CMP AL,39H JA A2 AND AL, 0FH MOV [DI], AL JMP NEXT A2: MOV BYTE PTR [DI], 0FFH JMP NEXT NEXT: INC SI INC DI DEC CL JNZ A1 MOV AH,4CH INT 21H CODE ENDS END START 实验结果:

自动化 学院 物联网 专业 1 班 学号

姓名 协作者 教师评定

实验二:运算类编程实验

一、实验目的

1)掌握使用运算类指令编程及调试方法。

2)掌握运算类指令对各状态标志位的影响及其测试方法。3)学习使用软件监视变量的方法。

二、实验设备

PC一台,td-pite微机/单片机教学实验装置一套。

三、实验内容及步骤

4、除法运算

题目:十进制的除法。被除数和除数均已非压缩BCD数形式存放在内存中。试验程序:

STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT DATA1 DB 2 DUP(?)DATA2 DB 1 DUP(?)RESULT DB 2 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS:DATA START: MOV AX, DATA MOV DS, AX CALL INIT MOV SI, OFFSET DATA2 MOV BL, [SI] MOV SI,OFFSET DATA1 MOV DI, OFFSET RESULT MOV CL,0AH MOV AL,[SI] MUL CL ADD AL,[SI+01H] MOV AH,00H DIV BL MOV AH , 00H DIV CL MOV [DI],AX MOV AH,4CH INT 21H INIT: MOV SI,OFFSET RESULT MOV CX,0002H MOV AX,00H A1:MOV [SI],AL INC SI LOOP A1 RET CODE ENDS END START 用e命令赋值被除数09 02 除数04 g命令运行 d命令查看0072:0003 显示02 03 运行结果:

编程练习

2)已知在起始地址为0500H的内存单元中,存放一串数据:10H,20H,30H,40H,50H,60H.请编程求其平均值,并把平均值转换成BCD数存入0500H单元中。程序代码:

STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0500H DATA1 DW 10H,20H,30H,40H,50H,60H ORG 0510H DATA2 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 MOV AX,[SI] MOV CL, 5 A1: MOV BX,[SI+2] ADD AX,BX INC SI INC SI DEC CL JNZ A1 MOV BL,06H DIV BL MOV BL,0AH DIV BL MOV BH,AH MOV BL,10H MUL BL ADD AL,BH MOV [DI],AL MOV AH,4CH INT 21H CODE ENDS END START 用g命令运行再用d命令查看0772:0510中内容为56

自动化 学院 物联网 专业 1 班 学号311300 姓名 协作者 教师评定

实验三:分支、循环及子程序设计实验

一、实验目的

1)了解分支、循环子程序等程序的基本结构。

2)掌握分支程序、循环结构程序的设计和调试方法。3)掌握子程序的定义和调试方法。

二、实验设备

PC一台,td-pite微机/单片机教学实验装置一套。

三、实验内容和步骤 3.名次表 程序代码:

STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0100H DATA1 DB 10 DUP(?)ORG 0200H DATA2 DB 10 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SI,OFFSET DATA1 MOV CX,000AH MOV DI,OFFSET DATA2 A1: CALL AA1 MOV AL,0AH SUB AL,CL INC AL MOV BX,DX MOV [BX+DI],AL LOOP A1 MOV AH,4CH INT 21H AA1: PUSH CX MOV CX,000AH MOV AL, 00H MOV BX,0100H MOV SI,BX A2: CMP AL,[SI] JAE A3 MOV AL,[SI] MOV DX,SI SUB DX,BX A3: INC SI LOOP A2 ADD BX,DX MOV AL,00H MOV [BX],AL POP CX RET CODE ENDS END START 实验步骤:

汇编连接生成exe文件

用e命令输入:3CH,40H,47H,61H,4FH,5DH,52H,30H,56H,45H,等十个成绩。再用g命令运行d命令查看0722:0200.编程练习

2)有3个8位二进制数连续存放在0200H开始的内存单元中,设他们之中至少有两个数是相同的。编写程序找出与这两个数不同的数,把该数所在地址送到0204H单元,若三个数都相同则送0FFFFH到0204单元。程序代码:

STACK SEGMENT STACK DW 64 DUP(?)STACK ENDS DATA SEGMENT ORG 0200H DATA1 DB ? DATA2 DB ? DATA3 DB ? ORG 0204H DATA4 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS ,AX LEA SI,DATA1 LEA SI,DATA4 MOV AL,[SI] MOV AH,[SI+1] MOV BL,[SI+2] CMP AL,AH JZ A1 CMP AL,BL JZ A2 MOV [DI],SI JMP A4 A2: ADD SI,1 MOV [DI],SI JMP A4 A1: CMP AL,BL JZ A3 ADD SI,2 MOV [DI],SI JMP A4 A3: MOV [DI] ,0FFFFH A4:MOV AH,4CH INT 21H CODE ENDS END START 实验步骤:e0772:0200命令输入数据01 01 01g命令运行 的命令查看得到

运行结果:

第三篇:微机实验报告

微机实验报告

曾东明

实验一 输出字符‘A’

一、实验目的

1.通过这个简单的例子熟悉在微机上建立、汇编、链接和运行8086/8088汇编语言程序的过程。

2.掌握字符的显示方法。3.学习DOS系统功能调用。

二、实验内容

输出字符„A‟,程序流程图如图1-1所示。

图1-1输出字符„A‟程序流程图

源程序如下:

CODE

SEGMENT

ASSUME

CS:CODE

MOV

DL, 'A'

MOV

AH, 2

INT

21H

MOV

AH, 4CH

INT

21H

CODE

ENDS

END

三、实验设备

PC机一台,MASM汇编程序

四、实验步骤

1.用记事本将源程序输入,并存盘。

注意:源程序是用汇编语言语句编写的程序,并不能为机器所识别。源程序的扩展名为.ASM 2.用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)3.用LINK程序产生执行文件(EXE文件)4.执行程序

实验结果:

五、心得体会

第一次经历了汇编语言的上机过程,对在计算机上进行汇编语言程序设计的步骤不是很熟悉,对命令提示符的一些操作命令不懂,后来查阅了一些资料,比如可以在window7下按住shift,点击鼠标右键,在弹出的窗口里就可以打开命令提示符了。

六、思考题

1.请说出一个完整的汇编程序从编写到运行所需的步骤。(1)用编辑程序建立ASM源程序文件

(2)用宏汇编程序将.ASM源程序汇编成机器码的目标文件(OBJ文件)(3)用LINK程序产生执行文件(EXE文件)(4)在DOS命令行直接键入文件名执行该文件 2.修改源程序,改变屏幕显示的内容。修改的源程序: CODE

SEGMENT

ASSUME

CS:CODE

MOV

DL, 'D'

MOV

AH, 2

INT

21H

MOV

AH, 4CH

INT

21H

CODE

ENDS

END

实验二 数据的显示实验

一、实验目的

1.掌握屏幕上显示各种进制数据的方法。

2.掌握将内存中的二进制数转换为十进制、十六进制数的方法。

3.学会子程序的编写、调用及数据传递方法。

二、实验内容

1.把BX中的无符号二进制数转换成十进制数,在屏幕上显示出来。

2.把BX中的带符号二进制数转换成十进制数,在屏幕上显示出来。

3.求一个数据块(由10个单字节的无符号数组成)中的最大元素,并将结果以十进制数的形式在屏幕上显示出来。

4.求一个数据块(由20个单字节的带符号数组成)中的正数之和(和不超过字)和负数之和(和不超过字),并在屏幕上用十进制数的形式分别显示出两个和。

5.将寄存器BX中的二进制数转换成十六进制数,并在屏幕上显示出来。从高到低依次取出4位二进制数变为ASCII码输出即可。

三、实验设备:

PC机一台、masm汇编程序

四、实验步骤:

依照前面介绍的方法,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。

1.实验内容1(1)实验内容1的流程图,如图所示:

(2)实验内容1的程序:

CODE SEGMENT

ASSUME

CS: CODE

DEC_DIV MACRO

MOV

AX, BX

MOV

DX, 0

DIV

CX

MOV

BX, DX

MOV

DL, AL

ADD

DL, 30H

MOV

AH, 2

INT

21H

ENDM

START: MOV

BX, 0FFFH

MOV

CX, 1000

DEC_DIV

MOV

CX, 100

DEC_DIV

MOV

CX, 10

DEC_DIV

MOV

CX, 1

DEC_DIV

MOV

AH, 4CH

INT

21H

CODE ENDS

END

START(3)实验结果:

2.实验内容2(1)实验容1的程序: DATA SEGMENT A DW 1000 B DW 100 C DW 10 D DW 1 DATA ENDS CODE SEGMENT

ASSUME

CS: CODE,DS:DATA

START: MOV

AX,DATA

MOV

DS,AX

MOV

BX, 0FFEFH;-0017的补码是0FFEFH

OR BX,BX

JNS NEXT

NEG BX

AND BH,7FH

MOV DL,2DH

MOV AH,2

INT 21H

NEXT:

MOV

SI,OFFSET A

CALL

DEC_DIV

MOV

SI,OFFSET B

CALL

DEC_DIV

MOV

SI,OFFSET C

CALL

DEC_DIV

MOV

SI,OFFSET D

CALL

DEC_DIV

MOV

AH, 4CH

INT

21H

DEC_DIV PROC

NEAR

MOV CX, [SI]

MOV

AX, BX

MOV

DX, 0

DIV

CX

MOV

BX, DX

MOV

DL, AL

ADD

DL, 30H

MOV

AH, 2

INT

21H

RET

DEC_DIV ENDP

CODE ENDS

END

START(2)实验结果:

3.实验内容3(1)实验内容3的流程图,如图所示:

(2)实验3的程序: DATA

SEGMENT

BLOCK

DB 1,0,5,7,10,30,100,127,90,80

RESULT

DB

?,?

BUF

DB

'MAX IS:$' DATA

ENDS CODE

SEGMENT

ASSUME

CS:CODE,DS:DATA

BEGIN

PROC

FAR

MOV

AX, DATA

MOV

DS, AX

MOV

CX, 9

LEA

SI, BLOCK

MOV

AL, [SI]

X1: INC

SI

CMP

AL, [SI]

JAE

X2

MOV

AL, [SI]

X2: LOOP

X1

MOV

RESULT, AL

MOV DX, OFFSET BUF

MOV AH, 9

INT 21H

MOV

BL,RESULT

CBW

MOV

CX, 1000

CALL

DEC_DIV

MOV

CX, 100 CALL

DEC_DIV MOV

CX, 10 CALL

DEC_DIV

MOV

CX, 1

CALL

DEC_DIV

MOV

AH, 4CH

INT

21H

DEC_DIV PROC

NEAR

MOV

AX, BX

MOV

DX, 0

DIV

CX

MOV

BX, DX

MOV

DL, AL

ADD

DL, 30H

MOV

AH, 2

INT

21H

RET

DEC_DIV ENDP

BEGIN

ENDP

CODE

ENDS

END

BEGIN(3)实验3的运行结果:

4.实验内容4(1)实验内容4的流程图,如图所示:

(2)实验内容4程序: DATA

SEGMENT

BLOCK DB

-1,-2,-3,-4,-5,-6,-7,-8,-9,-10

DB

11,12,13,14,15,16,17,18,19,20

POSIT DW

?

NEGAT DW

?

BUF1

DB

'POSIT:$'

BUF2

DB

'NEGAT:$'

DATA

ENDS

CODE SEGMENT

ASSUME

CS:CODE,DS:DATA

START PROC

MOV

AX, DATA

MOV

DS, AX

MOV

BX, OFFSET BLOCK

MOV

SI, 0

MOV

DI, 0

MOV

CX, 20

X1: MOV

AL, [BX]

CBW

CMP

AX, 0

JGE

X3

ADD

DI, AX

JMP

X2

X3: ADD

SI, AX

X2: INC

BX

LOOP

X1

MOV

POSIT, SI

MOV

NEGAT, DI

MOV DX, OFFSET BUF1

MOV AH, 9

INT 21H

MOV

BX,POSIT

MOV

CX, 1000

CALL

DEC_DIV

MOV

CX, 100

CALL

DEC_DIV

MOV

CX, 10

CALL

DEC_DIV

MOV

CX, 1

CALL

DEC_DIV

MOV

DL,0AH

MOV

AH,2

INT

21H

MOV DX, OFFSET BUF2

MOV AH, 9

INT 21H

MOV BX,NEGAT

NEG BX

AND BH,01111111B

MOV DL,2DH;显示负号

MOV AH,2

INT 21H

MOV

CX, 1000

CALL

DEC_DIV

MOV

CX, 100

CALL

DEC_DIV

MOV

CX, 10

CALL

DEC_DIV

MOV

CX, 1

CALL

DEC_DIV

MOV

AH, 4CH

INT

21H

DEC_DIV PROC

NEAR

MOV

AX, BX

MOV

DX, 0

DIV

CX

MOV

BX, DX

MOV

DL, AL

ADD

DL, 30H

MOV

AH, 2

INT

21H

RET

DEC_DIV ENDP

CODE ENDS

END

START

(3)实验结果:

5.实验内容5(1)实验内容5的流程图,如图所示:

图2-4 内容5流程图

(2)实验内容5的源程序,参考如下:

CODE

SEGMENT

ASSUME

CS:CODE

BINHEX PROC

FAR

MOV

CH,4

MOV

BX,1000

ROTATE: MOV

CL,4

ROL

BX,CL

MOV

DL,BL

AND

DL,0FH

ADD

DL,30H

CMP

DL,3AH

JL

OUTPUT

ADD

DL,7

OUTPUT: MOV

AH,2

INT

21H

DEC

CH

JNE

ROTATE MOV

DL,'H' MOV

AH,2 INT

21H

MOV

AH,4CH

INT

21H

BINHEX ENDP

CODE ENDS

END

BINHEX(3)实验结果:

五、心得体会 实验内容1:

宏定义必须先定义,后调用,自己刚开始时把宏定义放在调用的后面,导致程序出错。看了生产的LIST给出的源程序和目标程序,发现每个宏调用处,通过宏扩展,宏体中的指令的机器代码被插入到宏调用处,不节省内存单元,但相对于子程序,简化了源程序。

实验内容2:

刚开始的时候给BX寄存器送负值,比如-17,我写成了1000 0000 0001 0001 即 MOV BX,8011H,后来发现显示出来的数不是-17。经过思考,懂得原来负数的表示要用补码,下面是两种LIST 文件里对应地方的目标程序和源程序,可以看出转化为目标程序的时候,用补码表示。0000 BB FFEF 0000 BB FFEF

START: MOV

BX,-0011H

START: MOV

BX, 0FFEFH

实验内容3:求一个数据块中最大元素的时候,把数据块中的第一个元素AL中,并通过循环把其余的元素和AL比较,如果新元素较大的话就取代原来的元素放到AL中。比较完成后,把最大的元素放到预先为其保留的地址中,注意要控制的次数CX,是数据块的个数减一。

LOOP 标号

功能相当于

DEC CX JNZ 标号 实验内容4:

回车和换行的效果不一样。显示字符串的时候要注意用$。

因为要将正数与负数分别累加,这时候需要分支,而分支的条件有很多种,比如跟0比较大小,比如通过提取符合位来判断,只要能正确实现分支都可以。实验内容5:

16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可。

要注意ASICC代码中,1-9的ASICC代码要比1-9的二进制值大30H,A-F的ASICC代码要比1-9的二进制值大37H,所以对不同的四位二进制,要加个判断分支,才能找到相应得ASICC代码。

六、思考题

1.请总结显示寄存器或者内存中的十进制和十六进制数据的方法。十进制显示的方法:

先判断是正数负数,是负数要把它转化成负数的绝对值,并在前面加一个负号。

把BX中的数按位由高到低转化成十进制数,即依次对其除以10000、1000、100、10、1,将获得的商放到 DL中,加30H变成ASCⅡ码,调用DOS系统中断INT 21H的2号功能显示出来;对于每一位十进制数的获得和显示,实验通过编制子程序DEC_DIV并不断调用来实现。

十六进制的显示方法:

16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可,可以用循环左移的指令POL,循环左移四位,并提取这四位。

2.请总结子程序编写、调用及参数传递的要点。子程序定义格式如下:

过程名

PROC [NEAR/FAR]

RET

过程名

ENDP 调用的时候用

CALL 过程名

参数传递有三种方法:(1)通过寄存器传递参数,这种方式适合于传递参数较少的一些简单程序。(2)通过地址表传递参数地址,这种方式适合于参数较多的情况,但要求事先建立一个用来传送参数的地址。(3)通过堆栈传递参数。为了利用堆栈传递参数,必须在主程序中调用子程序之前的地方,把这些参数压入堆栈后利用在子程序中的指令从堆栈弹出而取得参数。同样,要从子程序传递回调用程序的参数也被压入堆栈内,然后由主程序中的指令把这些参数从堆栈中取出。

3.修改源程序,改变屏幕显示的内容。1:

2:

3:

4:

5:

实验三 从键盘上输入数据实验

一、实验目的

1.掌握从键盘上输入数据的方法。

2.键盘上输入的是ASCII字符,掌握如何将ASCII字符转换为机内数字。

二、实验内容

1.从键盘上输入一个十进制数(0~65535),转换成二进制数并放入寄存器BX中。2.从键盘上输入0~65535范围的一个十进制数,在屏幕上显示出相 PC机一台、masm汇编程序

三、实验设备 PC机一台、masm汇编程序

四、实验步骤:

依照上次实验步骤,对每一个实验内容对应的程序进行编辑、编译、连接和运行,直到达到实验要求。

1.实验内容1的程序: CODE SEGMENT

ASSUME

CS:CODE

START PROC

CALL

DECBIN

MOV

DL,0DH

MOV

AH,2

INT

21H

CALL

XIANSHI

MOV

AH,4CH

INT

21H

START ENDP

DECBIN PROC

NEAR

MOV

CX,10

MOV

BX,0

LOP1: MOV

AH,1

INT

21H

CMP

AL,30H

JL

EXIT

CMP

AL,39H

JG

EXIT

SUB

AL,30H

MOV

AH,00H

XCHG

AX,BX

MUL

CX

ADD

BX,AX

JMP

LOP1

EXIT: RET

DECBIN ENDP

XIANSHI PROC

NEAR

LP1: MOV

CX,10000

CALL

DEC_DIV

MOV

CX,1000

CALL

DEC_DIV

MOV

CX,100

CALL

DEC_DIV

MOV

CX,10

CALL

DEC_DIV

MOV

CX,1

CALL

DEC_DIV

RET

XIANSHI ENDP

DEC_DIV PROC

NEAR

MOV

AX,BX

MOV

DX,0

DIV

CX

MOV

BX,DX

MOV

DL,AL

ADD

DL,30H

MOV

AH,2

INT

21H

RET

DEC_DIV ENDP

CODE ENDS

END

START

(2)运行结果:

输入11111后,程序显示如图所示:

2.实验内容2(1)实验内容2的程序: STACK SEGMENT DB 20 DUP(?)STACK ENDS CODE SEGMENT

ASSUME

CS:CODE,SS:STACK

START PROC

MOV AX,STACK

MOV SS,AX

CALL

DECBIN

CALL

XIANSH

MOV

DL,0AH

MOV

AH,2

INT

21H

MOV

CH,4

CALL

ROTATE

MOV

AH,4CH

INT

21H

START ENDP

XIANSHI PROC

NEAR

PUSH BX

LP1: MOV

CX,10000

CALL

DEC_DIV

MOV

CX,1000

CALL

DEC_DIV

MOV

CX,100

CALL

DEC_DIV

MOV

CX,10

CALL

DEC_DIV

MOV

CX,1

CALL

DEC_DIV

POP BX

RET

XIANSHI ENDP

DEC_DIV PROC

NEAR

MOV

AX,BX

MOV

DX,0

DIV

CX

MOV

BX,DX

MOV

DL,AL

DECBIN PROC

NEAR ADD

DL,30H MOV

AH,2 INT

21H RET

DEC_DIV ENDP

MOV

MOV

LOP1: MOV

INT

CMP

JL

CMP

JG

SUB

MOV

XCHG

MUL

ADD

JMP

EXIT:

RET

DECBIN ENDP ROTATE PROC

LOP2: MOV

ROL

MOV

AND

ADD

CMP

JL

ADD

OUTPUT: MOV

INT

DEC

JNE

MOV

MOV

INT

RET

CX,10 BX,0 AH,1 21H AL,30H EXIT AL,39H EXIT AL,30H AH,00H AX,BX CX BX,AX LOP1 CL,4 BX,CL DL,BL DL,0FH

DL,30H DL,3AH

OUTPUT;小于转移 DL,7 AH,2 21H CH LOP2 DL,'H' AH,2 21H

ROTATE ENDP

CODE ENDS

END

START

(2)运行结果:

输入00010,显示结果如图3-4所示:

五、心得体会

在写实验二的时候,调用子程序的地方比较多,可是调用子程序的时候,没有对寄存器的数据进行保护,导致程序的执行结果不正确,后来用压栈会保护寄存器里的数据,并用出栈来恢复寄存器的数据,使程序的执行结果正确。

六、思考题

1.请总结从键盘上输入字符的方法。

从键盘上输入一个十进制数(0~65535),转换成二进制数并放入寄存器BX中。对于输入的字符,先判断它是不是1~9的数字字符,若不是,直接跳出循环,若是的话,将ASCⅡ码转化成对应数值并存到AX中,对于下一个输入的数值,判断完成后,通过将AX和BX内容交换并将AX中的数*10,再累加实现。

2.请总结将二进制数转换为十六进制数并显示的方法。

16位的二进制数,4位一组可以显示为4位十六进制数,从高到低依次取出4位二进制数变成ASCⅡ码输出即可,可以用循环左移的指令POL,循环左移四位,并提取这四位。

3.修改源程序,改变屏幕显示的内容。

实验内容1:输入22222,显示

实验内容2:输入12,显示

实验四

字符串的显示实验

一、实验目的: 掌握字符串的显示方法。

二、实验内容: 1.在内存中存有一个字符串,以0为结尾,程序开始输出“HELLO”然后等待从键盘输入一个字符,在字符串中寻找该字符,若找到,输出“yes”;若找不到,输出“no”,然后再输入下一个字符。

2.实验内容1的程序是一个无限循环的程序,若按“ESC”键,让程序推出循环,使系统返回DOS。已知“ESC”键的键值是1BH。按照上面的要求对实验内容1的程序进行修改,然后再重新汇编、链接和运行。

三、实验设备: PC机一台、masm汇编程序

四、实验步骤:

1.实验内容1(1)实验内容1程序: DATA

SEGMENT

STR1 DB

'HELLO',0DH,0AH,'$'

STR2 DB

20H,'YES',0DH,0AH,'$'

STR3 DB

20H,'NO',0DH,0AH,'$'

STR4 DB

'1 2 3 0 4 5 A B a=!?',00H

DATA

ENDS

CODE SEGMENT

ASSUME

CS:CODE,DS:DATA

START PROC

FAR

MOV

AX,DATA

MOV

DS,AX

MOV

DX,OFFSET STR1

MOV

AH,9

INT

21H

LOOP1: MOV

AH,1

INT

21H

MOV

BX,OFFSET STR4

GON: MOV

AH,[BX]

CMP

AH,0

JZ

NO

INC

BX

CMP

AH,AL

JNZ

GON

MOV

DX,OFFSET STR2

GO: MOV

AH,9

INT

21H

JMP

LOOP1

NO: MOV

DX,OFFSET STR3

JMP

GO

START ENDP

CODE ENDS

END

START(2)运行结果

2、实验内容2(1)实验内容2程序: DATA

SEGMENT

STR1 DB

'HELLO',0DH,0AH,'$'

STR2 DB

20H,'YES',0DH,0AH,'$'

STR3 DB

20H,'NO',0DH,0AH,'$'

STR4 DB

'1 2 3 0 4 5 A B a=!?',00H

DATA

ENDS

CODE SEGMENT

ASSUME

CS:CODE,DS:DATA

START PROC

FAR

MOV

AX,DATA

MOV

DS,AX MOV

DX,OFFSET STR1 MOV

AH,9 INT

21H

LOOP1: MOV

AH,1

INT

21H

CMP

AL,1BH

JZ

EXIT

MOV

BX,OFFSET STR4

GON: MOV

AH,[BX]

CMP

AH,0

JZ

NO

INC

BX

CMP

AH,AL

JNZ

GON

MOV

DX,OFFSET STR2

GO: MOV

AH,9

INT

21H

JMP

LOOP1

NO: MOV

DX,OFFSET STR3

JMP

GO

EXIT:

MOV

AH, 4CH

INT

21H

START ENDP

CODE ENDS

END

START(2)运行结果:

五、心得体会

通过这次实验,掌握了字符算的显示方法。该程序要用到DOS系统功能调用的9号子程序,9号子程序的功能是在屏幕上输出一个字符串,字符串要以字符“$”做为结尾符,但“$”在屏幕上不显示。

六、思考题

1.请总结字符串的显示方法。

该程序要用到DOS系统功能调用的9号子程序,9号子程序的功能是在屏幕上输出一个字符串,字符串要以字符“$”做为结尾符,但“$”在屏幕上不显示。

调用9号子程序的格式是:

MOV

DX,字符串起始地址(入口参数)

MOV

AH,9

INT

21H 9号子程序遇到 “0DH”处理成回车;

遇到 “0AH”处理成换行;

遇到 “20H”处理成空格。

2.巩固汇编语言分支程序设计的方法。

许多实际问题并不能设计成顺序程序,需要根据不同的条件作出不同的处理。把不同的处理方法编制成各自的处理程序段,运行时由机器根据不同的条件自动作出选择判断,绕过某些指令,仅执行相应的处理程序段。按这种方式编制的程序,称之为分支程序。分支程序是机器利用改变标志位的指令和转移指令来实现的。

转移指令有JMP和Jcc两类。前者是无条件转移指令,后者是条件转移指令。

第四篇:电子科技大学微机实验报告 实验5

实验五 基于ARM的模块方式驱动程序实验 【实验目的】 1.掌握Linux 系统下设备驱动程序的作用与编写技巧 2.掌握Linux 驱动程序模块加载和卸载的方法 3.了解Linux 内核中的makefile和kconfig文件

【实验内容】

1.基于s3c2440 开发板编写led 驱动程序。2.将编写好的led驱动加入linux内核中,修改makefile和kconfig文件,配置和编译内核。3.编写关于led 的测试程序,交叉编译后运行,控制led 灯的亮灭。

【预备知识】

1.了解ARM9处理器结构和Linux 系统结构

2.熟练掌握C语言。

【实验设备和工具】

 硬件:ARM嵌入式开发平台,PC机Pentium100 以上。

 软件:PC机Linux操作系统+MINICOM+AMRLINUX 开发环境

【实验原理】

linux设备驱动程序  驱动的模块式加载和卸载

 编译模块

 装载和卸载模块

 led 驱动的原理

在本开发板上有八个led指示灯,从下往上分别为LED0-LED7。这八个led灯都是接的芯片上的gpio口(通用功能输入输出口)。在本实验的开发板硬件设计中,当led 灯对应的gpio的电平为低时,led灯被点亮;当led灯对应的gpio的电平为高时,led灯灭。本驱动的作用就是通过设置对应gpio口的电平来控制led 的亮灭。

因为ARM 芯片内的GPIO口都是复用的,即它可以被配置为多种不同的功能,本实

验是使用它的普通的I/O口的输出功能,故需要对每个GPIO口进行配置。在内核中已经定义了对GPIO口进行配置的函数,我们只需要调用这些函数就可以完成对GPIO口的配置。

【实验步骤】实验程

序运行效果:

程序会提示:“pleaseenterthe led status”

输入与希望显示的led状态对应的ledstatus值(输入十进制值即可),观察led 的显示情况。例如:

 输入数字“3”,对应的二进制数字为00000011

故点亮LED2~LED7

 输入数字“4”,对应的二进制数字为00000100

故点亮LED0,LED1,LED3~LED7

【实验结果和程序】

C语言程序:

#include #include #include #include #include #include #include #include #include #include #include #include #include#defineDEVICE_NAME “s3c2440-led”

static intLedMajor=231;

staticintLedMinor=0;

static charledstatus=0xff;staticstructclass*s3c2440_class;staticstructcdev *s3c2440_led_cdev;

/*

******************************************************************************* ************************

** Function name:Update_led()**Descriptions **Input :NONE **Output :NONE :update the led status

******************************************************************************* ************************

*/ staticvoid Update_led(void)

{

if(ledstatus&0x01)

s3c2410_gpio_setpin(S3C2410_GPC7,1);//LED0灭

else

s3c2410_gpio_setpin(S3C2410_GPC7,0);//LED0亮

if(ledstatus&0x02)

s3c2410_gpio_setpin(S3C2410_GPC5,1);//LED1灭

else

s3c2410_gpio_setpin(S3C2410_GPC5,0);//LED1亮

if(ledstatus&0x04)

s3c2410_gpio_setpin(S3C2410_GPH9,1);//LED2灭

else

s3c2410_gpio_setpin(S3C2410_GPH9,0);//LED2亮

if(ledstatus&0x08)

s3c2410_gpio_setpin(S3C2410_GPB4,1);//LED3灭

else

s3c2410_gpio_setpin(S3C2410_GPB4,0);//LED3亮

if(ledstatus&0x10)

s3c2410_gpio_setpin(S3C2410_GPG5,1);//LED4灭

else

s3c2410_gpio_setpin(S3C2410_GPG5,0);//LED4亮

if(ledstatus&0x20)

s3c2410_gpio_setpin(S3C2410_GPG6,1);//LED5灭

else

s3c2410_gpio_setpin(S3C2410_GPG6,0);//LED5亮

if(ledstatus&0x40)

s3c2410_gpio_setpin(S3C2410_GPG7,1);//LED6灭elses3c2410_gpio_setpin(S3C2410_GPG7,0);//LED6亮

if(ledstatus&0x80)

s3c2410_gpio_setpin(S3C2410_GPG8,1);//LED7灭

else

s3c2410_gpio_setpin(S3C2410_GPG8,0);//LED7亮

}

staticssize_ts3c2440_Led_write(structfile*file,constchar*buffer,size_tcount,loff_t*ppos){

copy_from_user(&ledstatus,buffer,sizeof(ledstatus));

Update_led();

printk(“write: led=0x%x,count=%dn”,ledstatus,count);returnsizeof(ledstatus);} staticints3c2440_Led_open(structinode*inode,struct file *filp)

{

printk(“led device openn”);

return 0;

} staticints3c2440_Led_release(structinode*inode,struct file*filp)

{

printk(“led device releasen”);

return 0;} staticstructfile_operationss3c2440_fops={.owner=THIS_MODULE,.open=s3c2440_Led_open,.write=s3c2440_Led_write,.release=s3c2440_Led_release, };

staticintinits3c2440_Led_init(void)

{

dev_ts3c2440_leds_devno;

/*configure the gpiofor leds*/

s3c2410_gpio_cfgpin(S3C2410_GPG5,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPG6,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPG7,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPG8,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPC7,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPC5,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPH9,S3C2410_GPIO_OUTPUT);

s3c2410_gpio_cfgpin(S3C2410_GPB4,S3C2410_GPIO_OUTPUT);

Update_led();/*registerthe devnumber*/ s3c2440_leds_devno=MKDEV(LedMajor,LedMinor);ret=register_chrdev_region(s3c2440_leds_devno, 1,DEVICE_NAME);

/*registerthe chardevice*/

s3c2440_led_cdev=cdev_alloc();if

(s3c2440_led_cdev!= NULL)

{ cdev_init(s3c2440_led_cdev, &s3c2440_fops);s3c2440_led_cdev->owner=THIS_MODULE;if(cdev_add(s3c2440_led_cdev, s3c2440_leds_devno, 1))

printk(KERN_NOTICE “Something wrong when addings3c2440_led_cdev!n”);

else

printk(“Success addings3c2440_led_cdev!n”);} /*create the device node in /dev*/ s3c2440_class =class_create(THIS_MODULE, “led_class”);class_device_create(s3c2440_class, NULL, s3c2440_leds_devno, NULL, DEVICE_NAME);

printk(DEVICE_NAME “ initializedn”);

return 0;

}

staticvoid exits3c2440_Led_exit(void)

cdev_del(s3c2440_led_cdev);class_device_destroy(s3c2440_class, MKDEV(LedMajor,LedMinor));class_destroy(s3c2440_class);printk(DEVICE_NAME “ removedn”);

}

module_init(s3c2440_Led_init);

module_exit(s3c2440_Led_exit);

【思考题】

1.设备驱动程序的功能是什么?答:设备驱动的功能就是将系统提供的调用映射到作用于实际硬件的和设备相关的操作上。

2.模块化的最大优点是什么?答:可以在系统正在运行着的时候给内核增加模块

提供的功能(也可以移除功能)。

3.如果在驱动模块中删除module_exit(s3c2440_Led_exit);后会有什么影响?

答:这个模块将不能被移除。

4.驱动代码中调用的宏MKDEV 的作用是什么?答:获取设备在设备表中的位置。输入主设备号,从设备号,返回位置号。

【实验结论】

本实验实现了linux环境下的led灯驱动的添加。

第五篇:电子科技大学微机实验报告 实验4

实验四基于ARM的嵌入式Linux开发环境建立 【实验目的】 1.掌握嵌入式Linux 开发环境的基本流程。2.熟悉Linux 操作系统 3.熟悉嵌入式开发平台

【实验内容】

在PC机虚拟机下的Linux系统中建立基于ARM 的嵌入式Linux 开发环境。

1.学会网口的配置 2.Minicom端口的使用

【预备知识】

1.了解ARM9处理器结构 2.了解Linux 系统结构

3.了解ARM开发板使用常识

【实验设备和工具】

硬件:PC机Pentium100以上,ARM嵌入式开发平台

软件:PC机Linux 操作系统+MINICOM+AMRLINUX开发环境

【实验原理】

1.交叉编译器在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构

(Architecture)、操作系统(OperatingSystem)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intelx86体系结构和Linuxforx86操作系统的统称;而x86WinNT平台 实际上是Intelx86体系结构和Windows NTforx86操作系统的简称。交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软

件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++ 开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为nativecompilation,中文可理解

为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的ARM平台,其一般的静态存储空间大概是16到32MB,而CPU 的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilationtoolchain)需要很大的存储空间,并需要很强 的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。

要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilation tool-chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:

1、在WindowsPC上,利用RVDS(ARM开发环境),使用armcc编译器,则可编译出针对ARMCPU的可执行代码。

2、在LinuxPC上,利用arm-linux-gcc编译器,可编译出针对LinuxARM平台的可执行代码。

3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARMCPU的可执行代码。

2.NFS服务

NFS是Net FileSystem的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS.NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系

统上的文件。

NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。

在本实验中就是将PC机作为服务器,而将ARM开发板作为客户机,这样ARM开发板就可以远程

访问存放在在PC机上的数据,这样可以缩短研发周期,更方便的调试程序。

【实验步骤】

1.双击桌面上VMWARE,打开Linux 虚拟机 2.点击启动虚拟机,启动虚拟机 3.以root身份登陆虚拟机,密码123456

4.其他步骤详见实验指导书

【实验结果和程序】

基于ARM 的嵌入式Linux开发环境建立完毕。

【思考题】

1.如何验证交叉编译器已安装成功? 答:在终端输入命令:cd/arm/rootfs/home/driver(文件夹里已有test_led.c文件)arm-linux-gcc–o test_ledtest_led.c

若有可执行文件test_led生成则表示交叉编译器已安装成功

2.如果我们需要变更根文件系统的目录,该如何设置使得ARM开发板可以成功挂载?答:修改/etc/exports 文件的内容,将/arm/rootfs*(rw,sync,no_root_squash)改为/XX/XXX

*(rw,sync,no_root_squash)(/XX/XXX为变更后点的文件目录)

3.怎么在u-boot命令行下修改ARM 开发板的IP?

答:输入setenvip=x.x.x.x:192.168.0.1:192.168.0.1:255.255.255.0:uestc:eth0:off

Saveenv

x,x,x,x为ARM开发板的新IP。

【实验结论】

本实验实现了基于ARM 的嵌入式Linux 开发环境建立

下载微机实验报告数模转换器和模数转换器实验5篇word格式文档
下载微机实验报告数模转换器和模数转换器实验5篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    微机组装实验报告

    微机组装实验报告 一、实验内容 1、了解计算机的硬件系统 2、在规定的时间内完成一台计算机的完全拆卸并且完全还原的组装拆卸训练 二、实验目的 1、熟悉计算机的基本配置及......

    微机实验报告要求

    实验报告的撰写要求 一、封面(统一要求) 二、报告内容: ① 题目 ② 程序框图 ③ 硬件原理图(在做硬件实验时需此步骤) ④ 源程序(左边为实验前预习的源程序,右边为实验后调试正确......

    微机实验心得

    微机实验心得 这学期通过对微机原理和微机实验课的学习,对微机系统和它的工作原理有了很大的了解。微机实验课,总共做了十几个实验,回想起来受益匪浅,主要是加深了对计算机的一......

    2018东南大学自动化学院微机实验6、7实验报告

    《微机实验及课程设计》实验报告 学号08 东南大学 《微机系统与接口(含实验)》 实验报告 实验六8255 并行输入输出 实验七串行通信 姓名:学号: 08 专业:实 验 室:金智楼516 实验......

    北京科技大学微机原理实验报告

    微机原理及应用实验报告 学院: 班级: 学号: 姓名: 微机实验报告书(Ⅰ) 学号:姓名:班级: 同组名单:实验日期: 实验题目:8253可编程定时器计数器 实验目标:掌握8253的基本工作原理和编程方......

    微机原理实验报告(精选合集)

    学号: 学生姓名: 打印日期: 评分: 评语:实验报告 COURSE PAPER 8255控制开关状态显示 学院 :机电工程与自动化学院 一、实验目的; (本课程设计是在完成《微机原理与接口技术......

    北京交通大学微机原理实验报告(yuan)

    微机原理 实 验 报 告 隋伟 08212013 自动化0801 1 目 录 一、I/O地址译码与交通灯控制实验……………………………………3 二、可编程定时器/计数器(8253)……………………......

    微机硬件实验心得

    实训四底板LED点阵控制实训个人总结 通过led点阵实验的实践,使我在理论的基础上更深刻的掌握了嵌入式系统的深层内容及实际生活中的应用,实践锻炼了自己动手能力和思维能力,还......