哈工大计算机硬件实验程序
哈工大DSP2407试验指导书
哈尔滨工业大学数字信号处理器原理与应用课程实验指导书哈尔滨工业大学自动化测试与控制系2005年6月目录第一部分ICETEK–LF2407-A评估板硬件使用指导第一部分 ICETEK–LF2407-A评估板硬件使用指导 (1)第一节ICETEK-LF2407-A板级产品介绍 (1)1.1 ICETEK-LF2407-A概述 (1)1.2 ICETEK-LF2407-A 板功能 (1)1.3 结构框图 (1)第二节 板上器件功能与使用方法 (1)2.1 ICETEK-LF2407-A板构造 (1)2.2 ICETEK-LF2407-A 板的使用 (2)2.2.1 电源管理 (2)2.2.2 ICETEK-LF2407-A板的存储器空间 (2)2.2.3 I/O空间 (3)2.2.4 用户开关和指示灯 (4)2.2.5 选择振荡器 (4)2.2.6 数模转换 (4)2.2.7 JTAG接口 (5)2.2.8 SPI口 (5)2.2.9 异步串口 (5)2.2.10 CAN总线 (5)2.2.11 ICETEK-LF2407-A 跳线 (5)2.2.12指示灯状态 (7)2.2.13 用户可控指示灯 (7)2.2.14 复位 (8)2.2.15用户使用开关 (8)2.2.16 ON/OFF开关 (8)2.2.17 测试端 (8)第二部分 ICETEK–LF2407-A教学实验系统使用指导 (9)第一节ICETEK DSP教学实验箱简介 (9)1.1 ICETEK DSP教学实验箱的特点 (9)1.2 ICETEK DSP教学实验箱的功能 (9)1.3 ICETEK DSP教学实验箱的组成 (10)1.4 ICETEK DSP教学实验箱性能指标 (11)1.5 ICETEK DSP教学实验箱结构图 (12)第二节 教学实验箱硬件接口和编程说明 (12)2.1 ICETEK DSP教学实验箱的外围接口 (12)2.2 ICETEK DSP教学实验箱硬件编程 (14)2.2.1 液晶显示模块编程控制 (14)2.2.2 发光二极管编程控制 (16)2.2.3 发光二极管显示阵列编程控制 (16)2.2.4 步进电机编程控制 (16)2.2.5 蜂鸣器编程控制 (17)2.2.6 键盘输入编程控制 (17)2.2.7直流电机编程控制 (17)第三节 ICETEK DSP教学实验箱操作手册 (17)3.1 ICETEK DSP教学实验箱的使用 (17)3.1.2 连接各模块电源 (18)3.1.3 连接DSP评估板信号线 (18)3.2 ICETEK DSP教学实验箱使用注意事项 (18)3.3 ICETEK DSP教学实验箱故障判断及排除 (18)3.3.1无法接通电源 (18)3.3.2 信号源没有输出 (18)3.3.3 显示/控制模块上步进电机不转 (19)3.3.4 显示/控制模块上液晶没有显示 (19)3.3.5 直流电机不停转动 (19)3.3.6 无法进入CCS软件仿真 (19)4.1 教学实验箱:ICETEK-EDU (19)4.2 通用DSP开发系统:ICETEK5100-PP或ICETEK5100-USB (19)4.3 DSP控制板:ICETEK-LF2407-A (19)4.4 通用控制板:ICETEK-CTR (20)第三部分 ICETEK–LF2407-A评估板软件实验指导 (1)实验一 数据存取实验 (1)实验二 I/O控制模块实验 (6)实验三 定时器实验 (9)实验四 模数转换实验 (15)实验五 数模转换实验 (23)实验六 PWM实验 (28)实验七 外设控制实验—发光二极管阵列显示实验 (33)实验八 外设控制实验—液晶显示器控制显示实验 (38)实验九 外设控制实验—键盘输入实验 (45)实验十 外设控制实验—步进电机控制实验 (52)实验十一 直流电机控制实验 (57)实验十二 异步串口通信实验 (65)实验十三 快速傅立叶变换(FFT)算法实验 (72)第一部分 ICETEK–LF2407-A评估板硬件使用指导第一节ICETEK-LF2407-A板级产品介绍1.1 ICETEK-LF2407-A概述ICETEK-LF2407-A板是一块独立的目标板,它非常适合检验LF2407 DSP的性能,此外,本目标板提供了LF240x系列芯片进行扩展和运行软件的标准平台。
哈工大威海计算机操作系统原理实验报告2
计算机操作系统原理
实验报告
专业:1104202
学号:110420212
姓名:李敖
哈尔滨工业大学(威海)
实验二进程及其资源管理
一、实验目的
1.理解资源共享与互斥特性以及操作系统管理资源的基本方法。
2.学会使用高级语言进行多线程编程的方法。
3.掌握利用VC++或Java线程库实现一个管理器,用来实现操作系统对进程及其资源的管理功能。
4.通过该实验,学生可在源代码级完成进程及其资源管理方案的分析、功能设计、编程实现,控制进程间的同步、互斥关系。
二、实验要求
1.知识基础:学生应在完成对进程和线程、调度、死锁等章节的学习后进行。
2.开发环境与工具:
硬件平台——个人计算机。
软件平台——Windows操作系统,根据需要,任选安装VC++语言、java 语言或C语言开发环境。
三、实验内容
1.开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。
2.开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。
四、程序流程图
1.进程初始化
2.优先级策略调度
五、实验结果
创建进程1
创建进程2
查看正在运行的进程
替换进程
删除进程
进程调度进程1
进程2
进程3
FCFS
HPF
六、结果分析
有上述程序运行结果可知,此次试验已经基本达到了实验要求,能够实现进程的创建、查看、替换、删除操作以及进程的调度。
不过,在进程的创建中,要求每个资源要用到3个资源,对于再多的资源就无法保证了。
操作系统实验报告哈工大
计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360117姓名乐云指导教师周学权计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360114姓名郭鑫指导教师周学权操作系统实验实验1 使用虚拟机安装系统 4学时【实验目的】1.了解虚拟机软件的使用。
2.了解使用虚拟机安装Windows及Ubuntu操作系统。
【实验内容】1. 安装虚拟机软件VirtualBox。
2. 配置VirtualBox环境安装WindowsXP,并在虚拟机中启动windowsXP。
3. 配置VirtualBox环境安装Ubuntu 10.10,并在虚拟机中启动Ubuntu。
【实验环境】VirtualBox4.0Windows XPUbuntu 8.04【实验过程】一、创建虚拟机首先运行VirtualBox,单击左上角的“新建”。
单击下一步。
出现如下图的界面,在名称后输入自己起的名字,如test选择自己想要安装的系统类型和版本,本次试验是安装windows xp系统设置完成后,单击下一步。
接下来是设置虚拟机的内存大小,本次实验操作的计算机内存为4GB,所以我选择分配给我的虚拟机的内存为512MB,然后单击下一步。
接着创建虚拟硬盘,选择创建新的虚拟硬盘,单击下一步。
选择虚拟硬盘的类型,默认选择了VDI类型,单击下一步。
接下来选择为动态扩展类型,因为计算机的存储空间不大。
单击下一步。
动态扩展:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间的范围就为0~10G。
固定大小:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间永远不是10G,不管虚拟磁盘空间是否被全部使用。
选择虚拟机在本地磁盘中的位置和大小,单击下一步。
确认虚拟机的详细情况,点击下一步。
这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机安装操作系统选择刚才创建的虚拟机,然后单击上方的“开始”弹出了首次运行向导,单击下一步。
哈工大计算机组成技术实验二
实验二顺序结构程序设计实验目的1 学会编制顺序结构的汇编语言程序2 进一步掌握完整汇编语言程序的结构、调试方法3 掌握运算指令对标志位的影响学会算术指令的格式与用法实验说明和注意事项1 应该熟练掌握由源文件到可执行文件过程2 掌握源程序构成的数据段和代码段之间的关系3 在DEBUG下运行的程序,程序中的结束语句最好不要用JMP $1、查找运行前数据区的内容E:\ MASM >DEBUG 2-3.EXE↙━U0 ↙分配数的据段用DEBUG调试、运行.EXE文件━D 1434:0 ↙分配的数据段运行前数据区内容源程序数据段内容用DEBUG调试、运行.EXE文件2、查找程序运行前各寄存器内容E:\ MASM >DEBUG 2-3.EXE↙━U0 ↙运行前各寄存器内容━R ↙用DEBUG调试、运行.EXE文件3、查找程序运行后数据区内容E:\ MASM >DEBUG 2-3.EXE↙━R ↙━G↙分配的数据段━D 1434 :0↙运行后数据区内容分配的数据段验收界面1、验收程序运行前和运行后数据区的内容 ━ D 1434 :0↙ ━ G ↙━ D 1434 :0↙验收的程序应是调试完成,没有错误。
今后在实验报告中要求填写“运行前、后数据区的内容”, 均验收此界面, 如果在CT2000 运行只验收程序运行后数据区内容的界面运行后运行前验收说明1、实验5表格填写,程序用T 命令运行运行结束后用D 命令观察Y 值━ T ↙ ━ T ↙执行ADD 前执行ADD 后执行ADD 前执行ADD 后━ T ↙(可继续执行)执行T 执行预习:分支及循环结构程序设计所有专业必做:实验2 、实验4 电类专业还要做实验1非电类专业还要做实验3选做:实验5 、实验6实验程序提前编写,在实验课上进行调试。
哈工大PLC实验指导书
哈尔滨工业大学学生实验守则一、上课前学生必须对所做实验进行充分预习,并写出预习报告。
经指导教师检查合格后,方可进行实验。
二、必须爱护仪器设备,遵守操作规程,严禁乱动、乱拆。
如有损坏丢失,必须立即报告指导教师,由实验室酌情处理。
因违反规章制度、不遵守操作规程而造成仪器损坏者,需按规定进行赔偿。
三、实验室内严禁吸烟、吐痰、吃东西和乱扔纸屑。
除实验必须的讲义、记录纸及文具以外,个人的书包及衣物等一概不要放在实验台上。
实验室内不得大声喧哗,注意保持肃静。
四、实验做完后,需先经指导教师审查数据并签字,然后再将仪器设备按原样整理完毕,清理实验室。
在得到教师允许后方可离去。
五、学生必须认真做好实验报告,在规定的时间内交给教师批阅。
批阅后的实验报告由学生妥善保管,以备考核。
目录实验一 STEP7 MICRO/WIN 的使用方法 (1)1.1 建立新项目 (1)练习1.1 建立一个项目 (2)1. 2 LAD/STL编辑器 (2)练习1.2 改变程序语言及在LAD状态下调试程序 (3)1. 3 程序调试工具 (3)练习1.3 使用“监视功能” (3)实验二PLC的基本指令 (5)练习2.1 练习2.2 基本指令 (5)练习2.3 画输出波形 (6)练习2.4 四分频器 (7)练习2.5 先输入优先电路 (7)练习2.6 后输入优先电路 (7)练习2.7 4中选2电路 (7)实验三典型逻辑电路设计 (8)练习3.1 测试定时器 (8)练习3.2 测试计数器 (9)练习3.3 编写延时断开定时器 (9)练习3.4 脉冲定时器(单稳态电路) (10)练习3.5 多谐振荡器(方波发生器) (10)练习3.6 电机定时启停 (11)练习3.7 异步电机能耗制动 (11)练习3.8 电机顺序启动 (11)练习3.9 单按钮起停电路 (11)实验四复杂程序设计 (12)练习4.1 小车顺序运动I (12)练习4.2 彩灯自动闪烁 (12)练习4.3 十字路口交通灯控制 (12)实验五 WinCC flexible软件基本应用 (13)练习5.1创建项目 (13)练习5.2创建画面 (16)练习5.3 组态报警 (19)练习5.4 创建配方 (23)练习5.5 添加画面切换 (26)练习5.6测试并模拟项目 (28)练习5.7传送项目 (30)实验六 WinCC flexible应用实例 (32)练习6.1 彩灯自动闪烁 (32)练习6.2 十字路口交通灯控制 (32)实验一 STEP7 MICRO/WIN 的使用方法实验目的:掌握使用SIMATIC S7-200 PLC的编程软件STEP7 MICRO/WIN 来建立、编写、调试程序的基本方法。
哈工大单片机实验报告
软件实验在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000~20FFh的内容清零。
三、程序框图四、实验过程(1)实验中定义R0为循环次数,利用定义了初值的数据指针DPTR不断加1指向需要被清零的外部数据存储器单元。
(2)再利用MOVX语句,将外部存储器指定内容清零。
(3)用CJNE比较语句判断循环是否结束。
五、实验结果及分析问题回答:清零前2000H~20FFH中为内存里的随机数,清零后全变为0。
六、实验源程序;清零程序ORG 0000HMOV DPTR,#2000HMOV R0,#0FFHORG 0660HMAIN: MOV A,#00HMOVX @DPTR,AINC DPTRDJNZ R0,MAINEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图四、实验过程(1)定义数据指针DPTR为2000H,将其中内容送入累加器A中,利用高低四位交换语句SWAP可将高四位移至低四位,再用语句ANL与0FH进行与操作取出高四位送入2001H低位(2)再次让数据指针DPTR为2000H,将其中内容送入累加器A中,直接与0FH相与取出低四位送入2002H低位。
五、实验结果及分析问题回答:将ANL A,#0FH改为ORL A,#0F0H可以实现将高位置为1。
六、实验源程序;拆字程序ORG 0000HMAIN: MOV DPL, #00HMOV DPH, #20HMOVX A, @DPTRSWAP AANL A, #0FHINC DPTR-3-MOVX @DPTR, AMOV DPL,#00HMOVX A, @DPTRANL A, #0FHINC DPTRINC DPTRMOVX @DPTR, AEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。
哈工大 嵌入式系统实验指导04
while(rADCCON & 0x1); //check if Enable_start is low while(!(rADCCON & 0x8000)); //check if EC(End of Conversion) flag is high
return ( (int)rADCDAT0 & 0x3ff ); }
(二)模数转换器(ADC)实验: (1) 本实验使用 S3C2440 片内模数转换器,见图 4-1。从结构图和芯片手册 可以知道,该 ADC 模块总共有 8 个通道可以进行模拟信号的输入,分别是 AIN0、
AIN1、AIN2、AIN3、YM、YP、 XM、XP。模拟信号从任一通道输入,然后设定寄 存器中预分频器的值来确定 AD 转换器频率,最后 ADC 将模拟信号转换为数字信 号保存到 ADC 数据寄存器 0 中(ADCDAT0),然后 ADCDAT0 中的数据可以通过中断 或查询的方式来访问。对于 ADC 的各寄存器的操作和注意事项请参阅数据芯片 手册。
具体步骤参考实验二。 (3)实验程序实现了一个用于控制读取 ADC 指定通道的值的函数: int ReadAdc(int ch); 在对 preScaler 变量初始化之后,即可通过调用该函数来多次采集连接在 ADC 上的模拟信号值。 (5) 编译链接工程。连接实验板电源、J-link 仿真器,进行仿真调试。单 步运行程序,并改变板上滑动变阻器 W1 的阻值,观察采集到的电压数值的变化。 参考:模数转换器控制寄存器
{
int tmp, ret;
tmp = a - b; if( tmp > 0)
ret = 1; else if( tmp == 0)
ret = 0; else
哈尔滨工程大学计算机学院ARM3000实验指导书(老版)
博创科技目 录第一章嵌入式开发系统概况和设备驱动安装 (3)第二章嵌入式系统开发环境简介 (17)实验一A:ARM SDT2.5开发环境 (18)实验一B:ADS1.2开发环境 (30)实验一C:超级终端设置及BIOS功能使用 (41)第三章嵌入式系统硬件驱动基础开发案例 (45)实验二ARM的串行口实验 (46)实验三键盘及LED驱动实验 (55)实验四D/A接口试验 (64)实验五ARM的A/D接口实验 (68)实验六电机转动控制实验 (75)实验七LCD的驱动控制实验 (86)实验八触摸屏驱动实验 (95)实验九CAN总线通讯实验 (103)第四章嵌入式系统核心开发案例 (110)实验十定时器中断和驱动程序实验 (111)实验十一B OOT L OADER实验 (118)实验十二A U COS-II在ARM微处理器上的移植及编译 (121)实验十二B完善的U COS-II开发框架 (131)第五章基于UCOS-II操作系统的开发案例 (133)实验十三音频实验 (134)实验十四绘图的API函数 (144)实验十五系统的消息循环 (147)实验十六文件的使用 (151)实验十七列表框控件的使用 (155)实验十八文本框控件的使用 (159)实验十九多任务和系统时钟 (162)实验二十UDP通讯实验 (172)第六章嵌入式系统综合开发案例 (182)实验二十一综合实验 (183)实验二十二模拟电子画板实验--触摸屏应用 (186)实验二十三基于ARM的多通道仪表数据采集实验——多任务与A/D转换 (189)第七章图形界面MINIGUI入门案例 (193)实验二十四M INI GUI到U COS-II-----H ELLO W ORLD程序 (194)实验二十五M INI GUI到U COS-II-----LOADBMP位图操作 (204)第八章嵌入式系统扩展板开发案例 (207)扩展实验一GPRS扩展板通信实验 (208)扩展实验二基于ARM7的FPGA实验 (213)第九章汇编实验开发案例 (228)汇编实验一汇编实现步进电机控制 (229)汇编实验二汇编实现键盘及LED驱动实验 (234)附录一嵌入式系统应用编程API函数 (238)1.显示部分D ISPLAY.H (239)2.操作系统的消息相关函数OSM ESSAGE.H (245)3.控件的相关函数C ONTROL.H (247)4.文件相关函数OSF ILE.H (254)5.双向链表相关函数L IST.H (255)6.触摸屏相关函数TCH S CR.H (256)7.键盘相关函数K EY B OARD16.H (256)8.液晶显示相关函数L CD320.H (257)9.USB相关函数OS USB.H (258)10.系统时间相关函数R TC.H (258)11.串行口相关函数U HAL.H (260)12.字符串相关函数U STRING.H (260)13.系统图形相关函数F IGURE.H (261)14.系统启动时相关函数L OAD F ILE.H (262)15.系统附加任务相关函数OSA DD T ASK.H (263)16.TCP/IP相关函数I NTERNET.H&S OCKETS.H (263)17.中断相关函数I SR.H (265)附录二嵌入式系统参考电路原理图 (266)附录三 ARM汇编指令集 (275)Ⅰ ARM指令集 (275)Ⅱ ARM汇编器所支持的伪指令 (288)第一章嵌入式开发系统概况和设备驱动安装一、开发平台硬件资源1)CPU:ARM7TDMI结构芯片S3C44B0X,工作频率60MHz;2)BIOS:2M,NOR FLASH;3)内存:8M,SDRAM;4)海量存储器:16M,NAND Flash;5)键盘:17键数字小键盘;6)显示:320×240 象素、256色LCD,带四线电阻式触摸屏;7)USB接口:D12芯片,USB 1.1标准;8)串口:2路,最高波特率115200 b/s;9)网络接口:RTL8019,10M以太网;10)CAN接口:波特率125Kb、250Kb、500Kb、1Mb;11)调试接口:JTAG,14针、20针;12)电机:直流电机(有刷),步进电机(带1/64减速器);13)A / D:ARM自带8路10位A /D,满量程2.5V,4路电位器,4路扩展;14)D / A:10位,满量程4.096V;15)LED:8个,共阴极,与键盘共同由ZLG7289芯片驱动;16)音频输出:IIS总线,UDA1341芯片,44.1KHz音频;17)扩展插槽:2个,提供系统总线以及其他空余资源接口;18)FPGA扩展板(可选件):ACEX 1K系列,扩展100I/O,与系统总线相连;19)GPRS扩展板(可选件):SIMCOM的SIM100-E模块,支持双道语音通信;20)配套JTAG仿真器、电源适配器、通信线缆若干。
dsp实验报告哈工大实验一定时器实验
dsp实验报告哈工大实验一定时器实验实验一定时器实验一. 实验目的1. 通过实验熟悉LF2407A 的定时器;2. 掌握LF2407A 定时器的控制方法;3. 掌握LF2407A 的中断结构和对中断的处理流程;4. 学会运用中断程序控制程序流程。
二. 实验设备计算机,ICETEK-LF2407-EDU 实验箱(或ICETEK 仿真器+ICETEK-LF2407-A系统板+ 相关连线及电源)。
三. 实验原理1. 通用定时器介绍及其控制方法⑴.事件管理器模块(EV)TMS320LF2407A DSP 片内包括两个事件管理模块EVA 和EVB ,每个事件管理器模块包括通用定时器(GP)、比较单元以及正交编码脉冲电路。
每个事件管理模块都包含两个通用定时器,用以完成计数、同步、定时启动ADC、定时中断等功能。
⑵.通用定时器(GP)每个通用定时器包括:一个16 位的定时器增/减计数的计数器TxCNT,可读写;一个16 位的定时器比较寄存器(双缓冲,带影子寄存器)TxCMPR,可读写;一个16 位的定时器周期寄存器(双缓冲,带影子寄存器)TxPR,可读写;一个16 位的定时器控制寄存器TxCON,可读写;可选择的内部或外部输入时钟;用于内部或外部时钟输入的可编程的预定标器(Prescaler);控制和中断逻辑,用于4 个可屏蔽中断—下溢、溢出、定时器比较和周期中断;可选择方向的输入引脚TDIRx,用于双向计数方式时选择向上或向下计数。
通用定时器之间可以彼此独立工作或相互同步工作,完成复杂的任务。
通用定时器在中断标志寄存器EVAIFRA,EVAIFRB,EVBIFRA 和EVBIFRB中有12 个中断标志位。
每个通用定时器可根据以下事件产生4 个中断:上溢—TxOFINF(x=1,2,3 或4);下溢—TxUFINF(x=1,2,3 或4);比较匹配--TxCINT(x=1,2,3 或4);周期匹配--TxPINT(x=1,2,3 或4)。
哈尔滨工程大学实验报告参考模板
实验报告哈尔滨工程大学教务处制实验一:软硬件实验环境配置实验一、实验目的本次实验主要是要求信息安全专业学生熟悉常用的保密泄密分析软件,及其环境配置等工作。
本次课通过破解二进制文件使学生掌握常用的代码分析工具,从而为以后进行造成泄密的系统漏洞进行分析研究奠定工具基础。
二、实验环境(实验所使用的器件、仪器设备名称及规格)装有Windows XP sp2 的操作系统,有Visual C++6.0 编译环境,另外需要安装IDA,OllyDbg, LordPE、UltraEdit 等软件。
三、实验任务及其要求本实验就是破解二进制文件,使学生掌握常用的代码分析工具,从而为以后进行造成泄密的系统漏洞进行分析研究奠定工具基础。
四、实验过程及分析1)在VC6.0下运行附录中所给的C源程序。
我们可以发现只有输入正确的密码1234567才能得到密码验证的确认,不管密码输入正确与否,能否跳出循环直接取决于main函数中的If 判断2)打开IDA,把由VC6.0 得到的.exe 文件直接拖进IDA,稍等片刻,IDA 就会把二进制文件翻译成质量上乘的反汇编代码,默认情况下,IDA会自动识别出main函数,并用类似流程图的形式标注出函数内部的跳转指令,如果按F12,IDA会自动绘制出更加专业和详细的函数流程图。
3)在IDA 的图形显示界面中,用鼠标选中程序分支点,也就是我们要找的对应于C 代码中的if 分支点,按空格键切换到汇编指令界面,光标仍然显示高亮的这条汇编指令就是刚才在流程图中看到的引起程序分支的指令。
可以看到这条指令位于PE文件的.text 节,并且IDA 已经自动将该指令的地址换算成了运行时的内存地址VA:0x004010C9。
4)选在关闭IDA,换用OllyDbg进行动态调试来看看程序到底是怎样分支的。
用OllyDbg把PE文件打开。
5)找到main 函数调用后,按F7 单步跟入就可以看到真正的代码了,我们也可以按快捷键Ctrl+G直接跳到有IDA得到的VA:0x004010C9处查看那条引起程序分支的关键指令。
哈工大 计算机组成技术实验指导
FIFO RAM中 的字符数
8279键输入数据格式表
D7
CNTL
D6
SHIFT
D5~D3 扫描 指出输入键所在的行号 (扫描计数值)
D2~D0 回送
D7、D6分别为控制键CNTL和SHIFT的 状态。CNTL与其它键连用作特殊命令 键,SHIFT可作为上下挡控制键。当 SHIFT接按键(对地),可以与8*8键 盘配合,使各键具有上下键功能,这 样键盘可扩充到128个键。CNTL键可 与任意键组合作为控制键,于是, 8*8键盘最多可扩充至256个键。
8 2 7 9 命 令
字
8279状态格式与状态字
8279的FIFO状态字,主要用于键盘和选通工作方式,以指示数据缓冲器
FIFO/传感器RAM中的字符数和有错误发生。状态字节的读出地址和命令输入
地址相同(A0=1)。状态字节格式如下:
Du S/E O U F N N N
1:FIFO RAM已满 0:FIFO RAM未满 1:出现不足错误 0:无不足 1:出现溢出错误 0:无溢出 1:显示无效 0:显示有效
SL0~SL3扫描信号线也是数码管显示的位选信号线,还有 OA0~OA3, OB0~OB3 :数据输出线
数据显示器的段码从这两组线输出,它们与位选线SL0~SL3同步,实现分时
数据显示。芯片内部有一个16字节长的显示存储器,存储欲显示的段码,最大可支 持16位数码显示。
BD:消隐信号线
此输出信号用来在显示数据切换时进行消隐,以免显示跳动,此信号也可 由消隐命令产生。
指出输入键所在的列号 (由RL7~RL0状态确定)
LED显示器
共阳极
共阳极的LED显示器的发光二级管的阳极连接在一起,通常 此公共阳极接正电压,当某个发光二极管的阴极接低电平时 发光二极管被点亮相应的段被显示
哈工大 计算机软件基础实验报告 范例
preorder(shutree);
printf("\n");
break;
case 2:
printf("输入你要删除的值\n");
scanf("%d",&k);
j=find(shutree,k);
printf("输入你要删除结点的双亲值(无双亲输入0)\n");
scanf("%d",&l);
实验一顺序存储的线性表维护子系统的实现
实验报告
姓名:学号:日期:
一、实验程序
#include <stdio.h>
#define max 20
int last=20;
int node[max]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int main()
s[top]=p->rlink;
}
p=p->llink;
}
if(top!=-1)
{
p=s[top];
top=top-1;
}
}while(p!=NULL || top!=-1);
}
struct node *createtree(struct node *tree)
{
char ch;
scanf("%c",&ch);
k=findi=flag2=0;
while(k<=last-1&&!flag2)
{
if(node[k]==x)
{
findi=k;
哈工大 嵌入式系统实验指导01
实验一:汇编指令实验1.实验目的z了解Keil uVision集成开发环境及软件仿真功能使用。
z掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。
z掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。
z掌握基本的汇编程序调试。
2.实验设备z硬件:PC机一台z软件:WindowsXP系统,Keil uVision 4.0集成开发环境3.实验内容(1)使用LDR指令读取0x40000100地址上的数据,将数据加1。
若结果小于10,则使用STR指令把结果写回原地址;若结果大于等于10,则把0写回原地址。
(2)使用Keil uVision软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口监视R0和R1的值,打开存储器观察窗口监视0x40000100地址上的值。
4.实验预习要求(1)学习ARM指令系统的内容,重点掌握LDR/STR指令和指令条件执行;(2)查阅Keil uVision 软件的介绍,了解软件的功能和操作方法。
5.实验步骤(1)启动Keil uVision,新建一个工程ex01。
见图1-1、图1-2、图1-3。
图1-1 建立工程图1-2 选择目标芯片图1-3 不需要系统提供的Startup文件(2)建立汇编源文件ex01.s,编写实验程序,然后添加到工程中。
见图1-4、图1-5、图1-6、图1-7。
图1-4 建立新文件图1-5 保存扩展名为.s的汇编程序文件图1-6 把文件添加到工程图1-7 添加文件到工程后(3)设置工程选项,存储器映射。
见图1-8、图1-9。
图1-8 设置工程选项图1-9 设置存储器映射(4)编译链接工程。
见图1-10。
(5)进行软件仿真调试。
见图1-11、图1-12、图1-13、图1-14。
图1-11 调试运行图1-12 调试界面图1-13 设置断点图1-14 运行程序6.实验参考程序汇编指令实验的参考程序见程序清单1.1。
程序清单1.1 汇编指令实验参考程序COUNT EQU 0X40000100 ;定义一个变量,地址为0x40000100 AREA RESET, CODE, READONLY ;声明代码段RESETENTRY ;表示程序入口CODE32 ;声明32位ARM指令START LDR R1,=COUNT ;R1 ← COUNTMOV R0,#0 ;R0 ← 0STR R0,[R1] ;[R1] ← R0,即设置COUNT为0LOOP LDR R1,=COUNTLDR R0,[R1] ;R0 ← [R1]ADD R0,R0,#1 ;R0 ← R0 + 1CMP R0,#10 ;R0与10比较,影响条件码标志MOVHS R0,#0 ;若R0 >= 10, 则此指令执行,即R0 ← 0STR R0,[R1] ;[R1] ← R0,即保存COUNTB LOOPEND7.思 考(1)若使用LDRB/STRB代替程序清单中的所有加载/存储指令(LDR/STR),程序会得到正确的执行吗?(2)LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?(提示:LDR伪指令的形式为“LDR Rn,=expr”。
计算机实验原理实验程序
计算机实验原理实验程序实验1:二进制加法器设计与实现实验目的:通过设计与实现二进制加法器,加深对计算机数字电路的理解。
实验要求:1. 使用逻辑门实现一个4位二进制加法器。
2. 利用开关模拟输入信号,通过LED灯显示输出结果。
3. 测试不同的二进制数相加,并观察结果是否正确。
实验步骤:1. 将逻辑门按照图1所示进行连接,构建4位二进制加法器电路。
2. 将4个开关分别连接到A、B的输入端,将进位标志位CI 连接到电源正极。
3. 将4个LED灯分别连接到S的输出端,将进位输出CO连接到第5个LED灯。
4. 打开开关,模拟输入二进制数。
5. 观察LED灯的亮灭情况,判断输出是否正确。
6. 尝试不同的输入组合,观察输出结果是否正确。
7. 总结实验结果并思考可能存在的问题。
实验数据:输入A:0010输入B:0101输出S:0111输出CO:0实验结果分析与讨论:根据实验数据,输入的A为0010,输入的B为0101,输出的S为0111,输出的CO位为0。
经过计算,结果正确。
实验结论:通过实验设计与实现,成功构建了一个4位二进制加法器。
通过对不同的输入组合进行测试,证明了电路能够正确计算加法并输出结果。
实验2:计算机内存读写速度测试实验目的:通过测试计算机内存的读写速度,了解计算机内存的性能特点。
实验要求:1. 使用编程语言编写内存读写测试程序。
2. 测试读取和写入不同大小的数据块,记录时间。
实验步骤:1. 编写内存读写测试程序,包括读取数据块和写入数据块的功能。
2. 设置测试数据块的大小,例如4KB、8KB、16KB等。
3. 记录开始时间。
4. 进行数据读取或写入操作。
5. 记录结束时间,并计算时间差。
6. 分析测试结果,得出计算机内存的读写速度。
实验数据与结果:测试数据块大小为4KB:读取时间:0.001s写入时间:0.002s测试数据块大小为8KB:读取时间:0.001s写入时间:0.003s测试数据块大小为16KB:读取时间:0.003s写入时间:0.005s实验结果分析与讨论:根据实验数据,随着数据块大小的增加,读取和写入时间也逐渐增加。
计算机科学与技术第次实验报告
哈尔滨工程大学《程序设计基础》实验报告基础实践一姓名:班级:学号:实验时间 :2018年5月10日成绩哈尔滨工程大学计算机基础课程授课中心实验题目 1:输入两个整数数组,每个数组有五个整数,将两者和并并排列输出。
设计思想:定义三个数组 , 将两组数据储藏到第三个数组中 , 再用冒泡排序对其由大到小排序并输出。
实验代码及说明:#include <stdio.h>#include <stdlib.h>#define N 10//宏定义int main(){int a[5],b[5],c[N];//第一组数据,第二组,合并数组int i,j,t;//循环变量,中间变量printf("输入第一组数据 :\n");//输入数据for(i=0;i<5;i++)scanf("%d",&a[i]);printf("输入第二组数据 :\n");for(i=0;i<5;i++)scanf("%d",&b[i]);for(i=0;i<5;i++){c[i]=a[i];//两组数据合并c[i+5]=b[i];}for(i=0;i<N-1;i++)//冒泡排序从大到小{for(j=0;j<N-i-1;j++){if(c[j]<c[j+1]){t=c[j];c[j]=c[j+1];c[j+1]=t;}}}printf("合并并由大到小排列后数据为:\n"); for(i=0;i<10;i++)printf("%d\t",c[i]);//排序 : 冒泡 , 选择 , return 0;}考据与结论:总结与心得领悟:数组合并比较简单但要防范数组越界,数组储藏数据是从第 0 位开始,故要多加注意。
冒泡选择是最基础的排序算法必定掌握。
哈工大计组实验指导4
• 特殊全嵌套方式——允许同级中断嵌套(用于级连主片) • 优先权自动循环方式——最高优先权自动转移到相邻的低优先级 中断源,如IR3被响应后,IR3最低,IR4最高。 • 优先权特殊循环方式——优先权由OCW2设置哪个IR最低,其他 的随之确定。
8259A的工作方式
级连方式
级连 不级连
与8080/8085 CPU配合 与8086/8088 CPU配合 优先权固定方式 优先权循环方式 自动中断结束方式 非自动中断结束方式 普通屏蔽方式 特殊屏蔽方式 边沿触发方式 电平触发方式 缓冲方式 非缓冲方式 普通全嵌套方式 特殊全嵌套方式 自动循环方式 特殊循环方式 普通中断结束方式 特殊中断结束方式
哈工大_计算机软件基础实验报告_范例
int main()
{
int i,x;
char choice;
struct node *tree=NULL;
printf ("Please input the numbers that you want to have in your tree :");
scanf ("%d",&max);
for (i=1;i<=max;i++)
t=s;
else
bol=1;
}
if(bol==1)
{
if(p==f->llink)
f->llink=s;
else
f->rlink=s;
}
free(p);
return(t);
}
int main()
{
int n,i,k,m,l,x,y,z;
int flag1=0;
struct node *find(struct node *tree,int x);
if (choice=='Y'||choice=='y')
preorder(tree);
return 0;
}
二、实验过程
先用递归算法建立一颗二叉树,当输入为#时,所对应的节点为空其余全都输入字母,然后再用非递归算法,前序遍历一颗二叉树:即按照访问根节点,遍历左子树,遍历右子树的顺序,遍历这颗二叉树。
r->llink=NULL;
tree=r;
}
else/*树不为空*/
{
r=tree;
while (r!=NULL)
{
q=r;/*q为r,即上个节点地址*/
哈工程体系结构实验
实验报告七、实验数据及结果分析:(修改,自己写一个程序完成某个功能,如何体现的三个相关,对计算机性能有什么影响)1、先装入lcm.s再转入input.s时,因为程序顺序执行,地址顺序符合程序执行顺序,程序能够正确执行;顺序相反时,因为input.s的地址高,而程序顺序执行到input.s时将没有正确的输入窗口,程序执行到输出结果时,也不会出现结果如上图所示,三种相关均出现,数据相关89项,结构相关18项,控制相关14项2、程序中出现数据相关lbu r3,0x0(r2)seqi r5,r3,0xabnez r5,Finish程序中出现控制相关sgt r3,r1,r2bnez r3,r1Greater程序中出现结构相关:div r6,r4,r1div r7,r5,r13、源程序分析.data;***prompts for inputPrompt1: .asciiz "First Number:" ;输入第一个数Prompt2: .asciiz "Second Number:" ;输入第二个数;Data for Printf-TrapPrintfFormat: .asciiz "LCM=%d\n\n" ;输出最小公倍数.align 2;表示下面采用字对齐PrintPar: .word PrintfFormatPrintValue: .space 4.text;第一代码段,默认情况下代码段$CODE会加载到内存0x100地址处 .global main;定义一个全局符号main,即该代码段的首地址main:;***read two positive integer numbers into R1 and R26、使用定向技术,观察数据如下图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3-1
DATA SEGMENT
STRIN1 DB 'ABCDEFGHI' STRIN2 DB ?
DATA ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA START:
MOV AX,DATA
MOV DS,AX
MOV AH,1
INT 21H
CMP AL,31H
JB ERR
CMP AL,38H
JA ERR
LEA SI,STRIN1
SUB AL,31H
MOV AH,0
ADD SI,AX
MOV BL,[SI]
MOV STRIN2,BL
MOV AH,2
INT 21H
JMP EXIT
ERR:
MOV BL,'X'
MOV AH,2
INT 21H
JMP EXIT
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
3-3
DATAS SEGMENT
STR1 DB 'bcCHORgdfuESB','$'
STR2 DB 13 DUP(?)
STR3 DB 13 DUP(?) DATAS ENDS STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME
CS:CODES,DS:DATAS,SS:ST
ACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV SI,0
A1:
MOV AL,STR1[SI]
CMP AL,'$'
JE NEXT
CMP AL,5BH
JA SMALL1
ADD AL,20H
MOV STR2[SI],AL
JMP LAST1
SMALL1:
MOV STR2[SI],AL
LAST1:
INC SI
JMP A1
NEXT:
MOV SI,0
A2:
MOV AL,STR1[SI]
CMP AL,'$'
JE FENAL
CMP AL,58H
JA SMALL2
MOV STR3[SI],AL
JMP LAST2
SMALL2:
SUB AL,20H
MOV STR3[SI],AL
LAST2:
INC SI
JMP A2
FENAL:
MOV AH,4CH
INT 21H
CODES ENDS
END START
3-4
DATAS SEGMENT
ARRAY1 DW
9,7,6,10,55,5678H,3
LEN EQU
($-ARRAY1)/2
N1 DW 55
ARRAY2 DW ?
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME
CS:CODES,DS:DATAS,SS:ST
ACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV SI,0
MOV BX,0
MOV CX,LEN
A1:
M OV AX,ARRAY1[SI]
C MP AX,N1
J E NEXT
M OV ARRAY2[BX],AX
I NC BX
I NC BX
NEXT:
I NC SI
I NC SI
LOOP A1
MOV AH,4CH
INT 21H
CODES ENDS
END START
3-8
DATA SEGMENT
ARRAY DB 15,20,30,60,50,90,75,80 COUNT EQU $-ARRAY
MAX DB ?
POINT DB ?
DATA ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA SI,ARRAY
MOV CX,COUNT
XOR AX,AX
MOV BH,1
MOV BL,0
A1: CMP AL,[SI]
JA A2
MOV AL,[SI]
MOV BL,BH
A2: INC SI
INC BH
LOOP A1
MOV MAX,AL
MOV POINT,BL
MOV AX,4C00H
INT 21H
CODE ENDS
END START
5-1
DATA S EGMENT
WORD1 DB 50
D B ?
D B 50 DUP(0)
WORD2 DB 50
D B ?
D B 50 DUP(0)
YES DB 'MATCH','$'
NO DB 'NO
MATCH','$'
DATA E NDS
CODE S EGMENT
A SSUME
CS:CODE,DS:DATA
START:
M OV AX,DATA
M OV DS,AX
L EA DX,WORD1
M OV AH,10
I NT 21H
M OV DL,0AH
M OV AH,2H
I NT 21H
L EA DX,WORD2
M OV AH,10
I NT 21H
M OV DL,0AH
M OV AH,2H
I NT 21H
M OV BX,OFFSET WORD1
I NC BX
I NC BX
M OV SI,OFFSET WORD2
I NC SI
I NC SI
M OV DX,0
MARK1: MOV AH,[BX]
M OV AL,[SI]
I NC BX
I NC SI
I NC DX
C MP DX,50
J Z MARK2
C MP AH,AL
J Z MARK1
L EA DX,NO
M OV AH,09H
I NT 21H
J MP FINAL
MARK2: LEA DX,YES
M OV AH,09H
I NT 21H
FINAL: MOV
AX,4C00H
I NT 21H
CODE E NDS
E ND START。