北航17系微机原理实验报告三
微机原理实验报告册(3篇)

第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
民航大学微机原理实验报告及试验程序

微机原理与接口技术实验报告实验环境: Windows XP SP3实验软件:masm, link, debug, edit。
Test 1: debug命令及汇编指令和寻址的应用。
NO.1设堆栈指针SP=2000H, AX=3000H, BX=5000H;请编一程序段将AX和BX的内容进行交换。
要求:用3种方法实现。
方法一CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000HMOV BX,5000H MOV CX,AX MOV AX,BX MOV BX,CX CODE ENDS END START 方法二CODE SEGMENTASSUME CS:CODESTART: MOVAX,3000HMOV BX,5000HXCHG AX,BXCODE ENDSEND START方法三CODE SEGMENTASSUME CS:CODESTART: MOVAX,3000HMOV BX,5000HPUSH AXPUSH BXPOP AXPOP BXCODE ENDSEND STARTNO.2分别执行以下指令, 比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。
MOV AX,BX 寄存器寻址, 将BX内容送AXMOV AX,[BX] 寄存器间接寻址, 将DS:BX内存单元内容送AXMOV AX,10[BX] 寄存器相对寻址, 将DS:BX+10内存单元内容送AXNO.3已知有如下程序段:MOV AX, 1234HMOV CL, 4在以上程序段的基础上, 分别执行以下指令:ROL AX, CL AX=4123HROR AX, CL AX=3412HSHL AX, CL AX=4120HSHR AX, CL AX=0412HSAR AX, CL AX=0041HRCL AX, CL AX=0410HRCR AX, CL AX=0041HNO.4设有以下部分程序段:TABLE DW 10H,20H,30H,40H,50HENTRY DW 3┇LEA BX,TABLEADD BX,ENTRYMOV AX,[BX]┇要求: (1)将以上程序段补充成为一个完整的汇编程序。
北航微机原理实验报告——字符串排序

一、实验名称:字符串排序二、实验目的:⑴学习利用系统功能调用的“INT 21H”进行字符的输入、字符串的显示方法,熟悉排序相关指令及方法。
⑵掌握汇编语言的编写、编译、连接及运行方法。
三、实验内容:①利用INT 21H的1号功能,从键盘输入任意长度的字符串,以回车符结束。
②将输入的字符串存放在数据段中。
③对输入的字符串按ASCⅡ码从小到大排序(ASCⅡ码小者占低地址存放)。
④将排好序的字符串利用INT 21H的9号功能显示在微机屏幕上。
四、程序流程图:定义堆栈段、数据段分配各段调用输入程序,输入并存储一个字符NO输入是否为回车键YES冒泡法对存储单元中的内容排序使用INT 21H的9号功能,将排好序的字符串输出返回DOS五、结论:六、实验心得:通过实验,首先,我进一步理解学习了冒泡法排序的具体过程:冒泡法的外层循环次数等于其排序总数减一,每层内循环次数等于外循环总数减去已执行的次数。
第二,在编写程序时,如若程序太长,最好将一段反复使用的程序段编成子程序,在主程序中反复调用即可。
第三,在使用INT 21H的各种功能时,要注意将功能号值付给AH,并需正确使用入口、出口参数。
最后,堆栈段、数据段使用时要特别注意,堆栈段必须重新定义,程序中使用数据段时也要对数据段进行重新定义,否则程序将产生错误。
附:程序清单STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDA TA SEGMENTX DB 100 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKMAIN PROCMOV AX,DA TAMOV DS,AXMOV SI,OFFSET XCALL INPUTSUB SI,2MOV BX,SINEXT3:MOV CX,BXMOV SI,OFFSET XNEXT2:MOV AL,[SI]CMP AL,[SI+1]JBE NEXT1XCHG AL,[SI+1]MOV [SI],ALNEXT1:INC SILOOP NEXT2DEC BXJNZ NEXT3MOV DX,OFFSET XMOV AH,9INT 21HMOV AH,4CHINT 21HMAIN ENDPINPUT PROCSTART:MOV AH,1INT 21HMOV [SI],ALINC SICMP AL,0DHJNZ STARTMOV BYTE PTR [SI-1],'$'RETINPUT ENDPCODE ENDSEND MAIN。
北航17系光电子实验报告1-4

