微处理器实验报告1
微处理器实验报告
《微处理器实验》实验报告一、实验目的与任务1、掌握80C51单片机程序的调试与下载方法。
2、掌握80C51单片机并口的工作原理及输入输出控制方法。
3、理解和学会单片机外部中断的使用;4、学习单片机定时器/计数器的应用。
二、实验原理介绍80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。
ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。
STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。
本课程的全部实验只用到MCU1。
图3-1为本实验对应的硬件电路。
P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。
P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。
中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。
待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。
引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。
51类单片机至少包括5个中断源:INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
(本实验用)INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
(本实验用)T1:定时器/计数器l中断,由T1计满回零引起。
微处理器实验报告
微处理器实验报告摘要:本文旨在介绍微处理器实验及其结果,内容包括实验目的、实验器材与方法、实验过程、实验结果和分析以及实验结论等。
通过本次实验,我们对微处理器的工作原理和应用有了更深刻的理解,并能够熟练地进行一些简单的微处理器操作。
1. 引言微处理器是现代计算机的核心组成部分,其作用是负责指令的执行和数据的处理。
在这个实验中,我们将通过操作微处理器,深入了解其内部构造和工作原理。
同时,我们也将学习如何正确地使用微处理器进行一些简单的计算和控制任务。
2. 实验目的本次实验的目的是:- 了解微处理器的基本工作原理;- 掌握微处理器的基本操作方法;- 理解不同指令的功能和使用方法;- 实现一些简单的计算和控制任务。
3. 实验器材与方法3.1 实验器材:- 微处理器实验箱- 示波器- PC机3.2 实验方法:首先,根据实验指导书上给出的实验电路图,按照电路图连接实验器材。
然后,将微处理器与PC机通过串口或者并口连接起来。
接下来,根据实验指导书上给出的指令,编写相应的程序代码并将其烧录到微处理器中。
最后,通过操作微处理器,观察实验结果并进行实验数据的采集和分析。
4. 实验过程4.1 硬件连接:根据实验指导书上的电路图,连接实验箱和示波器,保证电路的正常工作。
4.2 软件编程:根据实验指导书上的指令,使用相应的软件工具或编程语言编写程序代码,并将其烧录到微处理器中。
4.3 实验操作:按照实验指导书上的要求,操作微处理器进行各种指令的执行,观察实验结果并记录相关数据。
5. 实验结果与分析通过本次实验,我们成功地完成了一些简单的微处理器操作,并观察到了相应的实验结果。
在实验中,我们使用了一些常见的指令,如加法指令、乘法指令和逻辑指令等,并实现了一些简单的计算和控制任务。
同时,我们还观察到了微处理器的运行速度以及实验过程中的一些注意事项。
通过对实验数据的分析,我们发现微处理器在执行指令时的速度非常快,能够实时处理大量的数据,并及时给出相应的计算结果。
单片机实验报告1
单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。
二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。
实验软件:KEIL C51开发软件、Proteus电路仿真软件。
三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。
这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。
四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。
1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。
2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。
五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。
然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。
2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。
4.运行实验将开发板上的拨码开关打开,开启单片机的电源。
LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。
六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。
七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。
实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。
通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。
简单微处理器设计实验报告
目录目录 (1)表目录 (2)图目录 (3)1文档说明(Introduction) (4)2描述习惯(Conventions) (5)3微处理器各功能模块 (6)3.1概述 (6)3.2结构框图 (6)3.2.1ALUpart (6)3.2.2controlpart (9)3.2.3CPU (11)3.3功能列表 (12)3.3.1ALUpart (12)3.3.2controlpart (13)3.3.2.1状态转移图 (13)3.4工作环境介绍 (14)3.4.1设计代码 (14)3.4.2测试平台 (14)3.4.3电路综合环境 (16)3.4.4后仿真环境 (16)3.5功能验证结果 (17)3.5.1前仿真结果 (17)3.5.2后仿真结果 (19)3.6综合结果 (20)表1 ALU8模块I/O接口表2 通用寄存器堆模块I/O接口表3 alupart输入输出I/O口列表表4 控制器模块I/O接口表5 IRRAM模块I/O接口表6 Control-part结构整体I/O接口表7 CPU整体模块I/O接口表8 ALU 指令集表9 添加的JUMP指令图1 ALU8模块框图图2 通用寄存器RAM模块框图图3 ALUpart模块框图图4 控制器模块框图图5 IRRAM模块框图图6 Control-part结构框图图7 CPU结构框图图8 ALUpart状态转移图图9 controlpart状态转移图图10 CPU计算5!的全图图11 controllpart执行一条指令的波形图图12 control 执行非跳转指令的状态机波形图13 control 执行跳转指令的状态机波形图14 ALUpart执行一条指令的波形图图15 ALUpart执行指令状态机的波形图16 综合的Timing report图17 综合的Area report图18 门级仿真5!的波形结果图19 门级仿真产生的延时1文档说明(Introduction)本文档描述了简单微处理器的总体设计,如功能、模块结构、关键时序等等。
微处理器实验报告
《微处理器实验》实验报告一、实验目的与任务1、掌握80C51单片机程序的调试与下载方法。
2、掌握80C51单片机并口的工作原理及输入输出控制方法。
3、理解和学会单片机外部中断的使用;4、学习单片机定时器/计数器的应用。
二、实验原理介绍80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。
ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。
STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。
本课程的全部实验只用到MCU1。
图3-1为本实验对应的硬件电路。
P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。
P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。
中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。
待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。
引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。
51类单片机至少包括5个中断源:INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
(本实验用)INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
(本实验用)T1:定时器/计数器l中断,由T1计满回零引起。
嵌入式微处理器结构_实验报告1
:
模块:
串口:
网络接口:
New(新建)工程
保存位置为D:\shb;
成功创建工程
5、思考题
(1)写出嵌入式系统的定义和应用,嵌入式有哪些开发工具?
硬件部分可以分成嵌入式处理器和外部设备。
处理器是整个系统的核心,负责处理所有的软件程序以及外部设备的信号。
外部设备在不同的系统中有不同的选择。
比如在汽车上,外部设备主要是传感器,用于采集数据;而在一部手机上,外部设备可以是键盘、液晶屏幕等。
软件部分可以分成两层,最靠近硬件的是嵌入式操作系统。
操作系统是软硬件的接口,负责管理系统的所有软件和硬件资源。
操作系统还可以通过驱动程序与外部设备打交道。
最上层的是应用软件,应用软件利用操作系统提供的功能开发出针对某个需求的程序,供用户使用。
用户最终是和应用软件打交道,例如在手机上编写一条短信,用户看到的是短信编写软件的界面,而看不到里面的操作系统以及嵌入式处理器等硬件。
微处理器设计实验报告
微处理器设计实验任务&目标利用Verilog HDL语言,基于Xilinx FPGA nexys4实验平台,设计一个能够执行以下MIPS指令集的单周期类MIPS处理器,要求完成所有支持指令的功能仿真,验证指令执行的正确性,要求编写汇编程序将本人学号的ASCII码存入RAM的连续内存区域微处理器各个模块硬件设计原理、Verilog代码顶层模块ROM块采用异步输出,RAM同步输出,异步写入。
该方案有三个部分用到了时钟信号:指令指针赋值,寄存器文件写入数据,数据存储器输出数据。
指令指针赋值与始终上升沿同步,而寄存器文件数据写入以及数据存储器数据输出、输入与时钟下降沿同步Verilog代码module top(input reset);reg [31:0] PC;wire J,B,Bzero,zero,M2R,memwr,Imm,regwr,RtDst;wire [1:0] ALUop;wire [3:0] ALUctr;wire [31:0] NewPC,JMPPC,BranPC,Imm32L2,Imm32,NotJMPPC,TempPC;wire [31:0] Instr,WriteData,DataOut,Res,RsData,RtData,in2;wire [4:0] WriteAddr;assign Imm32={{16{Instr[15]}},Instr[15:0]};assign WriteAddr=RtDst?Instr[15:11]:Instr[20:16];assign in2=Imm?Imm32:RtData;assign WriteData=M2R?DataOut:Res;assign NotJMPPC=Bzero?BranPC:NewPC;assign TempPC=J?JMPPC:NotJMPPC;assign Bzero=B&zero;assign Imm32L2=Imm32<<2;assign JMPPC={NewPC[31:28],Instr[25:0],2'b00};assign BranPC=NewPC+Imm32L2;assign NewPC=PC+4;always@(posedge clk)if(!reset)PC=TempPC;elsePC=32'b0;mainctr mainctr1(Instr[31:26],ALUop,RtDst,regwr,Imm,memwr,B,J,M2R);ALU alu(RsData,in2,ALUctr,Res,zero);aluctr_gzt aluctr1(ALUop,Instr[5:0],ALUctr);DataRAM dram(Res[7:2],RtData,!clk,memwr,DataOut);InstrROM irom(PC[8:2],Instr);regFile regfile(clk,reset,regwr,Instr[25:21],Instr[20:16],WriteAddr,WriteData,RsData,RtData); endmodule主控制器module mainctr(input [5:0] opCode,output [1:0] ALUop,output RtDst,output regwr,output Imm,output memwr,output J,output M2R);reg [8:0] outputtemp;assign RtDst=outputtemp[8];assign Imm=outputtemp[7];assign M2R=outputtemp[6];assign regwr=outputtemp[5];assign memwr=outputtemp[4];assign B=outputtemp[3];assign J=outputtemp[2];assign ALUop=outputtemp[1:0];always@(opCode)case(opCode)6'b000010:outputtemp =9'bxxx0_001_xx; //imp6'b000000:outputtemp =9'b1001_000_10; //R6'b100011:outputtemp =9'b0111_000_00; //lw6'b101011:outputtemp =9'bx1x0_100_00; //sw6'b000100:outputtemp =9'bx0x0_010_01; //beq6'b001000:outputtemp =9'b0101_000_11;default:outputtemp =9'b000000000;endcaseendmoduleALU运算模块module ALU(input [31:0] in1,input [31:0] in2,input [3:0] ALUctr,output reg [31:0] Res,output reg zero);always @(in1 or in2 or ALUctr)begincase(ALUctr)4'b0000: //andRes = in1&in2;4'b0001: //orRes = in1 | in2;4'b0010: //addRes = in1 + in2;4'b0110: //subbeginRes = in1 - in2;zero = (Res == 0)?1:0;end4'b0111:Res=(in1<in2)?1:0;default: //othersRes = 0;endcaseendendmoduleALU控制器module aluctr_gzt(input [1:0] ALUop,input [5:0] func,output reg [3:0] ALUctr);always @(ALUop or func)casex({ALUop,func})8'b00xxxxxx: ALUctr=4'b0010; //lw,sw8'b01xxxxxx: ALUctr=4'b0110; //beq8'b10xx0000: ALUctr=4'b0010; //add8'b11xxxxxx: ALUctr=4'b0010;8'b10xx0010: ALUctr=4'b0110; //sub8'b10xx0100: ALUctr=4'b0000; //and8'b10xx0101: ALUctr=4'b0001; //or8'b10xx1010: ALUctr=4'b0111; //sltdefault : ALUctr=4'b0000;endcaseendmodule寄存器文件module regFile(input clk,input reset,input regwr,input [4:0] RsAddr,input [4:0] RtAddr,input [4:0] WriteAddr,input [31:0] WriteData,output [31:0] RsData,output [31:0] RtData);reg [31:0] regs [0:31];assign RsData = (RsAddr == 5'h0)?32'h0:regs[RsAddr];assign RtData = (RsAddr == 5'h0)?32'h0:regs[RtAddr];integer i;always@(negedge clk or posedge reset)if (reset)for(i=0;i<32;i=i+1)regs[i]<=0;else if(regwr)regs[WriteAddr] <= WriteData;endmoduleROM汇编程序设计代码main:add $14,$12,$13addi $11,$0,200addi $12,$0,85 #Usw $12,36($11)addi $13,$0,50 #2sw $13,32($11)addi $14,$0,48 #0sw $14,28($11)addi $15,$0,49 #1sw $15,24($11)addi $16,$0,55 #7sw $16,20($11)addi $17,$0,49 #1sw $17,16($11)addi $18,$0,51 #3sw $18,12($11)addi $19,$0,53 #5sw $19,8($11)addi $14,$0,53 #5sw $14,4($11)addi $18,$0,55 #7sw $18,0($11)add $4,$2,$3lw $4,4($2)sw $2,8($2)sub $2,$4,$3or $2,$4,$3and $2,$4,$3slt $2,$4,$3beq $4,$3,exitj mainexit: lw,$2,0($3)j mainRegfile模块仿真激励代码module regSim();reg clk ;reg reset;reg regwr;reg [4:0] RsAddr;reg [4:0] RtAddr;reg [4:0] WriteAddr;reg [31:0] WriteData;wire [31:0] RsData;wire [31:0] RtData;regFile uut(clk,reset,regwr,RsAddr,RtAddr,WriteAddr,WriteData,RsData,RtData);parameter PERIOD = 10; //clk period 10nsalways beginclk = 1'b0;#(PERIOD/2) clk = 1'b1; //rising edge#(PERIOD/2); //falling edgeendinitial beginreset=1; //reset 14 nsRsAddr=3;RtAddr=0;WriteAddr=5;WriteData=8;regwr=1;#14 reset=0; //20ns writedata stored in writeaddr $5=8#20 RsAddr=5; //34ns RsData=8;endendmodule仿真截图验证Regfile模块正确性首先将光标移到14ns处,reset一直为有效电平,故regs值一直为0,符合复位功能要求。
电子科技大学中山学院微处理器实验报告 (1)
Keil C51集成开发环境是80C51内核单片机的重要软件开发平台,内嵌多种符合工业标准的开发工具,可完成从工程建立到管理、编译(汇编)、连接、调试等完整的开发流程。Keil C51允许使用汇编或C语言编程,并提供软件模拟和硬件仿真两种调试方式。
本次实验通过几个汇编语言程序熟悉Keil C51集成开发环境的使用,掌握单片机程序设计与调试的一般流程。
三、实验内容和步骤
1(1)
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H;SP=60H
MOV R0,#30H ; R0=30H
MOV R1,#40H ; R1=40H
MOV @R0,#55H ;(30H)=55
MOV @R1,#0AAH ;(40H)=AA
MOV A,@R1 ;A=AA
电子科技大学中山学院学生实验报告
院别:电子信息学院课程名称:微处理器实验
班级
13电科A
姓名
张益航
学号
2012010201070
实验名称
集成开发环境的熟悉与指令练习
实验时间
2015年9月29日
成绩
教师签名
批改时间
报告内容
一、实验目的和任务
1、熟悉Keil C51集成开发环境的使用。
2、掌握80C51单片机程序创建、汇编、连接与调试方法。
END
2
(1)ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R0,#45H
MOV R2,#16
NEXT1: MOV @R0,#'1'
INC R0
DJNZ R2,NEXT1
《微处理器与嵌入式系统设计》实验报告
《微处理器与嵌入式系统设计》实验报告
微处理器与嵌入式系统设计实验报告
实验目的
本实验旨在通过使用微处理器和嵌入式系统设计,加深对相关
概念和原理的理解,并能够实际运用这些知识进行系统设计与开发。
实验步骤
1. 阅读相关理论材料,了解微处理器和嵌入式系统设计的基本
概念和原理。
2. 确定实验所需的硬件和软件资源,并进行准备工作。
3. 根据实验要求,进行系统设计与开发。
4. 实施系统测试与调试,确保系统正常运行。
5. 撰写实验报告,总结实验过程及结果。
实验结果
本实验按计划完成了实验步骤,并成功设计并开发了一个微处
理器和嵌入式系统。
实验分析
通过本实验,进一步加深了对微处理器和嵌入式系统设计的理解。
通过实践,我们能够更好地掌握其设计原理和应用技术,并能够运用这些知识解决实际问题。
总结
通过本次实验,我们深入研究了微处理器和嵌入式系统设计的基本概念和原理,并通过实践运用这些知识进行系统设计与开发。
通过实验的完成,我们对微处理器和嵌入式系统设计有了更深入的了解,对其应用领域和技术有了更清晰的认识。
参考文献
- [参考文献1]
- [参考文献2]。
电子科技大学微处理器系统结构与嵌入式系统设计实验一
电子科技大学实验报告课程名称微处理器系统结构与嵌入式系统设计实验名称ARM汇编基础实验任课教师 XXX 实验教师 XXX姓名黑XX学号2012XXXXXXXXX 实验地点 XXXXXXX 分组号 X组时间 XXXX年 X月X日XX:XX~XX:XX一、实验目的1.掌握ARM汇编指令。
2.学习掌握C与汇编混合编程基础。
3.熟练使用ARM调试工具RVDS进行调试操作。
二、实验内容1.熟悉ARM汇编。
2.用ARM汇编实现1+2+...+N。
3.C调用汇编实验(实现字符串拷贝功能)。
4.汇编调用C实验。
5.ARM汇编实现冒泡算法(选做)三、实验步骤1)用ARM汇编实现1+2+….n的运算。
在sum.s文件中,添加如下代码:SUN_L1ADD R0,R1BVS SUM_ENDCMP R1,R2BHS SUM_ENDADD R1,#1B SUN_L12)理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。
在汇编文件testfile1. s中添加两行汇编代码,实现:拷贝源字符串的一个字节到R2中,将拷贝的字节复制到目标空间。
关键代码如下:strcopy;------------------------------------------;用汇编实现字符串拷贝LDRB R2,[R1],#1 ;R1对应源字符串首地址,利用寄存器间接寻址读取字符到R2STRB R2,[R0],#1 ;R0对应目的字符串首地址,利用寄存器间接寻址保存字符CMP R2,#0BNE strcopyMOV PC,LR;------------------------------------------END ;文件结束3)在汇编中调用C函数。
在汇编文件testfile2.s中相应位置添加汇编代码,通过调用c函数g()实现1+2+3+glovb1,结果存在R8中。
关键代码如下:STR LR,[SP,#-4]!MOVS R0,#1MOVS R1,#2MOVS R2,#3LDR R4,=glovb1LDR R3,[R4] ;传递参数BL gMOV R8,R0ADD sp,sp,#4LDR pc,[sp],#4中,通过伪指令EQU,定义N的值。
微处理器实验报告
微处理器实验报告实验1 熟悉并使用传送类指令题3. 模仿test1.Asm的循环结构,编写多字节数据的传送程序,把内部RAM的30H--39H单元置为10H-19H,然后传送到外部RAM的0100H--0109H单元。
提示:(1)用寄存器作内部RAM指针,用DPTR作外部RAM指针。
(2)设置内部RAM的30H--39H单元的值为10H-19H:解:程序如下:ORG 0000HAJMP STARTORG 0100HSTART:MOV R1,#10HMOV DPTR,#0100HMOV R2,#0AHLOOP:MOV A,@R1MOVX @DPTR,AINC R1INC DPTRDJNZ R2,LOOPNOPSJMP $END运行结果如下图所示:在memory1中,在Address 控件填上D:0x30,可查看内部RAM 30h单元开始的值,将30h-39h 置为10h-19h。
实验2:熟悉并使用算术逻辑操作类指令题2.编写程序,将6位压缩BCD码123456与6位BCD码567890相加,结果仍用BCD码表示。
第一组BCD码放在30H开始连续的内部存储器单元内,第二组BCD 码放在40H开始连续的内部存储器单元内,相加结果放在50H开始的连续的内部存储器单元内。
解:程序如下:ORG 0000HAJMP STARTORG 0100HSTART:MOV 30H,#56HMOV 31H,#34HMOV 32H,#12HMOV 40H,#90HMOV 41H,#78HMOV 42H,#56HMOV R0,#30HMOV R1,#40HMOV R2,#03HMOV R3,#50H LOOP:MOV A,@R0ADD A,@R1DA AMOV @R1,AINC R0INC R1INC R3DJNZ R2,LOOP NOPSJMP $END运行结果如下:实验3:顺序程序设计:拆字和拼字题1 .拆字程序69H存放在片外RAM中0200H地址上。
微处理器实习报告
微处理器实习报告一、实习背景及目的随着科技的不断发展,微型计算机技术得到了迅猛的普及和应用,微处理器作为微型计算机的核心部件,其性能和功能越来越受到重视。
为了更好地了解微处理器的工作原理和应用场景,提高自己在计算机领域的实际操作能力,我选择了微处理器实习项目。
本次实习的主要目的是:1. 学习微处理器的基本原理和工作机制;2. 掌握微处理器的编程方法和应用技巧;3. 培养自己在实际项目中解决问题的能力;4. 提高自己的团队协作和沟通能力。
二、实习内容与过程1. 实习前的准备工作:在实习开始前,我们参加了由指导老师举办的实习动员大会,了解了实习的要求和注意事项。
同时,我们还自学了相关教材和资料,为实习打下了扎实的理论基础。
2. 实习过程:实习过程中,我们以小组为单位,共同完成了以下任务:(1)学习微处理器的基本原理:我们通过阅读教材、讨论和请教老师,掌握了微处理器的基本组成、工作原理和性能指标,了解了不同类型的微处理器及其应用场景。
(2)编程实践:我们使用C语言进行编程,实现了简单的微处理器指令集模拟,掌握了寄存器、内存、栈等基本操作,并学会了使用汇编语言进行程序编写。
(3)实际操作:我们使用实验室的微处理器开发板,进行了硬件连接和编程调试,实现了流水灯、计数器等基本功能,并在此基础上进行了一些拓展应用。
(4)项目汇报:在实习结束前,我们以小组为单位进行了项目汇报,展示了实习成果,分享了实习过程中的心得体会和解决问题的方法。
三、实习收获与反思1. 实习收获:通过本次实习,我深入了解了微处理器的基本原理和工作机制,掌握了微处理器的编程方法和应用技巧,提高了自己在实际项目中解决问题的能力,为今后在计算机领域的发展打下了坚实基础。
2. 实习反思:在实习过程中,我发现自己在理论知识和实际操作之间存在一定的差距,需要在今后的学习中加强实践环节。
同时,我也意识到团队协作和沟通能力在实际项目中的重要性,将在今后的工作中更加注重与他人合作,提高自己的沟通技巧。
8086实验报告
8086实验报告8086实验报告引言:8086微处理器是Intel公司于1978年推出的一款16位微处理器,它在计算机发展历史上具有重要的地位。
本实验旨在通过对8086微处理器的实际应用,深入了解其工作原理和功能。
一、实验目的本实验的目的是通过对8086微处理器的实际操作,掌握其基本指令的使用方法,并了解其内部结构和工作原理。
二、实验材料和方法1. 实验材料:- 8086微处理器开发板- 电源线- 串口线- 电脑2. 实验方法:- 将8086开发板与电脑通过串口线连接- 将电源线插入开发板并连接电源- 打开电脑,启动开发板上的操作系统- 使用汇编语言编写程序,并通过串口线将程序下载到开发板中- 在开发板上运行程序,观察结果并进行分析三、实验过程1. 硬件连接:将8086开发板与电脑通过串口线连接,并确保连接稳定。
2. 软件操作:打开电脑,启动开发板上的操作系统。
使用汇编语言编写程序,并通过串口线将程序下载到开发板中。
3. 程序运行:在开发板上运行程序,并观察结果。
通过分析程序的运行过程,了解8086微处理器的工作原理和功能。
四、实验结果与分析在本次实验中,我们编写了一个简单的程序,用于在开发板上显示一段文字。
通过观察开发板上的显示屏,我们可以看到程序成功地在8086微处理器上运行,并显示出我们编写的文字。
通过对程序的分析,我们可以了解到8086微处理器具有强大的计算和控制能力。
它能够执行各种指令,完成各种复杂的计算任务。
同时,8086微处理器还具有较大的存储空间和高速的数据传输能力,使得它能够处理大量的数据和信息。
此外,8086微处理器还具有良好的扩展性和兼容性。
它可以与其他外部设备进行连接,实现更多的功能和应用。
同时,8086微处理器与其后续型号的兼容性也非常好,这使得它在计算机领域得到了广泛的应用。
五、实验总结通过本次实验,我们深入了解了8086微处理器的工作原理和功能。
我们通过编写程序并在开发板上运行,亲身体验了8086微处理器的强大计算能力和高效数据传输能力。
微处理器与及接口技术实验报告
实验报告实验报告一、实验题目延时警报器二、实验内容1.外设:红色LED:P2.3,绿色LED:P2.4 以及蜂鸣器:P2.1,无按键按下时,绿灯点亮,红灯熄灭,蜂鸣器无声;一旦按键按下,即触发报警器进入报警状态,红绿灯交替闪烁,蜂鸣器发出警报声。
2.按键:选择按键K1(P2.2)模拟非安全情况,按键按下及开始报警。
3.定时器:T0用来定时,控制灯闪烁的时间;T1用来产生中断,到达指定时间后警报自动停止。
整体功能:安全情况下,绿灯点亮,红灯熄灭,蜂鸣器无声;一旦按键按下,即触发报警器进入报警状态,红绿灯交替闪烁,蜂鸣器发出警报声。
到达指定时间后警报自动停止,从而达到报警目的。
三、原理图用AD画出的延时警报器原理图如下:四、实验记录实验前期较为顺利,因为已经提前预习了相关内容。
程序运行无误后烧录进单片机后能实现延时警报器的功能。
但是,在验收时,老师说要求必须有定时器中断,所以用了大量的时间进行中断程序的编写与调试,最后实现了预期的功能。
以下是遇到的问题及解决办法:问题一:烧录程序时显示握手失败,无法找到正确的串口。
解决办法:我的烧录软件版本较低,不能自动找到串口,所以我安装的驱动精灵,下载的驱动,就能找到正确的串口了。
问题二:按下按键后,红绿灯能交替闪烁,但是蜂鸣器不响。
解决办法: 我又重新看了开发板的电路原理图,发现蜂鸣器是低电平的时候发声,所以我改变了高低电平,之后就能正常运转了。
问题三:验收时没有用到定时器中断。
解决办法:我这个延时警报器时一旦报警之后除非按下复位键或断电才能停止报警,所以我想到使用定时器中断,让它能报警10秒钟后自动停止报警,模拟汽车的报警,如果有物体碰到汽车,汽车就会报警,并且一段时间之后会自动停止报警。
在编写这个中断程序的时候暴露出了很多小问题,调用子程序指令我写成了跳转指令,甚至缺少了中断返回指令,这些问题最后都在老师的指导下改正过来,最终实现了预期的功能并加入了定时器中断。
微处理器实习报告
一、实习背景随着科技的飞速发展,微处理器作为计算机系统的核心部件,其性能和功能日益受到重视。
为了更好地了解微处理器的原理和应用,我于2023年在XX科技有限公司进行了为期一个月的微处理器实习。
通过这次实习,我对微处理器的架构、设计、编程以及在实际应用中的性能优化有了更加深入的认识。
二、实习内容1. 微处理器基础知识学习实习初期,我重点学习了微处理器的基本概念、发展历程、分类以及常见型号。
通过查阅资料、参加培训课程,我对微处理器的基本原理有了初步了解,包括指令集、寄存器、总线、缓存等。
2. 微处理器架构分析在实习过程中,我深入研究了不同类型的微处理器架构,如CISC(复杂指令集计算)、RISC(精简指令集计算)以及ARM架构。
通过对这些架构的对比分析,我认识到不同架构在性能、功耗、成本等方面的差异,为后续设计工作提供了理论依据。
3. 微处理器编程实践为了提高实际操作能力,我参与了微处理器编程实践。
在导师的指导下,我使用C语言编写了简单的微处理器程序,实现了对寄存器、内存、I/O端口等资源的操作。
通过实践,我掌握了微处理器编程的基本技巧,为后续开发工作打下了基础。
4. 微处理器性能优化在实习后期,我参与了微处理器性能优化项目。
通过分析程序运行过程中的瓶颈,我提出了相应的优化方案,包括指令重排、流水线优化、缓存优化等。
在实际操作中,我使用编译器优化工具和调试工具对程序进行了优化,有效提升了程序性能。
5. 项目总结与汇报在实习的最后阶段,我对实习期间参与的项目进行了总结,撰写了项目报告。
在导师的指导下,我进行了项目汇报,展示了实习成果。
通过这次汇报,我巩固了所学知识,提高了自己的表达能力。
三、实习收获1. 知识层面:通过实习,我对微处理器的原理、架构、编程以及性能优化等方面有了全面的认识,为今后的工作打下了坚实的基础。
2. 技能层面:在实习过程中,我掌握了微处理器编程、调试、优化等技能,提高了自己的实际操作能力。
微处理器实验报告1
PUSHACC;SP=61H(61H)=33H;PUSH为SP→(SP)+1,(SP)←MOVA,@R1;A=44H ACC
PUSHACC;SP=62H(62H)=44H
NOP
POPACC;SP=61HA=44H;把44H送进SP=62中,然后再把SP减1
MOV@R0,A;(30H)=44H
MOVR0,#34H;R1R0=1234H;指令MOV Rn,#data,实现(data)→Rn
MOVR2,#21H
MOVR3,#0EFH;R3R2=EF21H;分别把各地址送入R1,R0,R2,R3中
MOVA,R0
ADDA,R2;低8位相加R0和R2两个低字节相加,并存到R4
MOVR4,A;
MOVA,R1
3学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。
原理:
Keil集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。
在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。
MOV@R1,#0AAH;(40H)=AAH
MOVA,@R1;A=AAH;指令MOV A,@Ri,即Ri→A
XCHA,@R0;A=55H(30H)=AAH;引入中间变量,实现R0,R1互换
XCHA,@R1;A=AAH(40H)=55H
;下面是另一种方法
MOV@R0,#33H;(30H)=33H
MOV@R1,#44H;(40H)=44H
POPACC;SP=60HA=33H
MOV@R1,A;(40H)=33H
ARM实验报告综合实验
ARM实验报告综合实验摘要:ARM微处理器已经在各种电子产品中得到广泛应用。
本实验旨在通过对ARM实验板的详细学习,深入理解和掌握ARM微处理器的工作原理及应用。
通过搭建实验平台,完成基本的指令执行、数据传输和I/O操作等功能。
通过实验,掌握ARM汇编语言的基本语法和实现方法,同时提升对嵌入式系统的理解和应用能力。
关键词:ARM微处理器、实验平台、指令执行、数据传输、I/O操作、汇编语言1.引言ARM(Advanced RISC Machines)微处理器是一种精简指令集(RISC)的微处理器架构,以其高性能、低功耗和广泛应用等特点受到了广泛的关注和应用。
本实验旨在通过对ARM实验板的学习和研究,深入理解ARM微处理器的工作原理和应用。
2.实验目的2.1理解ARM微处理器的工作原理;2.2掌握ARM汇编语言的基本语法和实现方法;2.3学习搭建实验平台,完成指令执行、数据传输和I/O操作等功能;2.4提升对嵌入式系统的理解和应用能力。
3.实验内容3.1搭建实验平台3.2学习ARM汇编语言通过阅读相关资料,了解ARM汇编语言的基本语法和寄存器等特点,了解ARM微处理器的指令集和指令执行方式。
3.3编写实验程序根据实验指导书中的要求,编写实验程序,包括基本的指令执行、数据传输和I/O操作等功能实现。
3.4调试和测试经过编写程序后,需要进行调试和测试,确保程序能够正确执行,并达到预期的功能。
4.实验结果通过实验,成功搭建了ARM实验平台,并且实现了基本的指令执行、数据传输和I/O操作等功能。
通过对ARM汇编语言的学习和实践,掌握了其基本语法和实现方法。
5.结论本实验通过对ARM实验板的学习和研究,深入理解了ARM微处理器的工作原理和应用。
通过搭建实验平台和编写实验程序,进一步掌握了ARM 汇编语言的基本语法和实现方法。
通过调试和测试,验证了程序的正确性和功能实现。
通过本实验,提升了对嵌入式系统的理解和应用能力。
西华大学实验报告(微处理器与微计算机系统-7个实验)
西华大学实验报告(计算机类)电气与电子信息学院 6A224 实验室 实验时间: 年 月 日学 生 姓 名学号成 绩学生所在学院 电气与电子信息学院 年级/专业/班 课 程 名 称 微处理器与微计算机系统 课 程 代 码 实验项目名称 实验1 IO 控制LED 流水灯实验项 目 代 码 指 导 教 师王胜 余建华项 目 学 分一、实验目的1、熟悉KEIL 编程环境和调试环境;2、掌握单片机汇编语言和指令的用法;3、理解简单的IO 控制程序,延迟子程序,并对其修改,使其功能改变。
二、内容与设计思想(实验内容、算法设计思想与算法实现步骤等)1、实验内容:使用P0口控制8个LED 进行流水灯显示。
2、实验原理和步骤 1)实验原理图1 P0 口连接的8 盏LED 灯从图1中可以看出:如果需要把LED 点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB 上就是将电路板左上角LED 和VCC 短接起来;其二是P0.X 口给出低电平,让电流从VCC 开始流经限流电阻、LED 后进入单片机的P0.X 口,最后到单片机内部的地线上。
因此,简单地说就是在短接帽接好的前提下,向P0.X 口写0则LED 将点亮,写1则LED 将熄灭。
图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、PORT0_1……PORT0_7。
2)实验步骤(1)启动KEIL 集成开发环境,按照《KEIL 使用方法》中描述步骤进行工程建立、汇编源程序文件添加。
(2)参考提供的源程序,仔细检查编写好的汇编语言源程序,参考《KEIL 使用方法》完成编译和调试工作。
(3)参考《STC 单片机程序下载方法》下载编译完毕的HEX 文件三、使用环境(本次实验所使用的平台和相关软件)1、硬件: PC 机,单片机教学实验开发平台;2、软件: KEIL 集成开发环境、STC ISP 程序下载软件。
微机原理实验报告
微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。
二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。
通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。
接着我们进行了CPU总线实验。
通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。
同时,我们学习了编写程序来控制CPU读写存储器等。
最后,我们进行了8255并行接口控制实验。
通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。
三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。
在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。
四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。
只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。
在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。
微处理器与应用实验报告
MOV 41H,#78H
MOV 42H,#56H
MOV R0,30H
MOV R1,40H
MOV A,R0
ADD A,R1
DA A
MOV 50H,A
MOV R0,31H
MOV R1,41H
MOV A,R0
ADDC A,R1
DA A
MOV 51H,A
MOV R0,32H
MOV R1,42H
14、根据已给程序分别编辑汇编程序和C51程序;
15、编辑完成以后对程序进行编译,生成目标代码;
16、运行、调试目标代码和进行结果检查;
17、根据要求分别编写汇编程序和C51程序实现两个16位无符号数的比较;
18、编译,生成目标代码,分别采用单步和宏单步运行程序,观察有关单元中的内容的变化;
19、修改内存单元中的内容在观察存储单元内容的变化;
微处理器原理与应用实验日志四
实验题目:
分支和循环程序设计
实验目的:
1、掌握分支程序编写方法
2、掌握循环程序设计的方法和技巧
3、学习程序调试的基本过程和方法
实验要求:
5、阅读、运行并调试已给的分支和循环程序;
6、模仿已给程序分别汇编程序和C51程序实现两个16位无符号数的比较的程序;
实验主要步骤:
13、启动计算机,进入Keil C51的集成开发环境;
3、根据要求编辑程序;
4、编辑完成以后对程序进行编译,生成目标代码;
5、编译,生成目标代码,分别采用单步和宏单步运行程序,观察有关单元中的内容的变化;
实验结果:
汇编程序:
ORG 0000H
AJMP START
ORG 0100H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV@R1,A;(40H)=33H
NOP
SJMP$
END
3)选择Project下的Rebuild all target files对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示0 warnings,0 errors,表明程序没有语法错误,成功完成了汇编过程,就可以进行动态调试了。
4)选择Project下的Options for target ‘Target1’进行动态调试的参数设置,点击debug,再点击Use Simulator,最后点击完成。
5)对程序进行动态调试,学会查看和修改相关寄存器(左边的register窗)、内部和外部存储器的内容。常用的工具条上的命令有开始/暂停动态调试 ,单步执行 或 ,执行到光标处 等。查看存储器内容的方式是在存储区(View/memory窗)的地址栏内写上要查看的初始地址就可以了。比如看内部存储器用D:0000H,程序存储器用C:0000H,外部存储器用X:0000H。将每行程序执行后的结果写到该行程序的注释部分。
2、编写一个数据填充和数据块搬移程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVR0,#30H; R0指向30H单元
MOVR2,#16; R2作循环计数器
NEXT1:MOV@R0,#'*';填充当前单元
MOVA,@R0;A=33H
PUSHACC;SP=61H(61H)=33H;PUSH为SP→(SP)+1,(SP)←MOVA,@R1;A=44H ACC
PUSHACC;SP=62H(62H)=44H
NOP
POPACC;SP=61HA=44H;把44H送进SP=62中,然后再把SP减1
MOV@R0,A;(30H)=44H
二、实验仪器
PC机一台
三、实验内容与分析
1、编写程序,完成内存中两个字节内容的交换。
1)建立工程文件。双击桌面的Keil快捷图标,进入Keil集成开发环境。点击工具栏的Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新的µVision2工程,为工程取一个名字,并选择将要使用的器件的型号(Philips公司的P80/P87C52X2 CPU)。
MOVX@DPTR,A
INCR1
INCDPTR
DJNZR3,NEXT2
SJMP$
END
3、编写一个多字节的算术运算程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,将运行结果写到程序的注释部分。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H
MOVR1,#12H
电子科技大学中山学院学生实验报告
院别:电子信息学院课程名称:微处理器实验
班级:10电信A姓名:陈水船学号:2010010302042
实验名称:集成开发环境的熟悉与程序设计练习实验时间:
成绩:教师签名:石建国批改时间:
一、实验原理与目的
目的:
1熟悉Keil C51集成开发环境的使用方法;
2熟悉Keil C51集成开发环境仿真条件下调试功能的使用;
ADDCA,R3;高8位相加R1和R3两个高字节相加,并加上来自低字节
MOVR5,A的进位CY,并存入R5
MOVA,#0
ADDCA,#0
MOVR6,A
NOP
;下面是乘法运算
NOP
MOVAOVR4,A
MOVR5,B
MOVA,R1
MOVB,R2
MULAB
ADDA,R5
MOVR5,A
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H;SP=60H
MOVR0,#30H;R0=30H
MOVR1,#40H;R1=40H;SP,R0,R1为立即寻址,由程序可直接得出
MOV@R0,#55H;(30H)=55H;指令MOV @Ri,#data为data值赋值给Ri
INCR0;指针下移一个单元
DJNZR2,NEXT1;未填完16个单元,继续
;把30H赋给R0,R2作为计数器,循环赋值把30H到3FH上的值填充‘*’。
;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中
MOVR1,#30H
MOVDPTR,#0100H
MOVR3,#10H
NEXT2:MOVA,@R1
MOVR0,#34H;R1R0=1234H;指令MOV Rn,#data,实现(data)→Rn
MOVR2,#21H
MOVR3,#0EFH;R3R2=EF21H;分别把各地址送入R1,R0,R2,R3中
MOVA,R0
ADDA,R2;低8位相加R0和R2两个低字节相加,并存到R4
MOVR4,A;
MOVA,R1
MOV@R1,#0AAH;(40H)=AAH
MOVA,@R1;A=AAH;指令MOV A,@Ri,即Ri→A
XCHA,@R0;A=55H(30H)=AAH;引入中间变量,实现R0,R1互换
XCHA,@R1;A=AAH(40H)=55H
;下面是另一种方法
MOV@R0,#33H;(30H)=33H
MOV@R1,#44H;(40H)=44H
3学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。
原理:
Keil集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。
在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。
2)编写程序,加入到刚才建立工程文件中。在File下采用New命令,建立新文件,送入程序内容,并保存为ASM类型文件。在Project Windos窗口内,选中Source Group1后点击鼠标右键,在弹出的快捷菜单中选择Add files to Group “Source Group1”(向工程中添加源程序文件)命令,选择刚才创建单击Add命令即可把源程序文件添加到项目中。
MOVA,B
ADDCA,#00H ;将高位字节与进位相加,送到R6中,实现了数据的低位字节
MOVR6,A乘于两字节数据
NOP
MOVA,R0
MOVB,R3
MULAB
ADDA,R5
MOVR5,A
MOVA,B
ADDCA,R6
MOVR6,A
MOVA,R1
MOVB,R3
MULAB
ADDA,R6
MOVR6,A
MOVA,B
ADDCA,#00H
MOVR7,A;R7R6R5R4=1100E4B4H
SJMP$
END
四、实验心得