计算机的综合的实践报告材料.pdf

上传人:tbuqq 文档编号:5491735 上传时间:2020-05-23 格式:PDF 页数:24 大小:216.27KB
返回 下载 相关 举报
计算机的综合的实践报告材料.pdf_第1页
第1页 / 共24页
计算机的综合的实践报告材料.pdf_第2页
第2页 / 共24页
计算机的综合的实践报告材料.pdf_第3页
第3页 / 共24页
计算机的综合的实践报告材料.pdf_第4页
第4页 / 共24页
计算机的综合的实践报告材料.pdf_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《计算机的综合的实践报告材料.pdf》由会员分享,可在线阅读,更多相关《计算机的综合的实践报告材料.pdf(24页珍藏版)》请在三一文库上搜索。

1、实用标准文案 精彩文档 四川大学网络教育学院 计算机综合实践 校外学习中心:四川大学 学 生姓 名:金小峰 专业:电气工程及其自动化 层次:专升本(业余) 年级: 2014年秋 学号: DH1142R6007 实验 时 间: 2015年 8 月 实用标准文案 精彩文档 实验一 DEBUG 调试工具熟悉、使用 一、 实验题目熟悉、使用 DEBUG 调试工具 二、 实验日期: 2013/12/16 三、 实验目的 1.了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习 8088 汇编语言的段结构、常用的指令与伪指令、存储空 间的分配等。 3.掌握汇编语言的编辑、汇编及连接的过程。 4.了解并逐步掌

2、握运用DEBUG 进行调试汇编语言程序。 5.借助 DEBUG 调试工具来发现汇编语言程序的错误所在并加以 改正。 四、 实验内容: 1、 进入 DEBUG 方法 1:在 Windows开始菜单中单击运行命令,直接在运行对 话框中输入 “DEBUG“ 方法 2:在运行对话框中输入 “CMD“ 启动 DOS 命令窗口后输 入“DEBUG“ 方法 3:在程序、附件、命令提示符,启动DOS 命令窗口 后输入 “DEBUG“ 2、DEBUG 命令格式 DEBUG 的每个命令都是一个字母,后跟一个或多个参数。下面对 DEBUG 命令作几点说明。 实用标准文案 精彩文档 字母不分大小写。 只使用 16 进

3、制数,且不能带后缀H。 以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数 值之间是必须的。 可以用 Ctrl-C或 Ctrl-Break终止命令的执行。 若输入的命令有语法错误,则提示“Error ”, 并用“ ”指出错 误位置。 3、 常用的 Debug功能 用 Debug的 R命令查看、改变CPU 寄存器的内容; 用 Debug的 D命令查看内存中的内容; 用 Debug的 E命令改写内存中的内容; 用 Debug的 U命令将内存中的机器指令翻译成汇编指令; 用 Debug的 T命令执行一条机器指令 用 Debug的 A命令以汇编指令的格式在内存中写了一条机器指令 4、 用 Debu

4、g的 R命令查看、改变 CPU 寄存器的内容; R 命令用来显示和修改寄存器的值,包括以下两种格式。 (1) R 显示所有寄存器和8 个标志位的值,并反汇编CS:IP 所指 的指令。 (2) R 显示指定寄存器的值,并等待用户键入新的值,按回车键 结束 R命令。 实用标准文案 精彩文档 5、 用 Debug的 D命令查看内存中的内容; D 命令可以查看内存中的内容,D 命令的格式较多,只介 绍本次实验中用到的格式, 8086/8088CPU能够访问 1M内容,D命 令可以显示 0000:0000H-FFFF:FFFFH中的任何一个单元的内存 如果想知道内存 10000H处的内容,可以用 “d

5、段地址:偏移地址 “ 的格式来查看,如输入 -d 1000:0 使用 d 1000:9查看 1000:9 处的内容。 使用 d 1000:0 9查看 1000:0-1000:9 的内容 一进入 Debug ,可直接使用 D命令直接查看,将列出Debug预 设的地址处的内容 6、 用 Debug的 E命令改写内存中的内容; 使用“e 起始地址数据数据 数据.“的格式来进行 如将内存 1000:0-1000:9 单元中的内容分别写为0、1 、2、 3、4、5、6、7、8、9 -e 1000:0 0 1 2 3 4 5 6 7 8 9 也可以采用提问方式一个一个修改内存中的内容,如 输入 e 100

6、0:0 ,按 Enter 键 输入修改的数据,再按空格 键输入下一个要修改的数据,最后Enter 键结束操作。 输入字符串的格式:如 -e 1000:10 1 a 2 “c+“ 3 “IBM“ 将输入 1 a 2 c+ 3 IBM到相应单元 向内容中写入机器码,如 b80100 ( 代表 mov ax, 0001), 实用标准文案 精彩文档 b90200(代表 mov cx, 002), 01c8(代表 add ax, cx),那么输入 -e 1000:0 b8 01 00 b9 02 00 01 c8就将该程序输入内容1000:0 处,然后使用 u 命令-u 1000:0 可以将内存单元中的