北京航空航天大学光电子技术实验报告实验时间:2015.05.13报告时间:2015.05.21I.光敏电阻特性及应用试验实验一光敏电阻特性实验一.实验目的:1.了解光敏电阻的工作原理。
2.掌握使用本仪器测定光敏电阻的各种特性。
3.了解从实验曲线中获取物理特性的方法。
二.实验原理:利用具有光电导效应的半导体材料制成的光敏传感器叫光敏电阻,又称为光导管,是一种均质的半导体光电器件,其结构如图(1)所示,图(1)光敏电阻采用梳状结构是由于在间距很近的电阻之间有可能采用大的灵敏面积,提高灵敏度。
光敏电阻应用得极为广泛,可见光波段和大气透过的几个窗口都有适用的光敏电阻,利用光敏电阻制成的光控开关在日常生活中随处可见,当内光电效应发生时,光敏电阻电导率的改变量为:∆σ=∆p ⋅e⋅μp +∆n ⋅e⋅μn在上式中,e 为电荷电量,∆p 为空穴浓度的改变量,∆n 为电子浓度的改变量,μ表示迁移率,当两端加上电压U后,光电流为式中A为与电流垂直的表面,d 为电极间的间距。
在一定的光照度下,∆σ为恒定的值,因而光电流和电压成线性关系。
光敏电阻在未受到光照射时的阻值称为暗电阻,此时流过的电流称为暗电流,光敏电阻受到光照射时的阻值称为亮电阻,此时流过的电流称为亮电流,亮电流与暗电流之差称为光电流,一般暗电阻越大,亮电阻越小,光敏电阻的灵敏度越高,光敏电阻的暗电阻一般在兆欧数量级,亮电阻在几千欧以下,暗电阻与亮电阻之比一般在102~106 之间。
一般光敏电阻(如硫化铅、硫化铊)的伏安特性曲线如图(2)所示,由该曲线可知,所加的电压越高,光电流越大,而且没有饱和现象,在给定的电压下,光电流的数值将随光照增强而增大,在设计光敏电阻变换电路时,应使光敏电阻的工作电压或电流控制在额定功耗线之内。
图(2)光敏电阻伏安特性曲线光敏电阻的光电流与光照强度之间的关系,称为光敏电阻传感器的光照特性,不同类型的光敏电阻,其光照特性也不同,多数光敏电阻传感器光照特性类似于图(3)的特性曲线,光敏电阻的光照特性呈现出一定程度的非线性特性,光敏电阻的光照度——电阻值的典型特性曲线如图(4)所示,低照度a区曲线斜率较大,中间照度区b区可近似视为直线区,也是光敏电阻的主要工作区,因而光电流随光照度增长较快,在高照度区,电阻值随照度下降慢,光电流随照度增长也变慢。
微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
(完整版)北航微机原理实验报告

微计算机原理及运用实验报告目录实验一:I/O地址译码实验 (4)一、实验目的 (4)二、实验原理和内容 (4)三、实验程序 (4)四.实验总结 (5)实验二:8255并行接口实验 (6)一、实验目的 (6)二、实验原理和内容 (6)三、程序框图 (7)四.实验程序 (7)五.实验总结 (8)实验三:键盘显示控制实验 (9)一、实验目的 (9)二、实验内容及原理 (9)三、流程图 (10)四.程序 (10)五.实验总结 (13)实验四:8254定时器/计数器实验 (14)一、实验目的 (14)二、实验原理和内容 (14)三、实验程序 (14)四.实验总结 (15)实验五:继电器控制实验 (16)一、实验目的 (16)二、实验原理和内容 (16)三、实验中使用的程序 (16)四.实验总结 (18)实验六:DMA传送 (18)一、实验目的 (18)二、实验原理和内容 (18)三、程序 (19)四.实验总结 (20)实验七:8259 中断控制实验 (20)一、实验目的 (20)二、实验原理和内容 (21)三、流程图 (21)四.程序 (21)五.实验总结 (25)实验八:8255中断实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三.实验程序 (26)四.实验总结 (27)实验一:I/O地址译码实验一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容实验电路如附图1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
附图1 I/O地址译码电路利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
北航微机 原理 数模转换

