电子科技大学微机实验报告(含思考题)河畔下的哈】实验2
电子科技大学实验报告
电子科技大学实验报告电子科技大学实验报告电子科技大学作为中国一流的电子信息科学与技术学府,以其卓越的教育质量和科研实力备受瞩目。
在这所学校里,学生们不仅接受了丰富的理论知识,更重要的是能够通过实验来巩固和应用所学的知识。
实验报告作为实验课程的重要组成部分,对学生的实验能力、分析能力和表达能力都有一定的要求。
一、实验目的与背景每个实验报告都应该明确实验的目的和背景。
在电子科技大学的实验报告中,一般会先介绍该实验所涉及的相关知识和背景,然后明确实验目的。
以“电路实验”为例,可以介绍电路的基本概念和理论知识,然后明确实验目的是通过搭建电路,观察和分析电流、电压、电阻等参数的变化规律。
二、实验装置与步骤实验报告中应该详细描述实验所用的装置和仪器,并给出实验步骤。
例如,在电路实验中,可以列出所用的电源、电阻、电流表、电压表等装置,并详细说明实验的具体步骤,包括搭建电路的过程、调节参数的方法以及观察数据的记录方式。
三、实验结果与数据分析实验结果是实验报告的重要部分,学生需要将实验过程中所得到的数据进行整理和分析。
在电子科技大学的实验报告中,学生可以通过绘制图表、计算数据等方式来展示实验结果。
例如,在电路实验中,可以通过绘制电流与电压的关系曲线图来展示实验结果,并根据曲线的趋势和数据的变化来分析电路的特性和规律。
四、实验讨论与结论实验讨论是实验报告中的重要环节,学生可以在这一部分对实验结果进行讨论和解释。
例如,在电路实验中,学生可以通过比较实验数据和理论计算结果的差异,来分析实验误差的原因,并提出改进的方法。
最后,学生需要总结实验的结论,并对实验的意义和应用进行简要的说明。
五、实验心得与改进意见实验心得是学生对实验过程和结果的个人感悟和体会,可以在实验报告的最后部分进行阐述。
学生可以谈论自己在实验中遇到的困难和解决方法,以及对实验过程和结果的评价。
同时,学生还可以提出对实验的改进意见,以便于今后的实验能够更加顺利和有效地进行。
计算机组成原理实验报告 电子科技大学
计算机专业类课程实验报告课程名称:计算机组成原理学院专业:计算机科学与工程计算机科学与技术学生姓名:**学号:20120600*****指导教师:吴晓华日期:2014年11月30日实验报告实验一一、实验名称:ALU设计实验二、实验内容和目的:(1)实验内容:设计一个4bit ALU,实现两个4bit二进制数的算术运算和逻辑运算1、算术运算(加、减);2、逻辑运算(与、或、置1、清0);(2)实验目的:1.熟悉ALU的工作原理;2. 掌握用硬件描述语言设计ALU的方法;三、实验原理:利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。
要求实现两个四位二进制数的算数运算和逻辑运算,有三个输入,分别是输入的两个四位二进制数和一个控制信号,有两个输出,分别是仅为信号和运算结果的输出。
考虑到是电路的逻辑代码设计简化,采用case语句来实现。
所有的输入都会对最终的结果和进位输出产生影响。
在连线时,八个开关分为两组,分别控制两个四位二进制数的各位,有五个指示灯,四个显示结果的输出,一个用来显示进位信号。
四、实验器材(设备、元器件)硬件平台:pc软件平台:windows xp五、实验步骤:先利用仿真软件进行程序的编写,编译调试运行,结果无误后,在仿真软件上绑定对应开关和连线,打开电路板电源,进行控制操作,观察指示灯的亮灭情况,根据实际的逻辑结果来验证实验代码及连线的正确性,若与实际结果不相符,检查连线以及实验代码,重新进行处理。
六、实验数据及结果分析:(1)实验代码:module pz(in1,in2,se,count,c); input[3:0] in1,in2;input[2:0] se;output[3:0] count;output c;reg[3:0] count;reg c;always@(in1,in2,se)begincase(se)3'b000:{c,count}=in1+in2;3'b001:{c,count}=in1-in2;3'b010:count=in1 & in2;3'b011:count=in1 | in2;3'b100:count=0000;3'b101:count=1111;default:count=5'bx;endcaseendendmodule(2)实验结果照片:八.实验结论、心得体会和改进建议:(1)思考题:在进行算术运时,7(0111)+8(1000)=11117(0111)- 8(1000)=1111 其输出结果都是1111,为什么?答:因为计算时都采用二进制补码来运算,而前者进行相加的两个数都是正数,其补码为其本身。
电子科技大学微机实验报告(含思考题)河畔下的哈】实验6
实验六基于ARM的键盘及数码管驱动实验1.掌握键盘及数码管驱动原理。
2.掌握ZLG7290芯片的使用方法。
3.掌握I2C总线的协议标准。
4.掌握Linux下键盘驱动的实现方法。
编写测试程序控制键盘和数码管。
1.了解ARM9处理器结构2.了解i2c协议硬件:ARM嵌入式开发平台,PC 机Pentium100 以上。
软件:PC机Linux操作系统+MINICOM +AMRLINUX开发环境1、ZLG7290寄存器介绍ZLG7290内部有16个8bits寄存器,访问这些寄存器需要通过I2C 总线接口来实现.访问内部寄存器要通过“I2C总线地址+子地址”的方式来实现。
ZLG7290B 的I2C 总线器件地址是70H(写操作)和71H(读操作)。
? 键值寄存器Key(地址:01H)如果某个普通键(K1~K56)被按下,则微控制器可以从键值寄存器Key中读取相应的键值1~56。
如果微控制器发现ZLG7290 的INT 引脚产生了中断请求,而从Key 中读到的键值是0,则表示按下的可能是功能键。
键值寄存器Key 的值在被读走后自动变成0。
? 显示缓冲区DpRam0~DpRam7(地址:10H~17H)DpRam0~DpRam7 这8 个寄存器的取值直接对应8个数码管的显示内容。
每个寄存器的8 个位分别对应数码管的a,b,c,d,e,f,dp 段,MSB 对应a,LSB 对应dp。
例如大写字母H 的字型数据为6EH(不带小数点)或6FH(带小数点)。
? 命令缓冲区CmdBuf0 和CmdBuf1(地址:07H 和08H)通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。
2、ZLG7290控制命令介绍寄存器CmdBuf0(地址:07H)和CmdBuf1(地址:08H)共同组成命令缓冲区。
通过向命令缓冲区写入相关的控制命令可以实现段寻址、下载显示数据、控制闪烁等功能。
?下载数据并译码(Download)在指令格式中,高4 位的0110 是命令字段;A3A2A1A0 是数码管显示数据的位地址(其中A3 留作以后扩展之用,实际使用时取0 即可),位地址编号依次为0,1,2,3,4,5,6,7,代表8个数码管,dp 控制小数点是否点亮,0-点亮,1-熄灭;flash 表示是否要闪烁,0-正常显示,1-闪烁;d4d3d2d1d0 是要显示的数据,包括10 种数字和21 种字母。
微机原理实验报告
微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。
本实验报告将介绍我对微机原理实验的学习和思考。
实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。
通过实际操作,我加深了对计算机内部数据表示方式的理解。
这对于后续学习计算机系统结构和编程语言至关重要。
实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。
这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。
实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。
这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。
实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。
实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。
这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。
实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。
实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。
通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。
未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。
我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。
微机原理实验报告2g(参考答案)
实验步骤及结果记录: 实验步骤: (1) 打开 DVCC-598JH 实验箱电源。 (2) 启动计算机,运行 DVCC-598JH 实验系统。 (3) 新建文件、输入程序并保存文件。 (4) 按 F9 键调试程序。 (5) 按 Ctrl+F9 键编译链接并传送文件至 DVCC-598JH 实验箱。 (6) 打开内部数据区,将 20H 单元的值更改为 00H 运行,观察程序运行情况。 (7) 分别将 20H 单元的值更改为正数(01H~7FH) 、负数(80H~0FFH)运行, 观察程序运行情况。 结果记录: 将 20H 单元的值更改为 00H 运行,观察到 21H 单元的值为 00H; 将 20H 单元的值更改为 08H 运行,观察到 21H 单元的值为 01H; 将 20H 单元的值更改为 87H 运行,观察到 21H 单元的值为 0FFH;
实验步骤及结果记录: 实验步骤: (1) 新建文件、输入程序并保存文件。 (2) 按 F9 键调试程序。 (3) 按 Ctrl+F9 键编译链接并传送文件至 DVCC-598JH 实验箱。 (4) 打开内部数据区,更改从 20H 单元的 8 个数据,观察程序运行情况。 (5) 打开外部数据区,观察从 2000H 开始的 16 个单元数据,检查运行结果的正确性。 结果记录: 20H 给定值 观察值 观察值 87H 2000H 07H 2001H 08H 21H 54H 2002H 04H 2003H 05H 22H 36H 2004H 06H 2005H 03H 23H 23H 2006H 03H 2007H 02H 24H 19H 2008H 09H 2009H 01H 25H 43H 200AH 03H 200BH 04H 26H 77H 200CH 07H 200DH 07H 27H 69H 200EH 09H 200FH 06H
电子科技大学微处理器与嵌入式系统设计实验报告一
电⼦科技⼤学微处理器与嵌⼊式系统设计实验报告⼀微处理器系统结构与嵌⼊式系统设计实验报告微处理器系统结构与嵌⼊式系统设计实验名称 ARM基础编程实验⼀、实验⽬的1.熟悉并掌握常⽤ARM汇编指令2.熟悉并掌握“C+汇编”混合编程技术3.熟练使⽤ARM软件开发调试⼯具Keil⼆、实验内容1.学习使⽤Keil开发⼯具2.使⽤ARM汇编语⾔,编程实现1+2+……+N累加运算功能3.使⽤C调⽤汇编函数,实现字符串拷贝功能4.使⽤汇编调⽤C函数,实现求和运算功能5.使⽤ARM汇编语⾔,实现冒泡排序算法(选做)三、实验步骤1.实验1.1:运⾏Keil,建⽴⼯程⽂件,单步运⾏调试演⽰⽰例程序,深刻理解每⼀条指令,观察寄存器,内存空间的变化。
2.实验1.2:⽤汇编语⾔实现1+2+...+N的累加:a)建⽴新⼯程,加⼊实验1.2⽂件夹中的sum.s。
b)⽤汇编补充算法核⼼部分,代码参考流程图如下图1.1所⽰。
c)使⽤单步调试,仔细观察过程中关键寄存器值的变化。
微处理器系统结构与嵌⼊式系统设计实验报告RO=R0+R1R1=R1+1SUM_END结果溢出?R1>=NNOYESYESNO图1.13. 实验1.3:C 调⽤汇编实现字符串拷贝功能:a) 建⽴新⼯程,加⼊实验1.3⽂件夹中的main.c 和testfile.s(同⼀个⼯程下添加两个⽂件⼀起编译)。
b) 补充完成源代码中缺失的部分,分别实现1. 拷贝源字符串的⼀个字节到R2中;2. 将拷贝的字节复制到⽬标空间。
c) 运⾏Debug 进⾏调试。
4. 实验1.4:汇编调⽤C 实现求和1+2+ (10)a) 建⽴新⼯程,加⼊实验1.4⽂件夹中的sum.c 和testfile.s(同⼀个⼯程下添加两个⽂件⼀起编译)。
b) 补充完成源代码中缺失的部分,通过调⽤c 函数g()实现1+2+3+glovb1,结果存在R8中。
c) 运⾏Debug 进⾏调试5. 实验1.5:ARM 汇编实现冒泡算法:a) 建⽴新⼯程,加⼊实验1.5⽂件夹中的maopao.s 。
电子科技大学微机实验报告实验5
电子科技大学微机实验报告实验5第一篇:电子科技大学微机实验报告实验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 的显示情况。
电子科技大学实验报告
(一)用WinDLX模拟器执行求阶乘程序fact.s。
这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
(二)用WinDLX模拟器执行程序gcm.s。
该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
(三)用WinDLX模拟器执行求素数程序prim.s。
这个程序计算若干个整数的素数。
六、实验器材(设备、元器件):
PC微机一台
七、实验步骤及操作:
1.双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File菜单中的Reset all菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。
1.2.选择File/Load Code or Data,按如下步骤操作,可将fact.s和input.s这两个程序装入主存:
◆点击fact.s
◆点击select按钮
◆点击input.s
◆点击select按钮
◆点击load按钮
3.点击主窗口中的Execution开始运行。
4.程序gcm.s和prim.s的运行过程同上。
八、实验数据及结果分析:
九、实验结论:
十、总结及心得体会:
十一、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字:
电子科技大学
实验报告
学生姓名:
学号:
一、实验室名称:计算机学院计算心
二、实验项目名称:熟悉WinDLX的使用
微机实验二实验报告
东南大学《微机实验及课程设计》实验报告实验二汇编语言程序设计姓名:学号:专业:实验时间:2011年04月18日报告时间:2010年04月23日评定成绩:审阅教师:一. 实验目的1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS功能调用的基本方法。
二. 方案实现与测试(一)实验环境实验环境同实验一(二)实验步骤(1)编写程序实现如下功能;①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来,并显示字符串“The total number is XXXXX”②从键盘输入在0-65535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在0-65535之间的十进制数。
③题目同上,在输入数值时采用按位判断方法,即每位数字输入是判断,如果不符合则拒绝输入该字符,并将符合的字符存入。
(2)复习功各种操作,并用DEBUG调试程序,学会基本命令操作,并通过单步、设置断点等方法观察中间结果,完成正常运行。
命令行方式下直接键入debug myfile.exe回车(myfile为待调试可执行程序),进入调试方式(显示—),键入H回车显示全部命令、格式和功能。
常用命令有;U(反汇编)、A(汇编输入指令程序)、R(寄存器显示/修改)、I(端口输入)、0(端口输出)、D(显示数据)、E(修改数据)。
除资源修改管理功能外,重点应用T(单步)、Tn(执行n步)、P(过程/指令)、G××××(从当前器:IP执行到断点××××)或G=××××l ××××2(从××××l执行到××××2断点)调试实驴程序。
《微机》实验报告格式
《微机》实验报告格式《微机原理及应用》实验报告班级:08电科(1)学号:Xb08640103 姓名:李飞实验时间:4月12号同组同学:陈庆奇实验成绩:实验名称:实验一清零程序一、实验目的:1、掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。
2、掌握汇编语言设计和调试方法。
进一步掌握汇编语言设计和调试方法。
二、实验内容:1、把RAM区内4000H~40FFH单元的内容清零。
2、把4000H的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 高位清零,一般本程序用于把数据送显示缓冲区时用。
3、把4000H、4001H的低位分别送入4002H高低四位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序框图及电路连接图程序1:程序2:程序3:四、源程序清单(注释部分请手写)程序1:汇编语言源程序结构部分CODE SEGMENT ASSUME CS:CODE ORG 3000H行数标号指令;注释1 S1 MOVBX,4000H2 MOVAX,0000H3 MOVCX,0080H4 XOR AX,AX5 L1 MOV [BX],AX6 INC BX7 INC BX8 DEC CX9 JNZ L110 JMP $汇编语言源程序结构部分CODE ENDS END S1程序2:程序1:汇编语言源程序结构部分CODE SEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG 3020H行数标号指令;注释1 S2 MOV BX,4000H2 MOV AL,[BX]3 MOV AH,AL4 MOV CL,45 SHR AH,CL6 INC BX7 MOV [BX],AH8 AND AL,0FH9 INC BX10 MOV [BX],AL11 JMP $汇编语言源程序结构部分CODE ENDSEND S2程序2:程序1:汇编语言源程序结构部分CODE SEGMENT ASSUMECS:CODE,DS:CODE,ES:CODEORG 3040H行数标号指令;注释1 S3 MOV BX,4000H2 MOV AX,[BX]3 AND AL,0FH4 MOV CL,45 SHL AL,CL6 OR AL,AH7 ADD BX,28 MOV [BX],AL9 JMP $汇编语言源程序结构部分CODE ENDSEND S3五、程序运行结果程序1结果:把RAM区内4000H~40FFH单元的内容清零。
最新微机实验报告六
最新微机实验报告六实验目的:1. 熟悉微机系统的基本组成和工作原理。
2. 掌握微处理器的指令集及其使用方法。
3. 学习如何编写和调试汇编语言程序。
4. 理解中断处理机制及其在微机系统中的应用。
实验内容:1. 实验一:微机系统组成与工作原理- 研究微机的基本硬件组成,包括中央处理器(CPU)、内存、输入输出设备等。
- 通过实验设备,观察并理解微机的启动过程和操作系统的加载过程。
2. 实验二:微处理器指令集学习- 学习x86架构的微处理器指令集,包括数据传输、算术运算、逻辑运算和控制转移指令。
- 编写简单的汇编程序,实现指定的算法或功能。
3. 实验三:汇编语言程序设计与调试- 使用汇编语言编写程序,实现数据的输入输出操作。
- 利用调试工具进行程序调试,理解程序执行过程中的寄存器状态、内存变化等。
4. 实验四:中断处理机制- 学习中断的基本概念,包括中断源、中断向量、中断服务程序等。
- 编写中断服务程序,实现对外部设备的响应和处理。
实验环境:- 实验设备:个人计算机,装配有最新的操作系统和汇编语言开发环境。
- 软件工具:汇编器、调试器、编程IDE等。
实验步骤:1. 按照实验指导书的说明,搭建实验环境。
2. 完成每个实验的预习,理解实验的理论基础。
3. 按照实验步骤,逐步进行实验操作。
4. 记录实验数据和结果,撰写实验报告。
实验结果:- 成功搭建了微机实验环境,并完成了系统的启动和操作系统加载的观察。
- 掌握了x86架构微处理器的基本指令集,并能够编写简单的汇编程序。
- 通过调试工具,成功定位并修正了程序中的错误。
- 编写了中断服务程序,并成功实现了对模拟中断信号的处理。
实验结论:通过本次实验,加深了对微机系统工作原理的理解,熟悉了微处理器的指令集和汇编语言程序的编写。
同时,通过中断处理机制的学习,理解了其在微机系统中的重要性和应用方式。
实验过程中遇到的问题和解决方法也为今后的学习和研究打下了良好的基础。
电子科大实验报告
一、实验名称计算机组成原理实验二、实验目的1. 掌握计算机组成原理的基本概念和组成结构。
2. 理解计算机各部件之间的逻辑关系和功能。
3. 学习计算机指令系统的基本原理和应用。
4. 培养动手实践能力和分析问题的能力。
三、实验内容1. 计算机硬件系统组成实验2. 计算机指令系统实验3. 计算机寻址方式实验4. 计算机中断系统实验四、实验原理1. 计算机硬件系统组成实验:通过搭建计算机硬件系统,了解计算机各个部件的功能和相互关系,包括中央处理器(CPU)、存储器、输入输出设备等。
2. 计算机指令系统实验:学习计算机指令系统的基本原理,包括指令格式、寻址方式、指令执行过程等。
3. 计算机寻址方式实验:了解计算机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等,并掌握不同寻址方式的应用。
4. 计算机中断系统实验:学习计算机中断系统的原理,包括中断源、中断控制器、中断处理程序等,以及中断处理过程。
五、实验设备及器材1. 计算机组成原理实验箱2. 示波器3. 数字万用表4. 计算机软件:Keil、Proteus等六、实验过程及数据记录1. 计算机硬件系统组成实验(1)搭建计算机硬件系统,包括CPU、存储器、输入输出设备等。
(2)观察各个部件之间的连接和信号传输。
(3)测试计算机硬件系统的基本功能。
2. 计算机指令系统实验(1)编写简单的汇编语言程序,实现加法、减法等运算。
(2)使用Proteus软件模拟程序执行过程,观察CPU的运行状态和寄存器的内容。
3. 计算机寻址方式实验(1)编写汇编语言程序,实现不同寻址方式的操作。
(2)使用Proteus软件模拟程序执行过程,观察不同寻址方式对指令执行的影响。
4. 计算机中断系统实验(1)编写汇编语言程序,实现中断请求和处理。
(2)使用Proteus软件模拟程序执行过程,观察中断处理过程。
七、实验结果分析1. 通过搭建计算机硬件系统,了解了计算机各个部件的功能和相互关系,掌握了计算机硬件系统的基本原理。
微机原理实验报告
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
电子科大_实验报告
一、实验名称计算机组成原理实验二、实验目的1. 理解计算机的基本组成和结构。
2. 掌握计算机硬件各模块的功能和作用。
3. 熟悉计算机指令的执行过程。
4. 通过实验验证计算机组成原理的相关知识。
三、实验内容1. 计算机硬件各模块功能实验2. 指令执行过程实验3. 算术逻辑单元(ALU)实验4. 控制单元实验5. 存储器实验四、实验原理计算机是由硬件和软件两部分组成的。
硬件主要包括中央处理器(CPU)、存储器、输入输出设备等。
软件则是指计算机运行的各种程序和数据。
1. 计算机硬件各模块功能实验计算机硬件各模块功能实验主要是验证计算机硬件各模块的功能和作用。
通过实验,了解计算机硬件的基本组成和工作原理。
2. 指令执行过程实验指令执行过程实验是验证计算机指令的执行过程。
通过实验,掌握计算机指令的执行步骤,理解计算机指令的执行原理。
3. 算术逻辑单元(ALU)实验算术逻辑单元(ALU)实验是验证ALU的功能和作用。
通过实验,了解ALU在计算机中的作用,掌握ALU的运算原理。
控制单元实验是验证控制单元的功能和作用。
通过实验,了解控制单元在计算机中的作用,掌握控制单元的控制原理。
5. 存储器实验存储器实验是验证存储器的功能和作用。
通过实验,了解存储器在计算机中的作用,掌握存储器的存储原理。
五、实验设备及器材1. 计算机组成原理实验箱2. 指示灯3. 连接线4. 信号发生器5. 示波器6. 万用表六、实验过程及数据记录1. 计算机硬件各模块功能实验(1)观察实验箱中各个模块的连接情况,记录各个模块的名称和功能。
(2)按照实验指导书的要求,进行各个模块的实验操作,观察各个模块的工作情况,记录实验结果。
2. 指令执行过程实验(1)按照实验指导书的要求,设置实验参数,观察指令执行过程中的各个阶段。
(2)记录指令执行过程中的各个阶段的时间,分析指令执行过程。
3. 算术逻辑单元(ALU)实验(1)观察实验箱中ALU的连接情况,了解ALU的输入输出端口。
电子科技大学微机实验报告含思考题河畔下的哈实验.docx
实验一ARM汇编基础实验1.掌握ARM汇编指令2.学习掌握C与汇编混合编程基础3.熟练使用ARM调试工具RVDS进行调试操作1.熟悉ARM汇编2.用ARM汇编实现1+2+...+N3.C调用汇编实验(实现字符串拷贝功能)4.汇编调用C实验5.ARM汇编实现冒泡算法(选做)1.ARM汇编、C语言2.RVDS工具硬件:PC机PentiumlOO以上软件:Windows操作系统,RVDS软件1.在汇编中使用C定义的全局变量在汇编和C之间进行一些数据的传递,最简便的办法就是使用全局变量。
在汇编中调用C中定义的全局变量,需要在汇编中IMPORT对应的全局变量。
IMPORT伪指令用于通知编译器要使用的标号或变量在其他的源文件中定义。
例如:汇编文件asmfile.s想调用C文件cfile.c中定义的全局变量a,则在汇编文件asmfile.s 前面要添加:IMPORT a2.在汇编中调用C的函数要在汇编中调用C文件中定义的函数,主要做两方面的工作:首先:需要在汇编中IMPORT对应的C函数名。
其次:在调用该C函数之前还需要通过汇编语言传递该函数的参数。
C和汇编之间的参数传递是通过ATPCS (ARM Thumb Procedure Call Standard)的规定来进行的。
简单的说就是如果函数有不多于四个参数,对应的用ARM寄存器R0-R3来进行传递, 多于4个时借助栈。
函数的返回值通过R0来返回。
3.在C中调用汇编的函数在C中调用汇编文件中的函数,要做的主要工作有两个:一:是在C中声明函数原型,并加extern关键字;二:是在汇编中用EXPORT导出函数名,并用该函数名作为汇编代码段的标识,最后用mov pc, lr返回。
然后,就可以在C中使用该函数了。
EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。
1、用ARM汇编实现l+2+-.n的运算。
2、理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。
电子科大微嵌实验报告二
电子科技大学实验报告课程名称微处理器系统与嵌入式系统综合实验实验名称实验二_SoC平台环境搭建任课教师实验教师姓名学号实验地点科B239 分组号时间年月日一、实验目的1、了解SoC平台环境搭建的具体操作流程2、学习Xilinx Vivado&SDK 2017.3工具的使用3、熟悉SoC平台环境搭建过程和工作原理二、实验内容以PS与PL协同设计实现GPIO为例,自行搭建SoC平台环境。
将FPGA当做一个PS处理器的外设,通过寄存器地址映射到PS的寻址空间。
在处理器中使用C程序访问这些寄存器,来实现软件和逻辑结合的协同设计的效果。
具体步骤是先在VIVADO中配置ZYNQ处理器,做好FPGA的外设,互联完成之后生成BIT流文件下载到板子。
在SDK环境下开发好软件之后,进行在线调试运行。
三、实验步骤1.打开桌面VIVADO 2017.3,点击Create Project创建新工程。
为新工程命名,选择工程保存路径,点击Next。
选择芯片xc7z020clg484-1,点击Next → Finish。
点击Create Block Design,创建块设计,并命名2.在右侧Diagram窗口空白处右击→ Add IP。
搜索zynq,双击ZYNQ7 Processing System,添加zynq处理器,并点击Run Block Automation,勾选处理器→点击OK,会自动进行一些配置3.再添加两个GPIO核,在Diagram窗口空白处右击→ Add IP → 搜索gpio → 双击。
操作两次,添加两个AXI GPIO核,点击Run Connection Automation,勾选All Automation,点击OK,进行自动配置。
自动连接之后在空白处右击选择Regenerate Layout,重新布局4.双击ZYNQ处理器核,进行配置,更改DDR型号为MT41K256M16 RE-15E,将Bank1 I/O电平设为1.8V,勾选Uart1,用于通过串口查看程序打印信息5.将GPIO IP核的名字和端口名称修改为LED和SW。
微机原理实验报告
微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。
二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。
通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。
接着我们进行了CPU总线实验。
通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。
同时,我们学习了编写程序来控制CPU读写存储器等。
最后,我们进行了8255并行接口控制实验。
通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。
三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。
在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。
四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。
只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。
在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。
微机实验报告2--周
《微机原理与应用》实验报告
实验序号:实验二实验项目名称:熟悉调试程序DEBUG
学号姓名专业、班
实验地点实1_314 指导教师周明实验时间2013-10-29
一、实验目的及要求
1、熟悉dos常用指令:dir,cd,path,copy,cls,exit,help等。
2、熟悉调试程序DEBUG
3、掌握常用DEBUG命令:
-A 汇编-U 反汇编
-T 单步执行-G 断点执行
-D 数据显示-R 寄存器
4、通过简单程序练习,熟悉程序格式
5、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响
二、实验设备(环境)及要求
PC机一台。
三、实验内容与步骤
1进入dos界面,在运行界面输入cmd,然后输入debug:
输入指令r:
输入指令?:
输入指令-u
输入汇编指令,并开始编译
输入显示指令-d和进行单步执行-t:
求1到100累加,总和超过1000就停止的数:所以结果为(040B)h。
单步执行并显示:
四、实验结果与数据处理
五、分析与讨论
六、教师评语
成绩
签名:
日期:。
电子科技大学微机实验报告-实验2
实验二 ARM 汇编控制LED 实验【实验目的】1、理解掌握通过ARM 汇编控制硬件操作;2、熟练使用ARM 调试软件RVDS 进行硬件调试。
【实验内容】1、掌握ARM 处理器GPIO 相关寄存器的使用;2、用ARM 汇编实现控制开发LED 按照一定方式点亮。
【预备知识】1、ARM 汇编基础2、ARM 处理器通用IO 口的操作【实验设备和工具】软件:Windows 操作系统,RVDS 软件硬件:ARM 嵌入式开发板,PC 机Pentium100 以上,并口线,JTAG 板,JTAG 连接线【实验原理】1、 S3C2440 处理器相关寄存器介绍PORT G 控制寄存器( GPGCON )PORT G 数据寄存器(GPGDAT)PORT G 禁止上拉寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者S3C2440 芯片手册。
2、开发板LED 部分原理图说明GPG5 接LED4,串联上拉电阻GPG6 接LED5,串联上拉电阻GPG7 接LED6,串联上拉电阻GPG8 接LED7,串联上拉电阻所以,当IO 口输出低电平时,相应的LED 才能点亮。
【实验步骤】(一)LED 汇编实验1、通过查看S3C2440 处理器G 口控制寄存器,在文件中添加汇编代码,设置GPG5-GPG8 为output。
2、在文件中添加汇编代码,禁止GPG5-GPG8 端口的上拉电阻。
3、在文件中添加汇编代码,点亮LED6,熄灭LED5,LED7,LED8,并调用延时。
4、在文件中添加汇编代码,点亮 LED7,熄灭 LED5,LED6,LED8,并调用延时。
5、在文件中添加汇编代码,点亮LED8,熄灭LED5,LED6,LED7,并调用延时。
6、在文件中添加汇编代码,实现LED5-LED8 依次点亮。
7.连接好 JTAG 仿真板,一口与 PC 的并口相连,另一口与开发板的 JTAG 口相连,打开开发板电源。
打开H-jtag 程序,检测CPU,点击RVDS 中的“Debu g”,打开RVD 进行硬件调试(二)LED C 语言实验(选做)【实验结果和程序】(一)LED 汇编实验;GPIO 寄存器宏定义GPGCON EQU 0xGPGDAT EQU 0xGPGUP EQU 0xEXPORT LEDTESTAREA LEDTESTASM,CODE,READONL Y ; 该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读ENTRYLEDTEST;设置GPG5-GPG8(即LED4--LED7)为outputldr r0,=GPGCONldr r1,[r0]movr1,#0x00015400str r1,[r0];禁止GPG5-GPG8(即LED4--LED7)端口的上拉电阻ldr r0,=GPGUPldr r1,[r0]movr1,#0x01e0str r1,[r0]looptest;将数据端口G 的数据寄存器的地址附给寄存器r2ldr r2,=GPGDAT; 点亮LED5,熄灭LED6-LED8,并调用延时ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0020str r3,[r2] ;GPG5(即LED5) output 0ldr r0,=0xffffff ;初始计数值bl delay ;调用延迟子程序;----------点亮LED6,熄灭LED5,LED7,LED8,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0040str r3,[r2] ;GPG6(即LED6) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED7,熄灭LED5,LED6,LED8,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0080str r3,[r2] ;GPG7(即LED7) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED8,熄灭LED5,LED6,LED7,并调用延时---- ldr r3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0100str r3,[r2] ;GPG8(即LED8) output 0 ldr r0,=0xffffff ;初始计数值bl delay;-------------实现LED5-LED8 依次点亮-------------------b looptestdelaysub r0,r0,#1 ;r0=r0-1cmp r0,#0x0 ;将r0 的值与0 相比较bne delay ;比较的结果不为0(r0 不为0),继续调用delay,否则执行下一条语句mov pc,lr ;返回END ;程序结束符(二)LED C 语言实验(选做)arm 汇编部分:AREA |DATA|,CODE,READONL YENTRY;ldr r13,=0x1000IMPORT mainb mainENDC 语言部分://---------------Serial Experiment--------------------//-----------This is coded by UESTC HQ 20/*串口通信C 程序,按‘e’退出通信*/#define ULCON0 (*(volatile unsigned *)0x) //UART 线控制寄存器#define UCON0 (*(volatile unsigned *)0x) //UART 控制寄存器#define UFCON0 (*(volatile unsigned *)0x) //FIFO 控制寄存器#define UMCON0 (*(volatile unsigned *)0x5000000C) //AFC disable#define UTRSTA T0 (*(volatile unsigned*)0x) //UART 状态寄存器#define UBRDIV0 (*(volatile unsigned *)0x) //波特率#define UTXH0 (*(volatile unsigned *)0x)#define URXH0 (*(volatile unsigned *)0x)#define CAMDIV0 (*(volatile unsigned *)0x4C000018)#define GPHCON (*(volatile unsigned *)0x)#define GPHDAT (*(volatile unsigned *)0x)#define GPHUP (*(volatile unsigned *)0x)#define MPLLCON (*(volatile unsigned *)0x4C000004)#define UPLLCON (*(volatile unsigned *)0x4C000008)#define CLKDIVN (*(volatile unsigned *)0x4C000014)#define WTCON (*(volatile unsigned *)0x)void initpll(){MPLLCON=0x76022; //Fin=, Fout=CLKDIVN=0x07; //0000 0111}void inituart(){ULCON0=0x03; //1 位起始位,8 位数据位UCON0 =0x0805; //串口时钟PCLK,查询方式UFCON0 =0x0;UMCON0 =0x0;UBRDIV0 =0x17; // 波特率115200 UBRDIV0 = /(115200*16)-1=24-1=23}void initgpio(){GPHCON |=0xa0; // set to rxd and txdGPHUP |=0x0f; // pull upWTCON &=0xdb;}void uart_send(char * c){for (; *c != '\0'; c++){URXH0 = *c ;}}unsigned char uart_get() {}int main(){UTXH0=URXH0; return UTXH0;char key = ' ';initpll(); //初始化锁相环PLLinitgpio(); //初始化IO 口inituart(); //初始化串口uart_send("If you want to quit ,please press 'e'\r\n"); while(1){key = uart_get();if (key == 'e'){} else {uart_send ("\r\nyou pressed 'e' and you'll quit!\r\n"); break;uart_send(&key);}}uart_send("the program exited by user!\r\n");return 0;}【思考题】1 、如何实现 LED0-LED7 的循环点亮。
电子科技大学微机实验报告[含思考题]河畔下的哈]实验
实验三ARM汇编实现串口通信实验1.掌握ARM 的串行口工作原理。
2.学习编程实现ARM和PC机的UART通信。
3.掌握ARM裸机下汇编语言编程方法。
1.学习串行通信原理,了解串行通信控制寄存器。
2.编程实现ARM 和计算机之间的串行通信。
1、ARM汇编基础2、ARM处理器通用IO口的操作? 硬件:ARM嵌入式开发平台,PC 机一台,并口线,串口线,JTAG板? 软件:RVDS,H-JTAG1.异步串行I/O异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。
数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线(输入,输出)即可进行。
2.串口通信流程串口通信就是读写寄存器的操作,通过配置相关寄存器,查询寄存器就可以操作串口通信。
需要配置的寄存器有系统时钟,UART行控制寄存器,UART控制寄存器,UART FIFO控制寄存器,UART MODEM控制寄存器,UART波特率控制寄存器;需要查询的寄存器是发送/接收状态寄存器。
1. 打开CodeWarrior for RVDS,建立一个工程,通过查S3C2440处理器手册的UART通信寄存器,serialcommutication.s文件中添加代码实现串口通信传输2. 设置工程配置选项,Language Setting->Realview Assembler和Realview Compiler中的Architecture设置为ARM920T,配置RVDS下的连接器Linker->Realview Linker中的RO Base 为0x300000003.编译和调试工程。
4. 连接PC和实验板的并口,串口;并口连接至ARM的JTAG口,串口连接至COM PORT 口;打开电源;打开H-JTAG程序(。
5. 点击调试器Dubeg->Run,运行程序,打开超级终端,在开始->程序->附件->通讯里打开超级终端,使用COM1,设置波特率115200,8位数据位,无奇偶校验,1位停止位,无数据流控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二ARM汇编控制LED实验1、理解掌握通过ARM汇编控制硬件操作;2、熟练使用ARM调试软件RVDS进行硬件调试。
1、掌握ARM处理器GPIO相关寄存器的使用;2、用ARM汇编实现控制开发LED按照一定方式点亮。
1、ARM汇编基础2、ARM处理器通用IO口的操作软件:Windows操作系统,RVDS软件硬件:ARM嵌入式开发板,PC 机Pentium100 以上,并口线,JTAG板,JTAG连接线1、S3C2440处理器相关寄存器介绍? PORT G 控制寄存器(GPGCON )? PORT G数据寄存器(GPGDAT)? PORT G禁止上拉寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者S3C2440芯片手册。
2、开发板LED部分原理图说明? GPG5接LED4,串联上拉电阻? GPG6接LED5,串联上拉电阻? GPG7接LED6,串联上拉电阻? GPG8接LED7,串联上拉电阻所以,当IO口输出低电平时,相应的LED才能点亮。
(一)LED汇编实验1、通过查看S3C2440处理器G口控制寄存器,在ledtest.s文件中添加汇编代码,设置GPG5-GPG8为output。
2、在ledtest.s文件中添加汇编代码,禁止GPG5-GPG8端口的上拉电阻。
3、在ledtest.s文件中添加汇编代码,点亮LED6,熄灭LED5,LED7,LED8,并调用延时。
4、在ledtest.s文件中添加汇编代码,点亮LED7,熄灭LED5,LED6,LED8,并调用延时。
5、在ledtest.s文件中添加汇编代码,点亮LED8,熄灭LED5,LED6,LED7,并调用延时。
6、在ledtest.s文件中添加汇编代码,实现LED5-LED8依次点亮。
7.连接好JTAG仿真板,一口与PC的并口相连,另一口与开发板的JTAG口相连,打开开发板电源。
打开H-jtag程序,检测CPU,点击RVDS中的“Debug”,打开RVD进行硬件调试(二)LED C语言实验(选做)(一)LED汇编实验;GPIO寄存器宏定义GPGCON EQU 0x56000060GPGDAT EQU 0x56000064GPGUP EQU 0x56000068EXPORT LEDTESTAREA LEDTESTASM,CODE,READONL Y ;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读ENTRYLEDTEST;设置GPG5-GPG8(即LED4--LED7)为outputldr r0,=GPGCONldr r1,[r0]mov r1,#0x00015400str r1,[r0];禁止GPG5-GPG8(即LED4--LED7)端口的上拉电阻ldr r0,=GPGUPldr r1,[r0]mov r1,#0x01e0str r1,[r0]looptest;将数据端口G的数据寄存器的地址附给寄存器r2ldr r2,=GPGDAT; 点亮LED5,熄灭LED6-LED8,并调用延时ldr r3,[r2]orr r3,r3,#0x01e0bic r3,r3,#0x0020str r3,[r2] ;GPG5(即LED5) output 0ldr r0,=0xffffff ;初始计数值bl delay ;调用延迟子程序;----------点亮LED6,熄灭LED5,LED7,LED8,并调用延时---- ldr r3,[r2]orr r3,r3,#0x01e0bic r3,r3,#0x0040str r3,[r2] ;GPG6(即LED6) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED7,熄灭LED5,LED6,LED8,并调用延时---- ldr r3,[r2]orr r3,r3,#0x01e0bic r3,r3,#0x0080str r3,[r2] ;GPG7(即LED7) output 0ldr r0,=0xffffff ;初始计数值bl delay;----------点亮LED8,熄灭LED5,LED6,LED7,并调用延时---- ldr r3,[r2]orr r3,r3,#0x01e0bic r3,r3,#0x0100str r3,[r2] ;GPG8(即LED8) output 0ldr r0,=0xffffff ;初始计数值bl delay;-------------实现LED5-LED8依次点亮-------------------b looptestdelaysub r0,r0,#1 ;r0=r0-1cmp r0,#0x0 ;将r0的值与0相比较bne delay ;比较的结果不为0(r0不为0),继续调用delay,否则执行下一条语句mov pc,lr ;返回END ;程序结束符(二)LED C语言实验(选做)arm汇编部分:AREA |DATA|,CODE,READONL YENTRY;ldr r13,=0x1000IMPORT mainb mainENDC语言部分://---------------Serial Experiment--------------------//-----------This is coded by UESTC HQ 20101018-------/*串口通信C程序,按‘e’退出通信*/#define ULCON0 (*(volatile unsigned *)0x50000000) //UART线控制寄存器#define UCON0 (*(volatile unsigned *)0x50000004) //UART控制寄存器#define UFCON0 (*(volatile unsigned *)0x50000008) //FIFO控制寄存器#define UMCON0 (*(volatile unsigned *)0x5000000C) //AFC disable#define UTRSTAT0 (*(volatile unsigned*)0x50000010) //UART状态寄存器#define UBRDIV0 (*(volatile unsigned *)0x50000028) //波特率#define UTXH0 (*(volatile unsigned *)0x50000020)#define URXH0 (*(volatile unsigned *)0x50000024)#define CAMDIV0 (*(volatile unsigned *)0x4C000018)#define GPHCON (*(volatile unsigned *)0x56000070)#define GPHDAT (*(volatile unsigned *)0x56000074)#define GPHUP (*(volatile unsigned *)0x56000078)#define MPLLCON (*(volatile unsigned *)0x4C000004)#define UPLLCON (*(volatile unsigned *)0x4C000008)#define CLKDIVN (*(volatile unsigned *)0x4C000014)#define WTCON (*(volatile unsigned *)0x53000000)void initpll(){MPLLCON=0x76022; //Fin=16.9344MHz, Fout=266.72MHz CLKDIVN=0x07; //0000 0111}void inituart(){ULCON0=0x03; //1位起始位,8位数据位UCON0 =0x0805; //串口时钟PCLK,查询方式UFCON0 =0x0;UMCON0 =0x0;UBRDIV0 =0x17; //波特率115200 UBRDIV0 = 44450000/(115200*16)-1=24-1=23}void initgpio(){GPHCON |=0xa0; // set to rxd and txdGPHUP |=0x0f; // pull upWTCON &=0xdb;}void uart_send(char * c){for (; *c != '\0'; c++){URXH0 = *c ;}}unsigned char uart_get(){UTXH0=URXH0;return UTXH0;}int main(){char key = ' ';initpll(); //初始化锁相环PLLinitgpio(); //初始化IO口inituart(); //初始化串口uart_send("If you want to quit ,please press 'e'\r\n");while(1){key = uart_get();if (key == 'e'){uart_send ("\r\nyou pressed 'e' and you'll quit!\r\n");break;}else{uart_send(&key);}}uart_send("the program exited by user!\r\n");return 0;}1 、如何实现LED0-LED7 的循环点亮。
答:将GPGCON端口的值改为0x0001555,GPGUP的值改为0x01ff。
再仿照led4-led7 的程序写出led0-led3的点亮代码,最后循环执行即可2、一般情况下,配置通用IO 口的需要哪些步骤。
答:读入IO口控制寄存器地址,配置IO口的状态(读或写等)。
3 、ledtest.s 文件的汇编程序中代码ldr r0,=0x f fffff 的作用是什么。
答:设置延迟的时间。
本实验通过arm对Led灯的控制,了解了S3C2440处理器端口的配置。