7、内容翻译成汇 编指令。如果要执行该程序,首先用r 命令将 cs 修改成 1000,ip 修改成 0,再执行 t 命令,单步执行程序。执行T命令时, CPU 执 行 CS:IP 执行的指令并将 IP 加 1. 7、 用 Debug的 A命令以汇编指令的形式在内存中写了机器指令 示例:用 A命令,输入下列程序并运行 -a 1000:0 mov ax, 1 mov bx, 2 mov cx, 3 add ax, bx add ax, cx add ax, ax 直接按 Enter键结果输入。用r 命令将 cs 修改成 1000,ip 修改成 0,再执行 t 命令,单步执行程序。执行T 命令 时,CP

8、U 执行 CS:IP 执行的指令并将IP 加 1. 实用标准文案 精彩文档 实验二设计汇编语言程序 一实验题目设计汇编语言程序 二实验日期: 2013/12/17 三实验目的 字符串统计程序设计 双字乘法程序设计 四实验内容 1 字符串统计。 在数据段中建立一个缓冲区BUFFER,变量 VER ,编程使得程序 具有如下功能:从键盘输入一个子字符串存入VER ,从键盘 输入包含一个或几个子字符串的字符串存入BUFFER 。统计 BUFFER 中的字符串含有多少个子字符串以及每个子字符串的 位置。 2 双字乘法程序。 设计一个程序实现32 位带符号双精度数乘法运算。 由于只有 8 位和 16 位的

9、乘法指令。因此 32 位乘法运算是不能直接用指令 实现的。但可以用16 位乘法指令,通过 4 次想乘然后把部分 积想加。对于带符号数,可以先根据绝对值求得积。然后判断 积的符号,若积为负数,应将其用补码表示。 五、 程序设计 1、字符串统计程序设计 #include 实用标准文案 精彩文档 using namespace std; int main() char a;int b=0,c=0,d=0,e=0,f=0; cout=128) b+; else if(a=a outb(inb_p (0x21) /允许接收定时器中断 void do_timer(void) 这是定时器主程序,用于每隔一段

10、时间后进行某些操作 8253.asm: / 以下是 nasm格式的汇编代码,这个中断处理函数必须用汇编 timer_interrupt: push gs push fs push es push ds push ebp push edi push esi push edx push ecx push ebx push eax ; 如果你不在操作系统下使用,以下三行必须删除, 否则必须把0x10 更改为内核段选择符 实用标准文案 精彩文档 mov eax,0x10 mov ds,ax mov es,ax mov al,0x20 out 0xa0,al ;发送 EOI out 0x20,al ca

11、ll do_timer pop ebx pop ecx pop edx pop esi pop edi pop ebp pop ds pop es pop fs pop gs xor eax,eax iretd 实验四实时时钟实验 一、实验目的: 掌握 ARM7 嵌入式系统实验箱的使用方法; 掌握 LPC2148的内部定 实用标准文案 精彩文档 时器模块的使用方法;掌握LPC2148的 RTC模块的使用方法。 二、实验内容: 学习使用 LPC2148的内部定时器以及RTC模块;自行编程实现利 用 RTC模块在串口调试助手上显示当前时间,自行编程实现利用定时 器模块在串口调试助手上显示9-0 的

12、倒计时,间隔 1S 三、实验原理: 1、定时器模块:对TOTC设置,即设置定时器的值,TOPR ,设置 预分频值, TOMCR 设置匹配模式,复位并中断,TOMR ,设置匹配值, TOTCR ,启动寄存器。 2 、RTC模块。设置 RTC基准时钟分频器。初始化RTC时钟值, 如 year,month。报警中断设置,如 CIIR,AMR 等。启动 RTC ,即 CCR 的 CLKKEN 位置位。读取完整时间寄存器值或等待中断。 四、实验步骤: 1. 在 D:ARM7_ToolDebug_ToolR340 安装 RTC驱动; 2. 打开对应的 IAR 工作空间 RS232_SMG; 3. 修改主程

13、序使其达到实验内容的要求并仿真直至程序无误; 4. 将程序烧入试验箱中,运行; 5. 打开串口调试助手 V2.2 6. 我的电脑 -管理- 设备管理器 -端口(com和 lpt ) - 观测串口号 com4 , 修改串口调试助手对应的串口号,选择十六进制发送,手动发送。 五、实验程序: RTC实时时钟: #include“includes.h“ 实用标准文案 精彩文档 #include #include #define UART_BPS 9600 uint8 strymd16=“ “; uint8 strhms16=“ : : “; void DelayNS(uint32 dly) uint3