微机原理实验报告数模转换一、实验名称数/模转换二、实验目的了解数/模转换的原理,学习数/模转换芯片的使用方法,掌握利用数/模转换芯片产生方波及正弦波的方法。
三、实验内容在数据段中存放好对应于方波和正弦波的数字量,正弦波要求20个值。
编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。
四、程序流程图及波形图:(见末页)五、实验结论:符合预期,输出端输出的数据加载到虚拟示波器后显示方波和正弦波。
六、实验心得这次实验无论是从程序编写到硬件连线,都是比较容易的。
在实验过程中,我也进行得十分顺利,很快就得到了实验结果。
但实验过程中的一个环节还是给了我一些启示。
实验过程中有一个步骤是要在输出端测输出电压。
刚开始我测试数据的时候发现万用表测出的数据跳动非常大,无法获得稳定的电压值。
我开始认为是连线接触不良导致的这种情况,于是重新连了一次线,但发现问题仍然存在。
我又重新检查了一下程序,并回忆老师上课讲过的一些实验中会遇到的问题,我突然想到是因为程序中少了一段延时程序才导致输出电压无法测出。
再加入了一个延时子程序后果然顺利的得到了稳定的电压值。
这次实验我最大的收获就是明白了理论如何转化成正确的实践成果。
老师课堂上并没有讲过输出要延时一段时间,但是具体实践却要求我们必须这样做才能获得正确的结果。
这就需要我们自己具备这种分析问题,并结合实际情况改进理论指导的能力。
七、实验程序:方波:inadress equ 0EF00H-280H+290HSTACK SEGMENT STACKDB 100 DUP (?)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000 NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCAGN: MOV AX, DATAMOV DS, AXMOV AL, 0MOV DX, inadressOUT DX, ALCALL DELAYMOV AL, 0FFHOUT DX, ALCALL DELAYMOV DL, 0FFHMOV AH, 6INT 21HJZ AGNMOV AH, 4CHINT 21HMAIN ENDPCODE ENDSEND MAIN正弦波:inadress equ 0EF00H-280H+290HSTACK SEGMENT stackDB 100 DUP (?)STACK ENDSDATA SEGMENTSTR DB 128, 168, 203, 232, 250, 255, 250, 232, 203, 168, 128, 88, 53, 24, 6, 0, 6, 24, 53, 88DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCMOV AX, DATAMOV DS, AXMOV DX, inadressNEXT1: MOV SI, OFFSET STRMOV BX, 0NEXT2: MOV AL, [SI]OUT DX, ALCALL DELAYINC SIINC BXCMP BX, 20JE NEXT1MOV DL, 0FFHMOV AH, 6INT 21HJZ NEXT2MOV AH, 4CHINT 21H MAIN ENDPCODE ENDSEND MAIN流程图:方波开始将方波数字量存入数据段将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 将数据段中第二个方波数字量放入AL 寄存器中 初始化N 返回DOS将数据段中第一个方波数字量放入AL 寄存器中 将第一位数字量偏移地址存入SI 寄存器 检查是否有键按下 将该数字量输出至I/O 端口,并调用延时子程序Y正弦波:开始将正弦波数字量存入数据段 将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 SI 和BX 寄存器的值自加初始化N检查是否有键按下返回DOSY 将数据段中第一个正弦波数字量放入AL 寄存器中将第一位数字量偏移地址存入SI 寄存器,BX 寄存器置零 BX 和20是否相等比较BX 和20的大小Y N方波:正弦波:。
北航微机原理实验三报告

