版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.1编写汇编语言程序一、目的(1)学会使用ADS1.2编写、调试汇编语言程序。(2)掌握使用存取指令读写存储器的编程方法。(3)掌握单步、分段调试程序方法。二、步骤1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE二、步骤2、创建工程在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImage(B)为工程起一个名字:Exp2101(C)配置工程存储路径:G:\Exp2101(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径二、步骤2、创建工程工程管理窗口文件选项卡链接顺序选项卡生成目标二、步骤2、创建工程工程管理存储路径内容数据目录工程文件输出文件存储路径二、步骤3、创建源程序文件在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择File选项卡(B)为文件起一个名字:Exp.s(C)配置文件存储路径为工程存储路径:G:\Exp2101(D)使AddtoProject复选框处于选中状态(E)Targes栏所有选项全部选中(F)击【确定】按钮,文件创建完毕二、步骤3、创建源程序文件源程序管理窗口二、步骤4、编写源程序(A)在源程序管理窗口中,录入源程序代码(B)执行菜单命令File|Save保存源程序二、步骤5、配置编译链接参数(A)执行菜单命令Edit|DebugRelSettings,打开DebugRelSettings窗口(B)在DebugRelSettingsPanels中,选中Linker|ARMLinker项二、步骤(5)、配置编译链接参数(A)在ARMLinker子窗口中,选择Output选项卡(B)在SimpleImage组内ROBase配置为0x40000000;
RWBase配置为0x40003000;二、步骤5、配置编译链接参数(A)在ARMLinker子窗口中,选择Options选项卡(B)在ImageEntryPoint录入0x40000000点击按钮OK,参数配置完毕二、步骤6、编译程序(A)打开源程序编辑窗口二、步骤6、编译程序(B)执行菜单Project|Compile命令,对源程序编译操作,如有错误,显示如下错误信息窗口(C)错误信息:Unknownopcode操作码错误,AREAExp101,code,READONLY指令前无空格(D)点击错误信息位置,进入源程序编辑窗口,将指令AREAExp101,code,READONLY指令前加入空格一条错误信息错误信息位置二、步骤6、编译程序(E)重复执行编译、改错操作,直至编译无错误。(F)编译Exp.s后生成的输出文件Exp.o保存到C:\Exp101\Exp101_Data\Debug\ObjectCode中,如下图输出文件生成目标二、步骤7、链接程序(A)执行Project|Make菜单命令,进行链接操作,生成的可执行镜像文件保存在C:\Exp101\Exp101_Data\Debug目录下,如下图:镜像文件生成目标二、步骤8、调试程序(1)启动AxdDebugger软件:IDE工程管理窗口中,鼠标点击按钮,启动调试器,如下图:PC要调试的源程序文件名二、步骤8、调试程序(2)显示观察窗口(A)执行ProcessorViews|Registers菜单命令,显示寄存器窗口,如下图:(B)执行ProcessorViews|Memory菜单命令,显示存储器窗口,如下图:寄存器窗口存储器窗口二、步骤8、调试程序(2)调试语句MOVR1,R1,ROR#8(A)程序指针PC定位到指令MOVR1,R1,ROR#8在指令MOVR1,R1,ROR#8前设置一断点鼠标移到行号12前空白处,双击鼠标,则在指令MOVR1,R1,ROR#8前设置一断点,如下图:要调试的语句断点二、步骤8、调试程序(2)调试语句MOVR1,R1,ROR#8(B)程序指针PC定位到指令MOVR1,R1,ROR#8运行程序,使程序指针PC指向指令MOVR1,R1,ROR#8鼠标点击按钮,执行程序,程序指针PC指向指令MOVR1,R1,ROR#8程序指针PC、断点要调试的语句二、步骤8、调试程序(2)调试语句MOVR1,R1,ROR#8(C)指令MOVR1,R1,ROR#8调试前已知条件查看寄存器窗口,得知R1=0x11223344指令MOVR1,R1,ROR#8功能为,R1循环右移8个二进制位,理论结果R1=0x44112233寄存器名称寄存器值二、步骤8、调试程序(2)调试语句MOVR1,R1,ROR#8(D)单步执行指令MOVR1,R1,ROR#8鼠标单击按钮,单步执行指令MOVR1,R1,ROR#8,如下如断点程序指针PC要调试的指令二、步骤8、调试程序(2)调试语句MOVR1,R1,ROR#8(E)指令MOVR1,R1,ROR#8执行后,R1的结果查看寄存器窗口,得知R1=0x44112233(F)结果分析:调试结果与指令执行理论结果一致寄存器名称R1寄存器的值二、步骤8、调试程序(3)调试语句STRR1,[R0](A)程序指针PC定位到指令STRR1,[R0]在指令STRR1,[R0]前设置一断点鼠标移到行号13前空白处,双击鼠标,则在指令STRR1,[R0]前设置一断点,如下图:断点要调试的语句二、步骤8、调试程序(2)调试语句STRR1,[R0](B)程序指针PC定位到指令STRR1,[R0]运行程序,使程序指针PC指向指令STRR1,[R0]鼠标点击按钮,执行程序,程序指针PC指向指令STRR1,[R0]要调试的语句程序指针PC、断点二、步骤8、调试程序(2)调试语句STRR1,[R0](C)指令STRR1,[R0]调试前已知条件查看寄存器窗口,得知R1=0x44112233,R0=0x40003000指令STRR1,[R0]功能为,R1存入字存储单元0x40003000,即
[0x40003000]=0x44112233寄存器名称寄存器值二、步骤8、调试程序(2)调试语句STRR1,[R0](D)单步执行指令STRR1,[R0]鼠标单击按钮,单步执行指令STRR1,[R0],如下如存储区起始地址存储单元[0x40003000]=0x44112233二、步骤8、调试程序(2)调试语句STRR1,[R0](E)指令STRR1,[R0]执行后,R1=0x44112233R0=0x40003000查看存储器窗口,得知[0x40003000]=0x44112233(F)结果分析:调试结果与指令执行理论结果一致存储区起始地址存储单元[0x40003000]=0x44112233二、步骤8、调试程序(4)调试程序段:包括行号为12、13、14指令的程序段(A)在程序段第一条指令前设置断点在指令MOVR1,R1,ROR#8前设置一断点鼠标移到行号12前空白处,双击鼠标,则在指令MOVR1,R1,ROR#8前设置一断点,如下图:要调试的语句断点:程序段第一条指令二、步骤8、调试程序(4)调试程序段:包括行号为12、13、14指令的程序段(B)程序指针PC定位到程序段第一条指令处运行程序,使程序指针PC指向指令MOVR1,R1,ROR#8鼠标点击按钮,执行程序,程序指针PC指向指令MOVR1,R1,ROR#8程序指针指向程序段第一条指令要调试的程序段二、步骤8、调试程序(4)调试程序段:包括行号为12、13、14指令的程序段(C)删除指令MOVR1,R1,ROR#8前的断点鼠标移到行号12前空白处,双击鼠标,则在指令MOVR1,R1,ROR#8前断点删除,如下图:程序指针指向程序段第一条指令要调试的程序段二、步骤8、调试程序(4)调试程序段:包含行号为12、13、14指令的程序段(D)在程序段随后一条语句设置另一断点在指令BL前设置一断点鼠标移到行号15前空白处,双击鼠标,则在指令BL前设置一断点,如下图:断点:程序段随后指令PC:程序段第一条指令二、步骤8、调试程序(4)调试程序段:包含行号为12、13、14指令的程序段(E)程序段调试前已知条件查看寄存器窗口,得知R1=0x11223322,R0=0x40003000程序段功能为,R1循环右移8个二进制位,即R1=0x44112233
将R1的值存入以R0值为存储器地址的字单元中,即[0x40003000]=0x44112233读入以R0值为存储器地址的字单元值,存入R1中,即R1=0x44112233二、步骤8、调试程序(4)调试程序段:包含行号为12、13、14指令的程序段(F)执行程序段鼠标单击按钮,执行包含行号为12、13、14指令的程序段
,如下如二、步骤8、调试程序(4)调试程序段:包含行号为12、13、14指令的程序段(G)执行程序段结果R1=0x44112233
[0x40003000]=0x44112233
R1=0x44112233与理论值一致2.2编写C语言程序一、目的(1)学会使用ADS1.2编写、调试C语言程序。(2)掌握使用地址指针访问存储器的编程方法。(3)熟悉单步、分段调试程序方法与技巧。二、步骤1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE二、步骤2、创建工程在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImage(B)为工程起一个名字:Exp2102(C)配置工程存储路径:G:\Exp2102(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径二、步骤2、创建工程工程管理窗口文件选项卡链接顺序选项卡生成目标二、步骤2、创建工程工程管理存储路径内容数据目录工程文件输出文件存储路径二、步骤3、创建源程序文件在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择File选项卡(B)为文件起一个名字:Exp2102.c(C)配置文件存储路径为工程存储路径:G:\Exp2102(D)使AddtoProject复选框处于选中状态(E)Targes栏所有选项全部选中(F)击【确定】按钮,文件创建完毕二、步骤3、创建源程序文件源程序管理窗口二、步骤4、编写源程序(A)在源程序管理窗口中,录入源程序代码(B)执行菜单命令File|Save保存源程序二、步骤5、配置编译链接参数(1)、显示ARMLinker配置窗口(A)执行菜单命令Edit|DebugRelSettings,打开DebugRelSettings窗口(B)在DebugRelSettingsPanels中,选中Linker|ARMLinker项二、步骤5、配置编译链接参数(2)配置程序区、数据区参数(A)在ARMLinker子窗口中,选择Output选项卡(B)在SimpleImage组内ROBase配置为0x40000000;
RWBase配置为0x40003000;二、步骤5、配置编译链接参数(3)配置镜像入口点参数(A)在ARMLinker子窗口中,选择Options选项卡(B)在ImageEntryPoint录入0x40000000点击按钮OK,参数配置完毕二、步骤5、配置编译链接参数(4)配置生成目标(A)单机生成目标栏的按钮,下拉列表显示所有可用生成目标(B)选择Debug作为生成目标生成目标二、步骤6、编译程序(A)打开源程序编辑窗口二、步骤6、编译程序(B)单击编译按钮,对源程序执行编译操作,如有错误,修改错误。重复执行编译、改错操作,直至无错。(C)编译源程序文件Exp2102.c后,生成输出文件Exp2102.O二、步骤7、链接程序(A)单击链接按钮,进行链接操作,生成的可执行镜像文件保存在G:\Exp2102\Exp2102_Data\DebugRel目录下,如下图:镜像文件生成目标二、步骤8、调试程序(1)启动AxdDebugger软件:WindowsXP操作桌面,执行【开始】|
【所有程序】|ARMDeveloperSuiteV1.2|AxDDebugger菜单命令,运行调试器软件AxDDebugger,如下图:
二、步骤8、调试程序(2)调入可执行镜像文件Exp2102.axf
(A)执行File|LoadImage菜单命令,显示LoadImage窗口,如下图:二、步骤8、调试程序(2)调入可执行镜像文件Exp2102.axf
(B)选择G:\Exp2102\Exp2102_Data\DebugRel目录下的镜像文件Exp2102.axf,然后点击打开,进入调试界面,如下图:程序指针二、步骤8、调试程序(3)定位到用户程序的第一条语句处(A)单击程序执行按钮,执行程序,程序指针执向用户程序的第一条语句,如下图:程序指针二、步骤8、调试程序(4)显示变量窗口(A)执行ProcessorViews|Variables菜单命令,显示变量窗口,如下图:全局变量选项卡局部变量选项卡二、步骤8、调试程序(4)显示存储器窗口(B)执行ProcessorViews|Memory菜单命令,显示存储器窗口,在StartAddress后编辑框内录入0x40003000,然后回车。显示以0x40003000为起始地址的存储区如下图:二、步骤8、调试程序(5)调试语句ClearMemory((unsignedchar*)0x40003000,256);(A)程序指针PC定位到语句ClearMemory((unsignedchar*)0x40003000,256);在语句ClearMemory((unsignedchar*)0x40003000,256)前设置一断点鼠标移到行号30前空白处,双击鼠标,则在语句
ClearMemory((unsignedchar*)0x40003000,256)前设置一断点,如下图:断点要调试的语句二、步骤8、调试程序(5)调试语句ClearMemory((unsignedchar*)0x40003000,256);(B)程序指针PC定位到ClearMemory((unsignedchar*)0x40003000,256);运行程序,使程序指针PC指向本语句鼠标点击按钮,执行程序,程序指针PC指向
ClearMemory((unsignedchar*)0x40003000,256);程序指针PC、断点要调试的语句二、步骤8、调试程序(5)调试语句ClearMemory((unsignedchar*)0x40003000,256);(C)语句ClearMemory((unsignedchar*)0x40003000,256)的功能
将以0x40003000为起始地址,连续256个字节存储单元清0。(D)语句ClearMemory((unsignedchar*)0x40003000,256)执行前,将查看0x40003000为起始地址,连续256个字节存储单元内容。
在存储器窗口,StartAddress地址栏输入0x40003000,然后回车,则0x40003000为起始地址,连续256个字节存储单元内如如下图:二、步骤8、调试程序(5)调试语句ClearMemory((unsignedchar*)0x40003000,256);(F)单步执行语句ClearMemory((unsignedchar*)0x40003000,256)鼠标单击按钮,单步执行语句ClearMemory((unsignedchar*)0x40003000,256),如下图断点程序指针PC要调试的指令二、步骤8、调试程序(5)调试语句ClearMemory((unsignedchar*)0x40003000,256);(G)语句ClearMemory((unsignedchar*)0x40003000,256)执行结果查看以0x40003000为起始地址,连续256个字节存储单元内容,执行结果与语句功能一致,如下图2.1UART
一、目的(1)掌握嵌入式处理器LPC2290UART接口电路设计方法(2)掌握UART的编程方法。2.1UART
二、题目编程程序实现通过Uart0向PC机串行发送数据要求UART0通信格式为:通讯波特率115200BPS,8位数据位,1位停止位,无奇偶校验发送ASCII字符串“ARM7LPC2290!”UART0使用查询方式发送数据2.1UART
三、UART接口电路(1)SP3232ERS232接口芯片(2)LPC2290UART0P0.0为UART0数据发送线TxD0,
P0.1为UART0数据接收线RxD0(3)连接插座2脚为基于RS232标准的TxD数据发送线连接插座3脚为基于RS232标准的RxD数据接收线2.1UART
四、UART数据发送相关(1)使用PINSEL0配置P0.0为UART0TxD0,
P0.1为UART0RxD0(2)使用U0LCR配置数据传输格式;使用U0DLL、U0DLM配置数据传输速率
(3)发送一字节数据:将字节数据写入寄存器U0THR
监视U0LSR位6,当位6=1发送完成
2.1UART
五、UART编程(1)UART0初始化(A)管脚功能配置
将管脚P0.0为UART0TxD0,将PINSEL0的位1位0配置为01即可;将管脚P0.1为UART0RxD0,将PINSEL0的位3位2配置为01即可;配置语句:
PINSEL0=
PINSEL0&0xFFFFFF00|0x05(B)UART0帧格式配置
依据实验要求,配置U0LCR寄存器各位值,实现帧格式传输格式:8个数据位、1个停止位、无校验8位数据D1D0=111个停止位D2=0
无校验
D3=0配置语句:
U0LCR=0x03
2.1UART
五、UART编程(1)UART0初始化(C)波特率配置DLAB(U0LCR位7)=1时才能访问寄存器U0DLM,U0DLL配置语句:U0LCR|=0x80依据公式BaudRate=Fpclk/([U0DLM,U0DLL]×16)计算U0DLM,U0DLL寄存器配置值其中BaudRate为波特率,比如115200BPS;U0DLM波特率16位配置值的高8位;U0DLL波特率16位配置值的低8位;Fpclk系统时钟配置语句:U0DLL=(Fpclk/(BaudRate*16))&0xff//低8位
U0DLM=(Fpclk/(BaudRate*16))/256//高8位
=(Fpclk/(BaudRate*16))>>82.1UART
五、UART编程(2)UART0数据发送(A)发送数据:将字节数据写入寄存器U0THR即可.发送数据语句:U0THR=字节数据(B)监测发送数据是否结束:当U0LSR位6=1时,数据发送完成监测发送结束语句:
while((U0LSR&0x40)==0);2.1UART
六、编程1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE2.1UART
六、编程1、创建工程:在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImageForMagicARM2200(B)为工程起一个名字:Exp2201(C)配置工程存储路径:G:\Exp2201(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径2.1UART
六、编程工程管理窗口文件选项卡链接顺序选项卡生成目标2.1UART
六、编程工程管理存储路径内容数据目录工程文件输出文件存储路径2.1UART
六、编程2、打开源程序编辑窗口(1)、在工程管理窗口中,展开User目录;(2)、双击文件main.c,打开源程序main.c编程窗口,如下图2.1UART
六、编程3、录入源程序在源程序编辑窗口中,录入程序代码,然后执行File|Save菜单命令,保存源程序。2.1UART
六、编程4、编译、改错单击按钮,编译程序,如有错误,根据错误提示信息,修改程序。然后重复执行编译、改错操作,直至编译通过,生成输出文件如下图:编译main.c生成的输出文件2.1UART
六、编程5、链接程序单击按钮,链接程序,生成的可执行镜像文件如下图:镜像文件2.1UART
七、调试1、启动调试器、调入要调试的镜像文件单击按钮,启动调试器AxDDebugger、调入要调试的镜像文件Exp2201.axf,如下图:2.1UART
七、调试2、计算机端运行SerialPort201.Exe程序,执行“接收数据”菜单命令3、执行程序单击按钮,执行程序4、观察分析观察计算机端是否接收到数据,如果接收到,调试结束;否则。按如下顺序检查:串行电缆连接是否牢固UART0初始化是否正确接收两端帧格式、波特率是否一致
2.2UART
一、目的(1)掌握嵌入式处理器LPC2290UART接口电路设计方法(2)掌握UART的编程方法。2.2UART
二、题目使用UART0接收PC机数据,在发送给PC机要求UART0通信格式为:通讯波特率115200BPS,8位数据位,1位停止位,无奇偶校验发送ASCII字符串“ARM7LPC2290!”UART0使用查询方式发送数据2.2UART
三、UART接口电路(1)SP3232ERS232接口芯片(2)LPC2290UART0P0.0为UART0数据发送线TxD0,
P0.1为UART0数据接收线RxD0(3)连接插座2脚为基于RS232标准的TxD数据发送线连接插座3脚为基于RS232标准的RxD数据接收线2.2UART
四、UART数据发送接收1、数据接收相关(1)使用PINSEL0配置P0.1为UART0RxD0(2)使用U0LCR配置数据传输格式;使用U0DLL、U0DLM配置数据传输速率
使用U0FCR配置FIFO可用(3)接收数据:U0LSR位0=1时FIFO接收缓冲区有数据,可通过读取U0RBR接收一字节数据2.2UART
四、UART数据发送接收2、数据接收中断相关(1)
U0FCR配置使用TxFIFO、RxFIFO,配置接收中断出发级别(2)使用VICIntSelect配置RDA为IRQ类型或FIQ类型(3)使用VICVectCntl0、VICVectAddr0配置记录与识别中断服务程序(4)使用配置VICIntEnable使对RDA开中断(5)中断过程:UART0监控RxFIFO接收数据状况,当达到触发级别,向VIC申请中断,VIC根据找到并调用针对RDA编写的中断服务程序.2.2UART四、UART数据发送接收3、数据发送相关(1)使用PINSEL0配置P0.0为UART0TxD0(2)使用U0LCR配置数据传输格式;使用U0DLL、U0DLM配置数据传输速率
(3)发送一字节数据:将字节数据写入寄存器U0THR
监视U0LSR位6,当位6=1发送完成
2.2UART
五、UART编程(1)UART0初始化(A)管脚功能配置
将管脚P0.0为UART0TxD0,将PINSEL0的位1位0配置为01即可;将管脚P0.1为UART0RxD0,将PINSEL0的位3位2配置为01即可;配置语句:
PINSEL0=
PINSEL0&0xFFFFFF00|0x05(B)UART0帧格式配置
依据实验要求,配置U0LCR寄存器各位值,实现帧格式传输格式:8个数据位、1个停止位、无校验8位数据D1D0=111个停止位D2=0
无校验
D3=0配置语句:
U0LCR=0x03
2.2UART
五、UART编程(1)UART0初始化(C)波特率配置DLAB(U0LCR位7)=1时才能访问寄存器U0DLM,U0DLL配置语句:U0LCR|=0x80依据公式BaudRate=Fpclk/([U0DLM,U0DLL]×16)计算U0DLM,U0DLL寄存器配置值其中BaudRate为波特率,比如115200BPS;U0DLM波特率16位配置值的高8位;U0DLL波特率16位配置值的低8位;Fpclk系统时钟配置语句:U0DLL=(Fpclk/(BaudRate*16))&0xff//低8位
U0DLM=(Fpclk/(BaudRate*16))/256//高8位
=(Fpclk/(BaudRate*16))>>82.2UART
五、UART编程(1)UART0初始化(D)配置使用FIFO缓冲区、RDA接收中断触发级别为10配置U0FCR位0=1,使用FIFO缓冲区配置U0FCR位[7:6]=10,RxFIFO数据达到8字节出发接收中断配置语句:
U0FCR=0x81;(E)配置RDA中断类型为IRQRDA中断源编号为6配置VICIntSelect寄存器位6=0即可配置语句:
VICIntSelect=
VICIntSelect&(~(1<<6))2.2UART
五、UART编程(1)UART0初始化(F)配置记录、识别中断服务程序配置VICVectCntl0的位[4:0]记录RDA中断源编号6配置VICVectCntl0的位[5]为1声明VICVECTAddr0保存的是中断源编号6的中断源中断服务程序配置语句:
VICVectCntl0=0x20|0x06;VICVECTAddr0=(uint32)IRQ_UART0;//IRQ_UART0为中断服务程序(G)配置VICIntEnable的位[6]=1,开RDA中断配置语句:
VICIntEnable&=1<<6;(H)配置RDA可申请中断配置U0IER的位0=1,使RDA可申请中断配置语句:
U0IER=0x01;2.2UART
五、UART编程(2)UART0编程(A)发送字节数据将字节数据写入寄存器U0THR即完成数据发送,语句如下:
U0THR=Data;(B)中断服务程序中断服务程序声明void__irq
中断服务程序名(void)其中,__irq为中断服务程序标识中断源识别:U0IIR的位[3:1]=010时为RDA中断数据接收
从U0RBR读取数据存入用户接收缓冲区rcv_buf[255]中断服务程序结束处理清除接收中断
data=U0IIR清除正在服务的中断服务程序地址
VICVectAddr=0x002.2UART
六、编程1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE2.2UART
六、编程1、创建工程:在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImageForMagicARM2200(B)为工程起一个名字:Exp2202(C)配置工程存储路径:G:\Exp2202(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径2.2UART
六、编程工程管理窗口文件选项卡链接顺序选项卡生成目标2.2UART
六、编程工程管理存储路径内容数据目录工程文件输出文件存储路径2.2UART
六、编程2、打开源程序编辑窗口(1)、在工程管理窗口中,展开User目录;(2)、双击文件main.c,打开源程序main.c编程窗口,如下图2.2UART
六、编程3、录入源程序在源程序编辑窗口中,录入程序代码,然后执行File|Save菜单命令,保存源程序。2.2UART
六、编程4、编译、改错单击按钮,编译程序,如有错误,根据错误提示信息,修改程序。然后重复执行编译、改错操作,直至编译通过,生成输出文件如下图:编译main.c生成的输出文件2.2UART
六、编程5、链接程序单击按钮,链接程序,生成的可执行镜像文件如下图:镜像文件2.2UART
七、调试1、启动调试器、调入要调试的镜像文件单击按钮,启动调试器AxDDebugger、调入要调试的镜像文件Exp2201.axf,如下图:2.2UART
七、调试2、计算机端运行SerialPort202.Exe程序,执行“发送接收数据”菜单命令3、执行程序单击按钮,执行程序4、观察分析计算机端录入数据,然后执行”发送”菜单命令,观察计算机端是否接收到数据,如果接收到,调试结束;否则。按如下顺序检查:串行电缆连接是否牢固UART0初始化是否正确接收两端帧格式、波特率是否一致
2.3.1蜂鸣器实验一、目的(1)掌握蜂鸣器的工作原理。(2)掌握蜂鸣器接口电路的设计方法。(3)掌握蜂鸣器编程方法。2.3.1蜂鸣器实验二、题目存储器0x40003100字节单元保存嵌入式系统各部件的运行状态数据,数据位信息定义如下:
位
0=0存储器无故障;
=1存储器故障;
位1=0
串行通信无故障;
=1串行通信故障。依据内存0x40003100单元的内容,控制蜂鸣器报警。报警策略如下:存储器故障,每隔一定时间蜂鸣器发出“嘟嘟”报警声;串行通信故障,每隔一定时间蜂鸣器发出“嘟嘟嘟”报警声。如果两种错误都发生,则按以上策略交替报警。编写程序,实现以上功能。2.3.1蜂鸣器实验
三、蜂鸣器接口电路(1)Buzzer为蜂鸣器;8550为三极管;R88、R87、R86为电阻(2)p0.7为ARM处理器LPC2290P0口的第七引脚(3)P0.7为低电平时,三极段8550的ec级导通,电源正通过三极管ec作用于蜂鸣器,蜂鸣器响;P0.7为高电平时,三极段8550的ec级截止,蜂鸣器一端无电源,蜂鸣器不响;2.3.1蜂鸣器实验
四、蜂鸣器编程1、配置P0.7引脚为GPIO功能
将PINSEL0的位[15:14]配置00,P0.7引脚即为GPIO功能配置语句:
PINSEL0&=(~(3<<14));
2、配置P0.7引脚为GPIO输出
将IO0DIR的位7配置为1,P0.7引脚即为GPIO输出功能配置语句:IO0DIR|=1<<7;
3、控制蜂鸣器响与不响
将IO0SET的位[7]配置1,P0.7引脚输出高电平,蜂鸣器不响;配置语句:IO0SET|=1<<7;
将IO0CLR的位[7]配置1,P0.7引脚输出低电平,蜂鸣器响;配置语句:IO0CLR|=1<<7;
2.3.1蜂鸣器实验
五、编程1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE2.3.1蜂鸣器实验五、编程1、创建工程:在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImageForMagicARM2200(B)为工程起一个名字:Exp2301(C)配置工程存储路径:G:\Exp2301(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径2.3.1蜂鸣器实验五、编程工程管理窗口文件选项卡链接顺序选项卡生成目标2.3.1蜂鸣器实验五、编程工程管理存储路径内容数据目录工程文件输出文件存储路径2.3.1蜂鸣器实验五、编程2、打开源程序编辑窗口(1)、在工程管理窗口中,展开User目录;(2)、双击文件main.c,打开源程序main.c编程窗口,如下图2.3.1蜂鸣器实验五、编程3、录入源程序在源程序编辑窗口中,录入程序代码,然后执行File|Save菜单命令,保存源程序。2.3.1蜂鸣器实验五、编程4、编译、改错单击按钮,编译程序,如有错误,根据错误提示信息,修改程序。然后重复执行编译、改错操作,直至编译通过,生成输出文件如下图:编译main.c生成的输出文件2.3.1蜂鸣器实验五、编程5、链接程序单击按钮,链接程序,生成的可执行镜像文件如下图:镜像文件2.3.1蜂鸣器实验六、编程1、启动调试器、调入要调试的镜像文件单击按钮,启动调试器AxDDebugger、调入要调试的镜像文件Exp2301.axf,如下图:2.3.1蜂鸣器实验六、编程2、调用变量窗口(1)单击按钮,进入用户程序调试窗口(2)执行菜单ProcessorViews|Variables菜单命令,打开变量窗口,如下图:2.3.1蜂鸣器实验六、编程3、调试控制蜂鸣器(1)、调试前准备将鼠标移动到行号38前的空白处,双击鼠标,去掉断点将鼠标移动到行号21前的空白处,双击鼠标,设置断点,记录为断点1将鼠标移动到行号23前的空白处,双击鼠标,设置断点,记录为断点2点击按钮,执行程序,程序停在断点1处2.3.1蜂鸣器实验六、编程3、调试控制蜂鸣器(2)、配置蜂鸣器控制数据执行ProcessorViews|Memory菜单命令,打开存储器窗口在StartAddress栏输入0x40003100,回车确认双击存储单元0x40003100,录入0x03,回车确认,如下图:2.3.1蜂鸣器实验六、编程3、调试控制蜂鸣器(3)、调试点击按钮,程序停在断点2处。如果蜂蜜器响,正确;如果蜂鸣器不响。检查P0.7初始化、蜂鸣器电路。点击按钮,程序停在断点1处。蜂蜜器不响。去掉断点1、断点2,运行程序。4、思考题设计调试项,按照设计思路调试2.3.2
LED显示与按键识别实验
一、目的(1)进一步掌握GPIO接口电路设计方法。(2)了解LED、按键接口电路的工作原理。(3)掌握LED显示控制、按键识别的编程方法。2.3.2
LED显示与按键识别实验
二、题目1、
8个LED按流水方式显示,即LED1亮,其他LED灭;然后LED2亮,其他LED灭;以此类推。重复进行以上操作。2、
当LED2、LED4、LED6、LED8亮时,蜂鸣器响;否则蜂鸣器不响。3、
检测KEY1按键,如果KEY1按下,当前LED、蜂鸣器操作状态保持不变;否则,继续执行1、2控制策略。2.3.2
LED显示与按键识别实验
三、接口电路1、按键识别电路(1)、Key1为按键;(2)、R18电阻(3)、P0.20为嵌入式处理器LPC2290P0口的20引脚(4)、工作原理:Key1键处于按下状态,P0.20引脚为低电平;Key1键处于释放状态,P0.20引脚为高电平.编写程序测试P0.20引脚为低电平或高电平从而确认KEY1键是按下或未按下。2.3.2
LED显示与按键识别实验
三、接口电路1、按键识别电路(1)、LED1、LED2、。。。、LED8为发光二极管;(2)、R89、R90、R91、R92、R93、R94、R95、R96为电阻(3)、P2.16、。。。P2.23为嵌入式处理器LPC2290P2口的引脚(4)、工作原理:8路发光二极管控制电路。以LED1发光二极管控制电路为例,说明发光二极管控制原理:P2.16引脚高电平,LED1灭;P2.16引脚低电平,LED1亮;编写程序,控制P2.16引脚为高低电平,从而可控制LED1灭或亮。2.3.2
LED显示与按键识别实验
四、Key1编程1、配置P0.20引脚为GPIO功能
将PINSEL1的位[9:8]配置00,P0.20引脚即为GPIO功能配置语句:
PINSEL1&=(~(3<<8));
2、配置P0.20引脚为GPIO输入
将IO0DIR的位20配置为0,P0.20引脚即为GPIO输入功能配置语句:IO0DIR&=~(1<<20);
3、KEY1按键识别原理
IO0PIN寄存器位20=0P0.20引脚为低电平;
IO0PIN寄存器位20=1P0.20引脚为高电平;编写程序,判断IO0PIN位20为0或1来判断KEY1按键是否按下2.3.2
LED显示与按键识别实验
五、LED编程1、配置P2.16、。。。、P2.23引脚为GPIO输出
将IO2DIR的[23:16]配置为1,P2.16、。。。、P2.23引脚即为GPIO输出功能配置语句:IO2DIR&=0xFF<<16;
2、控制LED(1)、仅控制LED1配置IO2SET的位[16]=1P2.16引脚为高电平,LED1灭,控制数据为0xFF01FFFF配置
IO2CLR的位[16]=1P2.16引脚为低电平,LED1亮,控制数据为0xFF01FFFFLED2、。。。、LED8控制原理与LED1相同,控制数据分别为0xFF02FFFF、0xFF04FFFF、
0xFF08FFFF、
0xFF10FFFF、
0xFF20FFFF、
0xFF40FFFF、
0xFF80FFFF(2)编写程序,使LED1、。。。、LED8按照控制策略显示。2.3.2
LED显示与按键识别实验
六、编程1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE2.3.2
LED显示与按键识别实验
六、编程1、创建工程:在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImageForMagicARM2200(B)为工程起一个名字:Exp2302(C)配置工程存储路径:G:\Exp2302(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径2.3.2
LED显示与按键识别实验
六、编程工程管理窗口文件选项卡链接顺序选项卡生成目标2.3.2
LED显示与按键识别实验
六、编程工程管理存储路径内容数据目录工程文件输出文件存储路径2.3.2
LED显示与按键识别实验
六、编程2、打开源程序编辑窗口(1)、在工程管理窗口中,展开User目录;(2)、双击文件main.c,打开源程序main.c编程窗口,如下图2.3.2
LED显示与按键识别实验
六、编程3、录入源程序在源程序编辑窗口中,录入程序代码,然后执行File|Save菜单命令,保存源程序。2.3.2
LED显示与按键识别实验
六、编程4、编译、改错单击按钮,编译程序,如有错误,根据错误提示信息,修改程序。然后重复执行编译、改错操作,直至编译通过,生成输出文件如下图:编译main.c生成的输出文件2.3.2
LED显示与按键识别实验
六、编程5、链接程序单击按钮,链接程序,生成的可执行镜像文件如下图:镜像文件2.3.2
LED显示与按键识别实验
六、编程1、启动调试器、调入要调试的镜像文件单击按钮,启动调试器AxDDebugger、调入要调试的镜像文件Exp2301.axf,如下图:2.3.2
LED显示与按键识别实验
六、编程2、调用变量窗口、存储窗口(1)单击按钮,进入用户程序调试窗口(2)执行菜单ProcessorViews|Variables菜单命令,打开变量窗口,如下图:(3)执行菜单ProcessorViews|Memory菜单命令,打开存储器窗口,如下图:2.3.2
LED显示与按键识别实验
六、编程3、调试(1)、KEY1按键识别鼠标移动到行号29前的空白处,双击鼠标,删除断点鼠标移动到行号18前的空白处,双击鼠标,设置断点,记录为断点1单击按钮,执行程序,程序停在断点1;单击按钮,执行x=IO0PIN语句在Variable窗口,鼠标移动到变量x值处,右击鼠标,执行Format|Binary菜单命令。键KEY1未按下,查看变量X位20的值,X[20]=0按下KEY1单击按钮,执行程序,程序停在断点1;单击按钮,执行x=IO0PIN语句在Variable窗口,鼠标移动到变量x值处,右击鼠标,执行Format|Binary菜单命令。键KEY1按下,查看变量X位20的值,如果X[20]=1,正确;否则,错误,错误检查次序为:P0.20初始化KEY1电路如果以上都正确,KEY1损坏。2.3.2
LED显示与按键识别实验
六、编程3、调试(2)、调试LED鼠标移动到行号18前的空白处,双击鼠标,删除断点鼠标移动到行号41前的空白处,双击鼠标,设置断点,记录为断点2单击按钮,执行程序,程序停在断点1处,如果有一个LED亮,依据DISP_TAB[nStep]查看显示数据,判别显示数据是否对应亮LED,如果不对应,修改显示数据。如果没有一个LED亮,依据以下顺序排除错误:依据DISP_TAB[nStep]查看显示数据,如果错,修改显示数据查看P2.16、。。。、P2.23初始化,如有错,修改错误查看电路,如果电路没有问题,LED相应电路损坏(3)、运行程序删除所有断点单击按钮,执行程序。按照要求操作,观察程序运行效果.2.3.2
LED显示与按键识别实验
六、编程3、调试控制蜂鸣器(2)、配置蜂鸣器控制数据执行ProcessorViews|Memory菜单命令,打开存储器窗口在StartAddress栏输入0x40003100,回车确认双击存储单元0x40003100,录入0x03,回车确认,如下图:2.3.2
LED显示与按键识别实验
六、编程3、调试控制蜂鸣器(3)、调试点击按钮,程序停在断点2处。如果蜂蜜器响,正确;如果蜂鸣器不响。检查P0.7初始化、蜂鸣器电路。点击按钮,程序停在断点1处。蜂蜜器不响。去掉断点1、断点2,运行程序。4、思考题设计调试项,按照设计思路调试2.4.1外部中断一、目的(1)掌握蜂鸣器的工作原理。(2)掌握蜂鸣器接口电路的设计方法。(3)掌握蜂鸣器编程方法。2.4.1外部中断二、题目1、内容编写程序,实现以下功能:如果按键以前蜂鸣器响,则按键后,蜂鸣器不响;如果按键以前蜂鸣器不响,则按键后,蜂鸣器响。2、
编程要求采用外部中断技术识别KEY1按键。2.4.1外部中断三、接口电路(1)、Key1为按键;(2)、R18电阻(3)、P0.20为嵌入式处理器LPC2290P0口的20引脚(4)、工作原理:Key1键处于按下状态,P0.20引脚为低电平;Key1键处于释放状态,P0.20引脚为高电平.(5)按键操作:按KEY键,在P0.20引脚输入信号为可通过P0.20高电平向电平跳变作为按键识别方法。编写程序采用中断方式识别KEY1按键操作。2.4.1外部中断四、Key1编程1、配置P0.20引脚为GPIO功能
将PINSEL1的位[9:8]配置11,P0.20引脚为EINT3功能配置语句:
PINSEL1&=3<<8;
2、配置EINT3中断类型为IRQ方式EINT3中断编号为17,只要配置VICIntSelect位17为0即可,配置语句:VICIntSelect=VICIntSelect&(~(1<<17));3、配置中断向量配置中断识别,即设置VICVectCntl0位5为1;配置中断识别号(即中断编号),即设置VICVectCntl0位[4:0]为17配置VICVectAddr0中断服务程序首地址配置语句:VICVectCntl0=0x20|17; VICVectAddr0=(int)IRQ_Eint3; 2.4.1外部中断四、Key1编程4、配置中断触发模式EXTINT=1<<3;//清除EINT3中断标志EXTMODE=1<<3;//设置EINT3中断为边沿触发模式
EXTPOLAR=0x00;//设置EINT3中断为下降沿触发5、配置EINT3开中断
配置VICIntEnable位17=1,使EINT3开中断配置语句:VICIntEnable=1<<17;6、中断服务程序void__irqIRQ_Eint3(void){
中断处理EXTINT=1<<3; //清除EINT3中断标志
VICVectAddr=0;}2.4.1外部中断五、编程1、启动IDE在WindowsXP系统窗口,执行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜单命令,打开IDE2.4.1外部中断五、编程1、创建工程:在IDE窗口中,执行File|New菜单命令,打开New窗口(A)选择工程模板:ARMExecutableImageForMagicARM2200(B)为工程起一个名字:Exp2401(C)配置工程存储路径:G:\Exp2401(D)击【确定】按钮,完成工程创建工程模板工程名工程存储路径2.4.1外部中断五、编程工程管理窗口文件选项卡链接顺序选项卡生成目标2.4.1外部中断五、编程工程管理存储路径内容数据目录工程文件输出文件存储路径2.4.1外部中断五、编程2、打开源程序编辑窗口(1)、在工程管理窗口中,展开User目录;(2)、双击文件main.c,打开源程序main.c编程窗口,如下图2.4.1外部中断五、编程3、录入源程序在源程序编辑窗口中,录入程序代码,然后执行File|Save菜单命令,保存源程序。2.4.1外部中断五、编程4、编译、改错单击按钮,编译程序,如有错误,根据错误提示信息,修改程序。然后重复执行编译、改错操作,直至编译通过,生成输出文件如下图:编译main.c生成的输出文件2.4.1外部中断五、编程5、链接程序单击按钮,链接程序,生成的可执行镜像文件如下图:镜像文件2.4.1外部中断六、编程1、启动调试器、调入要调试的镜像文件单击按钮,启动调试器AxDDebugger、调入要调试的镜像文件Exp2301.axf,如下图:2.4.1外部中断六、编程2、调用变量窗口(1)单击按钮,进入用户程序调试窗口(2)执行菜单ProcessorViews|Variables菜单命令,打开变量窗口,如下图:2.4.1外部中断六、编程3、调试是否可调用中断(1)、调试前准备将鼠标移动到行号44前的空白处,双击鼠标,去掉断点将鼠标移动到行号33前的空白处,双击鼠标,设置断点,记录为断点1将鼠标移动到行号36前的空白处,双击鼠标,设置断点,记录为断点2点击按钮,执行程序2.4.1外部中断六、编程3、调试是否可调用中断(2)、按KEY1键,进入中断服务程序按下KEY1键如果进入中断服务程序,则调试完毕;否则,俺下边检查顺序检查:调试KEY1按键是否损坏检查初始化(P0.20、中断初始化、中断服务程序定义)2.4.1外部中断六、编程3、调试是否可调用中断(3)、测试去掉所有断点点击按钮,运行程序。观察蜂鸣器蜂鸣效果2.4.2
定时器实验
一、目的(1)了解定时器的组成与工作原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
 - 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
 - 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
 - 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
 - 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
 - 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
 - 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
 
最新文档
- 2025年中考历史试卷及答案河南
 - 2025年棉花出口业务合作合同协议
 - 2025年肺结核医院考试题及答案
 - 2025年小学探索宇宙试卷及答案
 - 2025年物理试卷常见题型及答案
 - 公路工程技术试题及答案
 - 后期剪辑师基本考试题及答案
 - 新疆糖料甜菜种植与种植户利益保障协议
 - 研学助教试题带答案
 - 2025计算机行政面试题及答案
 - 初中生人际交往能力培养班会课件
 - 《劳动教育》 课件 专题三 树立劳动精神 第一节 积淀劳动精神
 - 并网光伏发电系统的建模和仿真实现
 - 八年级上册物理第五章透镜作图题
 - 空调水系统施工方案
 - GB/T 17350-2024专用汽车和专用挂车分类、名称及型号编制方法
 - 测绘类专业大学生职业生涯发展
 - 2024年03月福建中国工商银行福建分行春季校园招考笔试历年参考题库附带答案详解
 - 青岛市及下辖各区市经济财政实力与债务研究(2024) -新世纪
 - iso28000-2022供应链安全管理手册程序文件表单一整套
 - 奥尔夫音乐教育知到智慧树章节测试课后答案2024年秋白城师范学院
 
            
评论
0/150
提交评论