14、2 i; for(;dly0;dly-); for(i=0;iyear = YEAR; d-mon = MONTH; d-day = DOM; t-hour = HOUR; t-min = MIN; t-sec = SEC; void timefuz(struct DATE *d,struct TIME *t) strymd0=d-year/1000+0; strymd1=d-year/100%10+0; strymd2=d-year/10%10+0; strymd3=d-year%10+0; strymd5=d-mon/10+0; strymd6=d-mon%10+0; 实用标准文案 精彩文

15、档 strymd8=d-day/10+0; strymd9=d-day%10+0; strhms0=t-hour/10+0; strhms1=t-hour%10+0; strhms3=t-min/10+0; strhms4=t-min%10+0; strhms6=t-sec/10+0; strhms7=t-sec%10+0; int main(void) RTCIni(); struct DATE *d; struct TIME *t ; d = (struct DATE*)malloc(sizeof(struct DATE); t = (struct TIME*)malloc(sizeof(

16、struct TIME); while(1) while(T0IR T0IR = 0x01; GetTime(d,t); timefuz(d,t); UART0_SendStr(strymd); UART0_SendStr(strhms); free(d); free(t); 实用标准文案 精彩文档 return 0; TIMR 显示 0-10 秒 void Time0Init(void) T0PR = 99; T0MCR = 0x03; T0MR0 = 110592; T0TCR = 0x03; T0TCR = 0x01; int main(void) Time0Init(); uint8

17、Char = 9; while(1) while(T0IR T0IR = 0x01; UART0_SendByte(Char); Char-; if(Char =/) Char = 9; return 0; 实验五 8255并行接口键盘实验 一、 实验目的和要求 1. 学习利用并行接口芯片8255 构成并行接口电路的基本方法。 实用标准文案 精彩文档 2. 熟悉掌握并行接口芯片8255 的基本性能及在实际应用中硬件连 接、初始化编程方法。 二、 实验内容 编写程序,使 8255 的 219 口为输出口, 218 为输入口,从 218 口将 K0K7作为一个字读入,再从219口输出这一反码字节。

18、 三、 实验算法 先初始化 8255,将 219 口设置为输出口, 218 为输入口;再通 过输入指令从 8255的 218 口读入数据;最后通过输出指令将数 据从 8255的 219 口输出,在灯上显示出来。 四、实验电路图 电路图如下所示: 五、程序清单 CODE SEGMENT ASSUME CS:CODE START: 实用标准文案 精彩文档 MOV DX,21BH ;初始化 8255 MOV AL,90H OUT DX,AL BG: MOV DX,218H ;从 8255 的 218 口(即 A口)读 入数据 IN AL,DX ;数据存放到 AL里 MOV DX,219H ;从 82

19、55 的 219口(即 B口)输 出数据 OUT DX,AL JMP BG ;无限循环输入输出 CODE ENDS END START 六、实验现象、结果与分析 随意扳动 K0, 218 口接收输入的数据, 219 口输出相应的 数据到 L0L7,使对应指示灯亮。 七、实验体会 通过本实验了解8255 的工作特性,初步知道了怎么用8255 进行 编程控制。 八、主要仪器设备 计算机、接口实验箱平台 实践体会 本次计算机综合实践, 使我对微机原理及接口技术有了进一步的 实用标准文案 精彩文档 了解。原来并不太清楚是什么意思,一直都很模糊,听课本也是很迷 茫;而之前的那些单元实验,也没有都做好。之

20、前做的实验,由于大 部分是验证性的, 所以就很被动地去做, 甚至并没有想为什么要那样 连电路,内部的代码更没有认真看。这次课程设计,因为要自己去设 计整个过程,所以就不得不去了解学习自己原来并没有真正弄懂的东 西。比如一些程序的代码的意思,汇编语言的逻辑,比如一些芯片的 用途。使我对前面所做的实验有了原理性的了解,回头看一些实验, 也知其然其所以然了。 同时对课本上讲的一些内容,不再像以前那样 觉得抽象,通过这次设实践,有了具体的理解。 同时,我也知道了设计一个项目,应该如何下手。应该先对项目 要求有个全面的了解, 知道要做什么, 然后根据要求所要涉及到的知 识我们要主动去摄取,结合自己已学过的,再对整体框架有个感知, 心里有数后,进行设计。设计时用流程图,这很重要,这样整个思路 就很清晰,而且是按照软硬件语言的逻辑顺序进行,就很方便。设计 过程可以分模块, 不要一开始就想把所有的功能都实现了,应该一个 模块一个模块地实现,再总的连起来,实现最后的总模块。在每个模 块设计时,尽量想到比较简单的设计, 简化编程和电路, 也可少出错。 对微机是这样,对其他的像数字系统设计,也是一样的。 因此,我也觉得微机实验的这种形式的课程设计是很好也很有必 要的。对我们对微机实验的理解有很大帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1