微机原理第三次实验报告一、实验目的1. 了解DVSTR710B实验平台的基本结构和使用方法。
2. 掌握实际硬件平台上的软硬件综合调试方法。
3. 掌握IO 接口的应用、定时器的设置、中断处理和串行通信。
二、实验设备DVSTR710B实验平台,J-Link仿真器,PC机,Windows XP操作系统和Keil for ARM(MDK4.14)开发环境,串口调试助手V2.1。
三、实验步骤环境准备:(1)检查Windows程序中是否有名称为“SEGGER”的程序组,如无,表示计算机上没有安装J-Link的驱动,请先运行 Setup_JLinkARM_V436k 进行安装。
(2)使用连接线连接J-Link仿真器与实验平台的JTAG端口。
(3)用USB 线将J-Link仿真器连接至计算机。
(4)连接实验平台的电源。
四、实验内容1.LED的控制代码及分析:LED.h文件中,LED_Init()函数写为:GPIO_Config(GPIO2, 0x5400,GPIO_OUT_PP);//第二个参数标志着个GPIO引脚的电平,若要使10,12,14输出高电平,则对应的二进制码为0101010000000000,即0x5400;且引脚应为输出状态。
GPIO_WordWrite(GPIO2, GPIO_WordRead(GPIO2) & 0x0);//与上同理,要关闭LED即将引脚置为低电平,同0相与即可。
实验结果:点击调试并全速运行后,三个LED灯交替闪烁。
2.按键信息采集代码及分析:Key.h文件中,所有的0xAA80写为0x0A80,因为要配置按键K1、K2和K3对应的PC7,9,11引脚为输入方式。
实验结果:按下K1、K2、K3分别会使L3、L4、L5亮起。
3.定时器和中断代码及分析:Main.c文件中,函数TIM_PrescalerConfig()的第二个参数由182修改成9,即TIM_PrescalerConfig(TIM0, 9);以实现20Hz频率定时。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告实验三GPIO口的控制
一、实验目的
1.了解GPIO口有哪些工作模式,这些模式分别代表着的含义。
2.掌握ARM7TDMI的C语言编程的格式和用法,在原有的程序的基础上修改功能。
3.完成GPIO口控制实验。
二、实验设备
PC 计算机,Windows XP 操作系统和IAR 开发环境。
三、实验内容
1、实现开发板上三个LED灯的流水闪烁。
2、实现开发板上按键控制三个对应LED灯的亮灭。
四、实验步骤
1、运行IAR Embedded Workbench IDE并打开LED文件夹下的Project.eww的IAR工程。
2. 在左侧工程文件栏中最上方的Project-Debug处右键,对工程进行设置。
3. 在弹出相应的设置窗口中,进行如下选择。
①本实验是在基于STR710的环境下实现的,因此在General Options里应选择相应的设备名称②本实验是基于ARM7的STR710的开发板,程序编译完成后需要将生成的文件通过J-LINK下载去进一步调试,因此,Debugger-Setup处的Driver应该选择J-Link,并在Download选项卡进行配置。
4. 完成以上设置之后,就开始进行程序的编译并下载,首先仍在Project-Debug处右键,选择Rebuild All。
5. 编译完成后,依次点击Make和Download and debug键,将程序下载到开发板上。
6. 点击调试工具栏中的Go即可开始连续运行程序,在程序中间可设置断点或者使用观察窗口对变量进行观察。
设置断点并点击连续运行,程序运行到断点处之后,将temp1变量
添加到变量观察窗口,点击Step Out键进行调试和观察。
五、实验程序及结果
1.LED实现流水灯
实验代码
#include "71x_gpio.h"
#include "71x_lib.h"
#include "LED.h"
#include "Key.h"
void delay(void)
{
inti,j;
for(i = 0;i<1000;i++)
{
for(j = 0;j <1000;j++);
}
} //循环延迟
int main()
{
int temp1;
RCCU_PCLK1Config (RCCU_DEFAULT); //设置低速APB1时钟,锁存时钟
不做分频
/* Configure PCLK2 = RCLK / 1 */
RCCU_PCLK2Config (RCCU_DEFAULT); //设置高速APB2时钟,锁存时钟不做分频
/* Configure MCLK clock for the CPU, RCCU_DEFAULT = RCLK /1 */
RCCU_MCLKConfig (RCCU_DEFAULT); //设置主系统时钟,不做分频/* Configure the PLL1 ( * 12 , / 4 ) */
RCCU_PLL1Config (RCCU_PLL1_Mul_12, RCCU_Div_4); //配置PLL的倍乘和分除因子
while(RCCU_FlagStatus(RCCU_PLL1_LOCK) == RESET)
{
/* Wait PLL to lock */
} //等待PLL启动完成
/* Select PLL1_Output as RCLK clock */
RCCU_RCLKSourceConfig (RCCU_PLL1_Output) ; //选择外部PLL1为时钟源APB_ClockConfig (APB2, ENABLE, GPIO2_Periph); //APB2使能并设置GPIO2口
LED_Init(); //LED初始化
/*while(1)//正向流水
{
for(temp1 = 0; temp1 <3; temp1++)
{
LED_Set(temp1, LED_ON);
delay();
LED_Set(temp1, LED_OFF);
delay();
}
}*/
while(1)//反向流水
{
for(temp1 = 2; temp1 >-1; temp1--)
{
LED_Set(temp1, LED_ON);
delay();
LED_Set(temp1, LED_OFF);
delay();
}
}
/*while(1)//全亮全灭
{
LED_Set(1, LED_ON);
LED_Set(2, LED_ON);
LED_Set(0, LED_ON);
delay();
LED_Set(0, LED_OFF);
LED_Set(1, LED_OFF);
LED_Set(2, LED_OFF);
delay();
}*/
}
运行结果
LED灯实现正向和反向流水灯。
2.按key键实验
实验代码
#include "71x_gpio.h"
#include "71x_lib.h"
#include "LED.h"
#include "Key.h"
void delay(void)
{
inti,j;
for(i = 0;i<1000;i++)
{
for(j = 0;j <1000;j++);
}
}//延迟循环
int main()
{
int temp1;
RCCU_PCLK1Config (RCCU_DEFAULT); //设置低速APB1时钟,锁存时钟不做分频
/* Configure PCLK2 = RCLK / 1 */
RCCU_PCLK2Config (RCCU_DEFAULT); //设置高速APB2时钟,锁存时钟不做分频
/* Configure MCLK clock for the CPU, RCCU_DEFAULT = RCLK /1 */
RCCU_MCLKConfig (RCCU_DEFAULT); //设置主系统时钟,不做分频
/* Configure the PLL1 ( * 12 , / 4 ) */
RCCU_PLL1Config (RCCU_PLL1_Mul_12, RCCU_Div_4) ; //配置PLL倍乘和分除因子
while(RCCU_FlagStatus(RCCU_PLL1_LOCK) == RESET)
{
/* Wait PLL to lock */
} //等待PLL启动完成
/* Select PLL1_Output as RCLK clock */
RCCU_RCLKSourceConfig (RCCU_PLL1_Output) ; //选择外部PLL1为时钟源APB_ClockConfig (APB2, ENABLE, GPIO2_Periph); //APB2使能并设置GPIO2口
Key_Init(); //按键初始化
LED_Init(); //LED初始化
int test=LED_ON;
while(1)
{
int aa;//=(enum LEDOPT)Key_State(1);
if((aa=(enum LEDOPT)Key_State(1))!=0) //当按键K1=1即按下时
{
test=LED_OFF; //循环关闭
}
if((aa=(enum LEDOPT)Key_State(2))!=0) //当按键K2=1即按下时{
test=LED_ON; //流水灯循环打开}
for(temp1 = 0; temp1 < 3; temp1++) //控制LED状态循环
{
LED_Set(temp1, test);
delay();
LED_Set(temp1, LED_OFF);
delay();
}
}
}
运行结果
检测按键1按下后,进行灯的流水,检测按键2按下后,关闭所有灯。
六、总结与感想
通过本次实验,我在一定程度上了解了ARM开发板基本组成电路,并通过熟悉了ARM 芯片特性以及相关软件使用,并会用软件编译调试开发板。
实验中我在开发板上成功运行了程序,实验结果直接用LED灯显示,我觉得非常直观且有趣。
这次的GPIO口调试实验让我学到了很多,也让我对以后的学习有了更深的理解。