当前位置:公文范文网>应用材料 > 研究实验 >

意见建议

嵌入式系统gpio实验报告范文(通用4篇)

发布: 2022-05-27 08:40:19   阅读: 次 【   

嵌入是一个生物学术语,意为放线菌素、氨基吖啶等分子插入并结合到DNA链中相邻的碱基对之间, 以下是为大家整理的关于嵌入式系统gpio实验报告4篇 , 供大家参考选择。

嵌入式系统gpio实验报告4篇

【篇1】嵌入式系统gpio实验报告

实验一 系统认识实验

一、实验目的

学习Dais软件的操作,熟悉程序编写的操作步骤及调试方法。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

三、实验内容

编写程序,将80h~8Fh共16 个数写入单片机内部RAM 的30h~3Fh空间。

四、实验步骤

1.运行Dais软件,进入集成开发环境,软件弹出设置通信端口对话框(如图2-1-1),请确保实验装置与PC正确连接,并已打开实验装置电源,使其进入在待命状态。这里选择与实验装置实际相连的通信端口,并单击“确定”。如通信正确则进入Dais软件主界面,否则弹出“通信出错”的信息框(如图2-1-2),请检查后重试。

 

图2-1-1 设置通信端口对话框            图2-1-2 通信错误信息框

2.通信成功后,单击菜单栏“设置”→“仿真模式”项打开对话框,选择需要设置型号、程序/数据空间。这里我们将型号设置为“MCS-51实验系统”,外部数据区设置为“系统RAM”,用户程序区设置为“片外(EA=0)”,如图2-1-3所示,最后单击“确定”按钮保存设置。

图2-1-3 设置工作方式对话框

3.工作方式设置完毕后,单击菜单栏“文件”→“新建”项或按Ctrl+N组合键(建议单击工具栏“”按钮)来新建一个文件,软件会出现一个空白的文件编辑窗口。

4.在新窗口中输入程序代码(A51\2_1.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R1,#30H ;片内RAM首地址

MOV A,#80H ;写入数据初值

MOV R7,#16 ;循环变量

LOOP1: MOV @R1,A ;写数据到片内RAM

INC R1 ;地址增量

INC A ;数据+1

DJNZ R7,LOOP1 ;循环变量-1,不为0继续

SJMP $ ;结束

END

5.单击菜单栏“文件”→“保存”项(建议单击工具栏“”按钮)保存文件。若是新建的文件尚未命名,系统会弹出文件保存对话框(如图2-1-4),提示用户选择文件保存的路径和文件名,再单击“保存”按钮。

word/media/image6.gif

图2-1-4 文件保存对话框

6.单击菜单栏“编译”→“文件编译、链接、装载”项或按Ctrl+F9组合键(建议单击工具栏“”按钮),对当前文件进行编译和链接,若程序无语法错误,则开始自动装载,装载完毕提示如图2-1-5所示的信息框。

图2-1-5 编译信息框

7.当编译无误且下载成功后,即进入调试状态,当前PC行高亮突出显示,源程序窗口左侧显示小圆点以标识可执行语句行,如图2-1-6所示。

图2-1-6 进入调试状态的主界面

8.单击菜单栏“视图”→“存储空间”→“CPU内部存储区”项打开内存窗口,如图2-1-7。

图2-1-7 初始时的CPU内部存储区数据显示

9.单击菜单栏“调试”→“单步运行”项或按F7快捷键(建议单击工具栏“”按钮),单步运行程序,观察寄存器和内存单元的数据变化;

10.也可单击菜单栏“调试”→“连续运行”项或按F9快捷键(建议单击工具栏“”按钮),开始全速运行。

11.在全速运行后,须暂停运行以便在待命状态查看运行结果,暂停可单击菜单栏“调试”→“暂停”项或按Esc快捷键(建议单击工具栏“”按钮)。

12.再观察CPU内部存储区单元,验证程序运行结果(如图2-1-8所示)。

图2-1-8 程序运行后的CPU内部存储区数据显示

13.除了用程序修改内存单元,可以在Dais软件直接修改。用鼠标单击某个内存单元后,按键盘的0~9或A~F,直接写入数据以覆盖该内存单元原有数据。如图2-1-9所示。

图2-1-9 修改后的内存单元数据显示

14.除了单步或全速运行,还可以使用断点手段来调试程序。单击菜单栏“调试”→“复位”项或按Ctrl+F2组合键(建议单击工具栏“”按钮)进行复位,以便重新运行程序。

15.单击源程序编辑窗口左侧的行号即可快速设置断点,断点行为红色高亮显示(如图2-1-10),若要删除该断点只需再次单击断点行的行号即可清除断点。

图2-1-10 设置断点后的源程序窗口

16.设置断点后,单击菜单栏“调试”→“连续运行”项或按F9快捷键(建议单击工具栏“”按钮),使用全速运行方式,待程序运行到断点行时自动停下(如图2-1-11)。

图2-1-11 全速运行后遇断点暂停的源程序窗口

五、操作练习

修改程序,将CPU内部存储区30h~3Fh单元的16个数据复制到40h~4F单元,通过单步、断点等调试手段验证程序功能,查看40h~4Fh单元的数据是否传送正确。

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R1,#30H

MOV R0,#40H ;片内RAM首地址

MOV A,#80H ;写入数据初值

MOV R7,#16 ;循环变量

LOOP1: MOV A,@R1

MOV @R0,A

INC R1

INC R0 ;地址增量

DJNZ R7,LOOP1 ;循环变量-1,不为0继续

SJMP $ ;结束

END

六、实验心得

通过第一次的上机实验,我初步接触到了Dais软件,并对其有了一定的熟悉,能顺利完成程序的单步运行,连续运行,设置断点,查看存储器等操作,并掌握了该软件程序编写的操作步骤及调试方法,这对我接下来的实验很有帮助。

实验二 数码转换实验

一、实验目的

掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

1.BCD整数转换为二进制整数

将BCD 码整数0~255存入片内RAM的20h、21h、22h中,然后转换为二进制整数00h~FFh,保存到寄存器R4中。

参考程序(A51\2_2_1.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0,#20H ;BCD存放高位地址

MOV R7,#3 ;BCD码0~255,最多3位

CLR A

MOV R4,A

LP1: MOV A,R4

MOV B,#10

MUL AB ;乘10

ADD A,@R0 ;加下一位的值

INC R0 ;指向下一单元

MOV R4,A ;结果存入R4

DJNZ R7,LP1 ;转换未结束则继续

SJMP MAIN ;设置断点,观察实验结果R4中的内容

END

实验步骤:

1)编写程序,经编译、链接无误后装载到实验系统;

2)修改CPU内部存储器20h、21h、22h单元的内容,如:00h,05h,08h;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看寄存器R4的内容,应为3Ah;

5)重新修改20h、21h、22h单元的内容,再次运行程序,验证程序的正确性。

2.二进制整数转换为十进制整数

将16位二进制整数存入R3、R4寄存器中,转换为十进制整数,以组合BCD形式存储在CPU内部RAM的20h、21h、22h单元中。

参考程序(A51\2_2_2.ASM):

word/media/image19.gif ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0,#22H ;转换结果低位地址

MOV A,R0

PUSH ACC ;A累加器压栈

MOV R7,#3

CLR A

LP1: MOV @R0,A ;结果存储地址清零

DEC R0

DJNZ R7,LP1

POP ACC

MOV R0,A

MOV R7,#16

LP2: PUSH ACC

CLR C

MOV A,R4 ;R4中为二进制数的低位

RLC A

MOV R4,A

MOV A,R3 ;R3中为二进制数的高位

RLC A

MOV R3,A

MOV B,#3

LP3: MOV A,@R0

ADDC A,@R0 ;执行乘2操作

DA A ;十进制调整

MOV @R0,A ;结果保存

DEC R0

DJNZ B,LP3

POP ACC ;A累加器出栈

MOV R0,A

DJNZ R7,LP2

SJMP MAIN ;设置断点观察结果, 可进行下一次转换

END

实验步骤:

1)编写程序,程序流程图如图2-2-1所示,经编译、链接无误后装载到实验系统;

2)修改R3、R4寄存器,例如分别为A2h、FCh;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看CPU内部存储器20h的内容,应为:04h、17h、24h;

5)反复修改R3、R4寄存器的值,验证程序的正确性。

四、实验心得

在这次实验中,我通过运行既定程序后对程序经行了分析,掌握了将BCD整数转换为二进制整数和二进制整数转换为十进制整数的程序设计方法,对数制的转换有了一个更深刻的认识,并自己编程实现了二进制数和BCD整数的转换,受益匪浅。

实验三 运算程序设计实验

一、实验目的

了解运算类指令以及运算类程序的设计方法。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

1.多字节加法程序

多字节十进制加法程序,被加数存放于20h起始的RAM空间,加数存放于28h起始的RAM空间,将两数相加,结果存放于20h起始的RAM空间。

word/media/image20.gif参考程序(A51\2_3_1.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H ;执行程序前先修改R7的值

MAIN: MOV R0,#20H ;被加数起始地址

MOV R1,#28H ;加数起始地址

CLR C

LP1: MOV A,@R0

ADDC A,@R1 ;带进位加法运算

DA A ;十进制调整

MOV @R0,A ;保存运算结果

INC R0 ;指向下一单元

INC R1

DJNZ R7,LP1

CLR A

MOV ACC.0,C

MOV @R0,A ;最高位有进位时此地址中为1

NOP ;设置断点查看运算结果

SJMP MAIN ;若需继续运算, 改变加数, 被加数及R7

END

实验步骤:

1)编写程序,程序流程图如图2-3-1所示,经编译、链接无误后装载到实验系统;

2)为被加数及加数赋值:修改内存单元20h为1234h、28h为1111h,寄存器R7为02h;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看内存单元20h起始的内容,应为:2345h;

5)反复修改被加数、加数及字节数R7的值,验证程序的正确性。

2.双字节无符号数乘法

利用单字节乘法指令来扩展成多字节乘法运算,扩展时以字节为单位进行乘法运算。被乘数在R2、R3中,乘数在R4、R5中,乘积保存R0指向的20h~23h内存单元。运算法则见图2-3-2。

word/media/image21.gif

图2-3-2 乘法运算法则

参考程序(A51\2_3_2.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0,#23H ;运算结果低位地址

MOV A,R0

PUSH ACC

CLR A

MOV R7,#4

LP1: MOV @R0,A ;运算结果存储单元清零

DEC R0

DJNZ R7,LP1

POP ACC

MOV R0,A

MOV A,R3

MOV B,R5

MUL AB ;计算R3*R5

MOV @R0,A ;计算的低8位保存

MOV A,B

DEC R0

MOV @R0,A ;保存运算的高8位

MOV A,R2

MOV B,R5

MUL AB ;计算R2*R5

ADD A,@R0 ;此次运算低8位+R3*R5运算的高8位

MOV @R0,A

DEC R0

MOV A,B

ADDC A,#00H ;R2*R5的高8位加进位位

MOV @R0,A

INC R0

MOV A,R3

MOV B,R4

MUL AB ;计算R3*R4

ADD A,@R0

MOV @R0,A

MOV A,B

DEC R0

ADDC A,@R0

MOV @R0,A

DEC R0

CLR A

ADDC A,#00H

MOV A,@R0

MOV A,R2

MOV B,R4

MUL AB ;计算R2*R4

INC R0

ADD A,@R0

MOV @R0,A

MOV A,B

DEC R0

ADDC A,@R0

MOV @R0,A

NOP ;设置断点查看运算结果

SJMP MAIN ;如需进行下一次运算, 可修改R2 R3,R4 R5的值

END

实验步骤:

1)编写程序,经编译、链接无误后装载到实验系统;

2)设置被乘数R2, R3为03h, 50h、乘数R4, R5为04h, 60h;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看内存单元20h起始的内容,应为:00h、0Eh、7Eh、00h;

5)反复修改被乘数、乘数的值,验证程序的正确性。

3.双字节除法

MCS-51指令系统中仅有单字节除法指令,若要扩展为双字节除法,可以采用“移位相减”的算法来实现。本例程的被除数在R7、R6中,除数在R5、R4中,将商存入R7、R6中,余数存入R3、R2中。程序流程图如图3-3-3所示。

参考程序(A51\2_3_3.ASM):

ORG 0000H

word/media/image22.gif LJMP MAIN

ORG 0100H

MAIN: MOV A,R4 ;执行程序前为R7R6(被除数),

;R5R4(除数)赋值

JNZ DDIV0 ;除数不为0,转DDIV0

MOV A,R5

JZ ERROR ;除数为0,转ERROR

DDIV0: MOV R2,#00H ;余数寄存器清零

MOV R3,#00H

MOV R1,#16 ;循环次数为16

DDIV1: CLR C;R3 R2 R7 R6左移1位

MOV A,R6

RLC A

MOV R6,A

MOV A,R7

RLC A

MOV R7,A

MOV A,R2

RLC A

MOV R2,A

MOV A,R3

RLC A

MOV R3,A

MOV A,R2 ;部分余数减除数

SUBB A,R4 ;低8位相减

JC DDIV2 ;不够减, 转DDIV2

MOV R0,A ;暂存相减结果

MOV A,R3

SUBB A,R5 ;高8位相减

JC DDIV2 ;不够减, 转DDIV2

INC R6 ;够减, 则商为1

MOV R3,A ;相减结果送R3 R2中

MOV A,R0

MOV R2,A

DDIV2: DJNZ R1,DDIV1 ;16位未除完则继续

CLR F0 ;除数合法标志

SJMP MAIN ;设置断点观察结果, 可继续下一轮运算

ERROR: SETB F0 ;除数非法标志

SJMP MAIN ;设置断点观察结果, 可继续下一轮运算

END

实验步骤:

1)编写程序,程序流程图如图2-3-3所示,经编译、链接无误后装载到实验系统;

2)设置被除数R7, R6为46h,EEh、除数R5, R4为23h, 67h;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看寄存器R7, R6(商)与R3, R2(余数),应分别为00h,02h与00h、20h;

5)反复修改被除数、除数的值,验证程序的正确性。

四、实验心得

在这次实验中,我顺利运行了多字节的加法、双字节无符号乘法和双字节除法程序并得到了预期的结果,通过对程序进行分析,我对多字节数的运算在单片机内实现有了一个更深刻的认识,提高了对程序的分析理解能力。

实验四 查表程序设计实验

一、实验目的

学习查表程序的设计方法,熟悉MCS-51指令系统。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

1.采用查表的方法将16进制数转换为ASCII码

根据ASCII码表可知,0~9的ASCII码为30h~39h,A~F的ASCII码为41h~46h,算法为(假定待转换的数存放在R7中):

当 R7≤9时,相应的ASCII码为:R7+30h;

当 R7>9时,相应的ASCII码为:R7+30h+07h。

参考程序(A51\2_4_1.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV DPTR,#ASCII ;表格首地址送DPTR

MOV A,R7 ;R7中为待转换的数

ANL A,#0FH ;取低4位

MOVC A,@A+DPTR ;查表

MOV R5,A ;低4位转换结果送R1

MOV A,R7

ANL A,#0F0H ;取待转换数的高4位

SWAP A ;高4位与低4位交换

MOVC A,@A+DPTR ;查表

MOV R6,A ;高4位转换结果送R2

SJMP MAIN ;设置断点观察结果

ASCII: DB "0123456789ABCDEF"

END

实验步骤:

1)编写程序,经编译、链接无误后装载到实验系统;

2)设置待转换数据R7为8Ah;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看寄存器R6, R5的值,R6中为高4位转换结果38h,R5中为低4位转换结果41h;

5)反复修改R7的值,验证程序的正确性。

2.通过查表实现y=x2

x为0~9的十进制数,存放于寄存器R7,以BCD 码的形式保存,结果y以BCD码的形式存放于寄存器R6。

参考程序(A51\2_4_2.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV DPTR,#SQR ;取表格首地址

MOV A,R7 ;要计算的值

MOVC A,@A+DPTR ;查表

MOV R6,A ;结果保存

SJMP MAIN

SQR: DB 00H,01H,04H,09H,16H ;平方表

DB 25H,36H,49H,64H,81H

END

实验步骤:

1)编写程序,经编译、链接无误后装载到实验系统;

2)设置R7的值,如R7=09h;

3)在SJMPMAIN语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看寄存器R6的值,应为81h;

5)反复修改R7的值,验证程序的正确性。

四、实验心得

通过这次实验,我对查表程序的设计方法有了一个更加深刻的理解:查表程序常用于数据的补偿、修正、计算、转换等场合,具有程序简单、执行速度快等特点。同时,通过对查表指令“Movc A,@A+DPTR”和“Movc A,@A+PC”的运用,我对它们区别也有了体会:指令“MOVC A,@A+DPTR”完成把A中的内容作为一个无符号数与DPTR中的内容相加,所得结果为某一程序存储单元的地址,然后把该地址单元中的内容送到累加器A中。指令“MOVC A,@A+PC”以PC作为基址寄存器,PC的内容和A的内容作为无符号数,相加后所得的数作为某一程序存储单元的地址,然后把该地址单元中的内容送到累加器A中。

实验五 数据排序实验

一、实验目的

熟悉MCS-51指令系统,掌握数据排序程序的设计方法。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

三、实验内容及步骤

在单片机片内RAM的30h~3Fh写入16个数,编写实验程序,将这16个数按照由小到大的顺序排列。

参考程序(A51\2_5.ASM):

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0,#30H ;数据起始地址

MOV R7,#16 ;排序数据个数

LP1: MOV A,R7

MOV R6,A

MOV A,R0

MOV R1,A

INC R1

LP2: MOV A,@R0 ;取出一个数据

CLR C

SUBB A,@R1 ;与第二个数进行比较

JC LP3 ;R0中的数小于R1中的数则跳转

MOV A,@R0 ;R0中的数大于R1中的数, 交换数据

XCH A,@R1

MOV @R0,A

LP3: INC R1

DJNZ R6,LP2

INC R0

DJNZ R7,LP1

SJMP $

END

word/media/image23.gif

实验步骤:

1)编写程序,经编译、链接无误后装载到实验系统;

2)待排序的数据存放于片内RAM的30h~3Fh单元,可在存储器窗口直接输入;

3)在SJMP $语句行设置断点,然后运行程序;

4)程序遇到断点后暂停,此时查看片内RAM的30h~3Fh单元数据,应从小到大排列;

5)继续向片内RAM的30h~3Fh单元填入数据,重新运行程序,验证程序的正确性。

四、实验感想

在这次实验中,我顺利完成了实验的验证,实验的程序是通过冒泡法进行数据的排序,实验原理简单,程序也不复杂,程序使用条件转移指令实现了程序的循环,加深了我对条件转移指令的理解。

实验六 位操作实验

一、实验目的

掌握位指令的使用,学习位程序的设计方法。

二、实验设备

PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。

【篇2】嵌入式系统gpio实验报告

嵌入式实验

姓名:刘亚男

学号:1043031503

班级:自动化34班

任课老师:刘宜成老师


一、实验基本信息

(一)实验地点

高压楼304嵌入式实验实验室

(二)实验名称与介绍

1.实验名称:嵌入式实验

2.介绍:本次实验过程中包括几个小实验,内容在后面将具体说明。

二、实验基本内容

(一)实验一 汇编指令实验1

1.实验目的

1)熟悉ADS1.2 软件开发环境。

2)掌握ARM920T 汇编指令的用法,并能编写简单的汇编程序。

3)掌握指令的条件执行和使用LDR/STR 指令完成存储器的访问。

2.实验内容

1)使用LDR 指令读取0x30003100 上的数据,将数据加1,若结果小于10,则使用。

2)STR 指令把结果写回原地址,若结果大于等于10,则把0 写回原地址。

3)使用ADS1.2 软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1 的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。

3.预备知识

1)ARM 指令系统内容;

2)ADS1.2 工程编辑和AXD 调试的内容。

4.实验设备

硬件:PC 机一台。

软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境。

5.实验步骤

1)启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm1.mcp。

2)建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。

3)设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置options

4)中的调试口地址Image entry point 为0x30000000。

5)编译连接工程,选择Project|Debug,启动AXD 进行软件仿真调试。

6)打开寄存器窗口(Processor Registers),选择Current 项监视R0,R1 的值。打开存储器观察窗口(Memory),设置观察地址为0x30003100,显示方式Size 为32Bit,监视0x30003100 地址上的值。说明:在Memory 窗口中点击鼠标右键,Size 项中选择显示格式为8bit,16bit,32bit。

6.实验程序

COUNT EQU 0x30003100

AREA Example1,CODE,READONLY

ENTRY

CODE32

START LDR R1,=COUNT

MOV R0,#0

STR R0,[R1]

LOOP LDR R1,=COUNT

LDR R0,[R1]

ADD R0,R0,#1

CMP R0,#10

MOVHS R0,#0

STR R0,[R1]

B LOOP

END

(二)实验二 汇编指令实验2

1.实验目的

1)掌握ARM 乘法指令的使用方法。

2)了解子程序编写及调用。

2.实验内容

使用 STMFD/LDMFD,MUL 指令编写一个整数乘方的子程序,然后使用BL 指令调用子程序计算X n 的值。

3.预备知识

1)ARM 指令系统内容。

2)ADS1.2 工程编辑和AXD 调试的内容。

4.实验设备

硬件:PC 机一台。

软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境。

5.实验原理

X n= X*X*X …… *X,其中相乘的X 的个数为n 个。先将X 的值装入R0 和R1,使用

寄存器R2 进行计数,循环n-1 次R0=R0*R1,运算结果就保存在R0 中。(不考虑溢出问题)

注意:若n=0,则运算结果直接赋1;若n=1,则运算结果直接赋X。

6.实验步骤

1)启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm2.mcp。

2)建立汇编源文件arm2.s,编写实验程序,然后添加到工程中。

3)设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置调试口

4)地址Image entry point 为0x30000000。

5)编译连接工程,选择Project|Debug,启动AXD 进行软件仿真调试。

6)打开寄存器窗口(Processor Registers),选择Current 项监视寄存器R0,R1,R13

7)(SP)和R14(LR)的值。

8)打开存储器观察窗口(Memory),设置观察地址为0x30003EA0,显示方式Size 为

9)32Bit,监视从0x30003F00 起始的满递减堆栈区。

10)单步运行程序,跟踪程序执行的流程,观察寄存器值的变化和堆栈区的数据变化,

11)判断执行结果是否正确。

12)调试程序时,更改参数X 和n 来测试程序,观察是否得到正确的结果。例如:先

13)复位程序,接着单步执行到“BL POW”指令,在寄存器窗口中将R0,R1 的值进行修改,

14)然后继续运行程序。

7.实验程序

X EQU 9

n EQU 8

AREA Example3,CODE,READONLY

ENTRY

CODE32

START LDR SP,=0x30003F00

LDR R0,=X

LDR R1,=n

BL POW

HALT B HALT

POW STMFD SP!,{R1-R12,LR}

MOVS R2,R1

MOVEQ R0,#1

BEQ POW_END

MOV R1,R0

SUB R2,R2,#1

POW_L1 BL DO_MUL

SUBS R2,R2,#1

BNE POW_L1

POW_END LDMFD SP!,{R1-R12,PC}

DO_MUL MUL R0,R1,R0

MOV PC,LR

END

(三)实验三 C语音程序实验1

1.实验目的

通过实验了解使用 ADS1.2 编写C 语言程序,并进行调试。

2.实验内容

编写一个汇编程序文件和一个 C 程序文件,汇编程序的功能是初始化堆栈指针和初始

化C 程序的运行环境,然后跳转到C 程序运行,这就是一个简单的启动程序.C 程序使用加法

运算来计算1+2+3+…+(N-1)+N 的值(N>0)。

3.预备知识

1)ARM 指令系统内容。

2)ADS1.2 工程编辑和AXD 调试的内容。

4.实验设备

硬件:PC 机一台。

软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境。

5.实验步骤

1)启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程c1.mcp。

2)建立汇编源文件Startup.s 和c1.c,编写实验程序,然后添加到工程中。

3)设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置调试口

4)地址Image entry point 为0x30000000。

5)设置位于开始位置的起始代码段,如图3.1 所示。

6)编译连接工程,选择Project|Debug,启动AXD 进行软件仿真调试。

7)在Startup.s 的”B Main”处设置断点, 然后全速运行程序。

8)程序在断点处停止,单步运行程序,判断程序是否跳转到C 程序中运行。

9)选择Processor Views | Variables 打开变量观察窗口,观察全局变量的值,单步/全速运

10)行程序,判断程序的运算结果是否正确。

6.实验程序

程序清单(一) C 语言实验参考程序

#define uint8 unsigned char

#define uint32 unsigned int

#define N 100

uint32 sum;

void Main(void)

{uint32 i;

sum=0;

for(i=0;i

【篇3】嵌入式系统gpio实验报告

嵌入式实验报告


实验一 电源、复位、时钟管理单元

(一)实验目的

1.了解如何配置不同的时钟。

2.如何使用MRCC的功能而读取芯片上不用的时钟的当前状态和频率。

3.如何处理外部4MHZ的石英振荡器损坏情况的检测。

(二)实验原理

STR750的时钟输入源共有5个,这些时钟源为MCU系统提供时钟,从而得到HCLK和PCLK。

1.内部自由运行的振荡器可以提供1~10MHZ的时钟,他们作为应急时钟。它由配置在自由云子那种模式下的PLL组成。

2.OSC4M:4MHZ主振荡器。

3.OSC32K:32.768KMZ振荡器即可以驱动系统时钟,也可以驱动RTC。

4.LPOSC:内部的提耗能RC振荡器,所提供的频率大约为300KMZ,该时钟可以驱动系统时钟,也可以驱动RTC。

5.USB_CK:可以专门为USB提供48KHZ的时钟。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_cfg.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

引脚P0.12上连接了一个灯,它会随着系统时钟不断的闪烁。如果再OSC4M上没有时钟的话该灯就会停止闪烁。

(五)心得

缺少了时钟,就好像人的脉搏不在跳动一样,可以想象时钟的作用很大,通过本次实验使我了解到STR750的时钟配置,以及相应的寄存器的使用,对于STR750的时钟分配以及产生应用有了进一步的熟悉。


实验二 通用输入/输出端口(GPIO)

(一)实验目的

1.通过实验,理解通用输入输出端口的工作过程和作用。

2.学习在软件系统的设计中输入使用输入输出的端口。

(二)实验原理

1.GPIO介绍:它是相对于芯片本身而言的,如某个引脚是芯片的GPIO脚,则该引脚可以作为输入输出高低电平使用,当然某些引脚具有复位功能,既可以用作GPIO也可以用作其他功能。

2.GPIO的工作过程

1)每个通用IO端口都有3个32为的配置寄存器、1个32位的数据寄存器和1个32位的可屏蔽寄存器。根据Datasheet中所列的通用IO端口的特殊硬件特征,通用IO端口的每一位都可以由软件单独配置成下面的几种模式:

a)输入悬空;

b)输入上拉;

c)输入下拉;

d)模拟输入;

e)输出开漏;

f)输出推免;

g)可选功能;

2)虽然每个IO端口位都可以自由编程,但是IO端口寄存器只能进行32位访问,不允许进行字节或者比特访问。

3)在刚复位之后,可选功能还处于无效状态,IO端口配置为输入悬空模式。

4)当被配置为输出时,写入到IO数据寄存器中的数据就加载到输出寄存器中。输出锁存器所有的输出的值,可以在推免模式或者开漏模式使用输出驱动。

5)在每个APB时钟周期里输入锁存器IO引脚的数据。读IO数据寄存器是读输入寄存器还是输出寄存器是由端口的配置决定。

6)在除Standby模式外的所有电源模式中,GPIO的状态是保留的,Standby模式中所有GPIO引脚为高祖状态。

(三)实验步骤

1.在IAR集成开发环境下新建一个名为GPIO的工程,然后保存。

2.向工程里添加文件:

+75x_conf.h +75x_it.c +main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c +75x_gpio.c +75x_mrcc.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序后观察到,LED1、LED2、LED3、LED4依次轮流闪烁。

(五)收获心得

通过本次实验,学习了GPIO的功能和编程过程,深刻理解了GPIO的端口的输入输出模式及端口寄存器是如何配置,同时也学习到了GPIO相关寄存器的种类和地址等工作方式,为以后的学习增加了知识储备,打下了基础。


实验三 EIC增强型中断控制器

(一)实验目的

1.通过实验,了解增强型中断控制的工作过程和作用。

2.了解EIC对多通道中断处理机制和实现方法。

3.学习使用EIC的寄存器设置流程和编程方法。

(二)实验原理

1.EIC介绍:ARM内核提供两种中断级别:FIQ主要永固快速、低反应时间的中断处理;IRQ主要用于其它的普通中断处理。STR750中断管理系统提供了两个中断管理模块;增强型中断控制器EIC和外部中断控制EXTIT。EIC实现了对多个中断通道的硬件处理、中断优先级决策并计算中断向量。

2.EIC的工作过程:

1)根据相关的通道屏蔽位接受或者拒绝响应的中断要求。

2)将所有挂起的IRA中断请求的优先级与当前的优先级比较,如果中断请求的优先级高于当前优先级,则这个IRQ请求会传给ARM7内核。如果中断请求的优先级低于当前的优先级,则根据实际情况讲中断请求挂起或者屏蔽。

3)将最高优先级的IRQ中断的地址向量加载熬中断向量寄存器中。

4)一旦ARM内核响应了一个新的IRQ中断请求,EIC就会将以前的优先级保存在硬件优先级栈中。

5)当ARM内核响应了一个新的IRQ中断请求中,用新的优先级更新当前中断优先级寄存器。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_time.c

+75x_eic.c

+75x_cfg.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序后观察到LED4、LED3和LED2分别隔一定时间闪烁,LED4频率最高,LED3次之,LED2闪烁频率最低。

(五)获得心得

通过本次实验,学习了EIC的功能和编程过程,对中断子程序的调用和返回有了更具体的理解。


实验四 EXTIT外部中断控制器

(一)实验目的

1.通过实验,学习EXTIT对外设中断请求响应和处理的工作工程。

2.学习使用EXTIT的寄存器设置流程和编程方法。

(二)实验原理

1.EXTIT介绍:外部中断控制器可以对外来自外设的中断进行响应。EXTIT包括16个用于产生中断请求的边缘检测器。每个中断都能给独自的设置触发事件也可以独立的被屏蔽。

2.EXTIT的功能描述:

1)中断请求可以通过硬件和软件两种方式,要产生硬件中断,中断线要被设置并时能,这个需要将触发器设置成需要的极性,通过将屏蔽寄存器中相应位置1使能中断请求。当选择的边沿在外部中断线上发生时,中断请求就产生,这个中断请求在挂起寄存器被设置1后复位。

2)本实验使用软件模拟产生中断,过程如下:

配置16条中短线的屏蔽位(EXTIT_MR);

置位软件中断寄存器中需要的位(EXTIT_SWIR)

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_extit.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验现象

运行程序后发现LED4灯每隔一定时间开始闪烁。

(五)收获心得

由EIC的结构原理图可以看到,EXTIT控制器的16条中短线作为EIC的一个中断源,在使用时必须要初始化和使能EIC。从此次实验中还学会了软件中断产生的方法。


实验五 TB基准时间定时器

(一)实验目的

通过实验了解TB定时器的功能和工作原理,学习TB计时器的编程应用。

(二)实验原理

1.TB介绍:TB定时器可以作为自由时钟过来产生一个标准时间,也可以使用输出捕获模式测量RTC时钟。TB定时器与PWM定时器、TIM定时器一样具有同样的结构。TB定时器主要有时钟源、触发控制器、计时器以及自动重装器组成。

2.TB的工作过程

1)主要工作工程:选择时钟,通过分频器得到一定频率的处罚时钟处罚计数器按照某种方式计数,计数完毕后自动重载初始值并产生中断。

2)计数器时钟的选择

TB可供选择的时钟包括:

CK_TIM :内部时钟;

CK_RTC :外部时钟;

选择的时钟通过一个16位的分频器进行1~65536分频后送入计数器。

3)计数器模式

计数器共有3种工作模式:

向上计算模式 向下计数模式 中心对齐模式

4)计数器初始化

在程序运行中,可以重新初始化计数器和分频器,设置方法为:修改TB_CR寄存器的CNT_RST=1。根据TB_CR寄存器的CMS位和UD位的设置,计数器复位,计数器立即开始计数。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_tb.c

+75x_cfg.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序,发现LED4、LED3、LED2三个灯以不同的频率闪烁。

(五)收获心得

通过此次实验,我学习了TB计时器的结构原理和工作流程。


实验六 看门狗定时器实验

(一)实验目的

1.通过实验,理解看门狗的工作过程和作用。

2.学习在软件系统的设计中,如何使用看门狗。

(二)实验原理

1.看门狗介绍:看门狗的作用是防止程序进入死循环。看门狗每个一段时间读取某个存储单元,若读取的不是设定值则将系统复位重置,次次编写程序时一定要经常对相应存储单元写设定值以避免看门狗复位系统,人们习惯的把这个过程称“喂狗”。程序正常运行时,“喂狗”工作也可以正常运行,一旦程序进入死循环或者系统死机,看门狗就会复位系统。

2.看门狗可以用作普通定时器,也可以作为解决处理软、硬故障的看门狗。主要具备以下功能:16位减1计数器,8位分频计数器,安全重载序列,普通定时器模式,计时器计数为零时产生中断。

1)普通定时器模式

如果软件不重置WDG_CNT寄存器的WE位,该外设就进入普通定时器模式。该模式下,当WDG_CNT寄存器的SC位被置1,WDG_VR寄存器的值就被装载到计数器中,同时计数器开始减1计数。

2)看门狗模式

如果WDG_CR寄存器的WE位被置1,则进入看门狗模式,这个模式不能被软件改变。程序运行后,计数器载入WDG_VR寄存器的值并开始减1计数,当计数器达到终值时,产生系统复位信号WDG_RESET。如果两个连续序列被写入WDG_VR,以防止进入计数器低端。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_wdg.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序后,观察到LED3点亮,过约4s后,LED3熄灭,板上所有灯都熄灭,然后LED3又点亮,可以判定,实验板进入复位状态,每次重启后点亮LED3。

(五)收获心得

通过实验,更深刻的理解了看门狗的原理和使用方法,看门狗的软件系统中广泛的被使用,用来对整个系统的监控,防止程序进入死锁或者死机状态,同时,为了防止看门狗被误操作以后错误的复位正常系统,喂狗程序应多考虑安全性和稳定性,看门狗多使用对相应寄存器连续写入。


实验七 模\数转换器(ADC)实验

(一)实验目的

1.了解模数转换器ADC的工作原理。

2.学习ADC模拟“看门狗”功能的应用,了解如何设置ADC模式和通道,进一步学习模拟“看门狗”的选择与使用。

3.学习并把握ADC在单通道模式下启动插入转换器,通过PWM定时器的TRGO信号来触发插入转换的功能也原理。

4.学习并把握主程序中配置ADC的工作参数和模拟看门狗的参数的配置。

(二)实验原理

1.模数转换器(ADC)的主要特点:


1)在最大的ADC时钟频率下转换时间有以下因素组成:采样时间、11个ADC时钟周期、转换时间、19个ADC时钟周期。

2)分辨度:10Bits。

3)单调性:好。

4)无缺失码:有保证。

5)输入为0是的读数:0000h。

6)满刻度读数:03ffh。

7)16*10位数据寄存器。

8)单通道模式或者扫描模式。

9)在定时器TIM00C2触发后开始转换。

10)链式注入模式,由定时器PWM的TRGO触发。

11)低功耗模式。

12)当4个可选的模式看门狗通道的转换值超出软件程序预先设定的门限时,则产生中断。

13)转换完成会自动产生DMA请求,可以由软件或者硬件使能DMA转换器。


2.功能描述

下面分别介绍ADC的功能特性以及配置方法

1)校准开始:为了达到目标精确度,在每次加电或者停止待命模式重启时,强制校准ADC。

2)转换开始:用户由三种方法启动编程转换过程。

3)运行模式:用户可以获得两种运行模式单通道模式和扫描模式。

4)输入通道选择:定时器触发转换器使能转换器。

5)模拟时钟预分频器:可以使用两个预分频器一个描述主要的ADC时钟频率,另一个只有在采样状态下可以被使能一提供ADC时钟。

6)插入式转换链:用户可以通过定时器触发信号或者设置寄存器ADC_CLR3的JSTART位,来插入转换链。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h +75x_it.c +main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c +75x_gpio.c +75x_mrcc.c +75x_eic.c +75x_adc.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

转动VR1,逆转LD4亮,顺转LED3亮,中间有段时间灯都不亮。

(五)收获心得

看门狗定时器是一个计时器,基本功能是在发生在软件问题和程序跑飞后使系统启动,看门狗计时器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或者跑飞,该定时器将溢出,并将进入中断,在定时器中断中执行一次复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时器时溢出归零,使处理器重新启动。由于模数转换十分广泛,我觉得掌握其原理和实际应用技巧是很有必要的。可是由于包含的知识面广,其内在原理感觉掌握不是非常透彻,期望在以后的学习中继续深入的学习。


实验八 UART通用异步收发器实验

(一)实验目的

1.通过实验,了解UART接口的内在结构,理解与计算机串口通信原理的工作原理。

2.学习使用UART接口在超级终端中的输出信息的编程方法。

(二)实验原理

1.UART介绍:UART(通用异步收发器)接口是STR750与其他控制器、微处理器以及外部设备之间通信的串口通信接口。UART支持全双工异步通信。数据传输可以是5~8位,数据传输长度、奇偶校验和停止位都可以通过编程配置。UART控制的奇偶校验、帧同步和溢出错误检测是数据传输的可靠性提供了保证。数据发送和接收方式可以简单的称作双缓冲模式,也可以称作使用两个深度为16的FIFO.可以通过设置回传选项,执行测试功能。另外,UART还有一个可编程的波特发射器为数据传输提供独立的暂停长度可编程控制的串行时钟信号。

2.UART的主要特性:

1)独立的16*8TransmitFIFO和16*12ReceiveFIFO缓冲区以减少CPU中断。

2)可编程禁止FIFO使其变为深度为1个字节的寄存器。

3)可编程的波特率发生器。

4)标准异步通信位。它们在传输前被置位,接受后被清零。

5)Lin控制器与传输中暂停长度以及接受中的断点检测相符合。

6)相对独立的Transmit FIFO\Receive FIFO 。若接受时间超时,则清空发送状态位并产生错误中断。

7)支持直接存储器访问(DMA)。

8)错误开始位检测。

9)可编程的硬件流控制。

10)完全可编程的串口接口。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_eic.c

+75x_uart.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序后发现,超级终端上会显示:IART Example :UART Hyperterminal communication using Interruot.

(五)收获心得

通过这次实验,我了解了UART的使用方式,方法,流程,并且学会了使用IAR工具来进行改写UART程序。


实验九 SMI串行存储器

(一)实验目的

1.通过实验,了解SMI串行存储器的工作工程和作用。

2.了解SMI串行存储器的传输方式。

3.学习使用SMi的存储器设置流程和编程方法。

(二)实验原理

1.SMI的主要特性

1)具有32位、16位、8位的AHB接口。

2)具有可编程时钟与分频系数。

3)在正常的读模式时速度可高达20MHZ,快速读模式可达48MHZ。

4)写模式时速度可高达30MHZ。

5)具有4个片选信号,可外扩4块共64MB的SMI存储器。

6)外部存储器可配置为启动模式。

7)写完成或者软件传递完成时可产生中断请求。

2.功能描述

SMI接口一般为3线或者4线,分别为时钟信号线,数据输入输出以及片选信号线。STR75xfF外部可接4片共64MB的SMI芯片,故它有4个片选信号线。时钟信号和数据输入输出都是公用的,存储器通过SMI数据处理控制单元连接到AHB总线上。

(三)实验步骤

1.在IAR集成开发环境下创建工程,命名并保存。

2.像工程中添加下列文件。

+75x_conf.h

+75x_it.c

+main.c

3.从库文件里向工程添加startup文件用于初始化和中断向量的设置,并添加下列所有文件。

+75x_lib.c

+75x_gpio.c

+75x_mrcc.c

+75x_smi.c

+75x_cfg.c

4.设置工程项目的配置,编译连接,并将生成的目标文件下载到目标板得RAM中进行调试。

5.运行程序,观察结果。

(四)实验结果

运行程序后发现,在调试窗口的“Terminal I\O”中看到输出的一上串数据。

(五)收获心得

通过这次实验,我了解到了SMI的使用方式、方法、流程、并且学会了使用IAR工具来进行改写SMI程序,学到了新的知识。

- 高氯酸对阿胶进行湿法消化后, 用导数火焰原子吸收光谱技术测定阿胶中的铜、“中药三大宝, 人参、鹿茸和阿胶。”阿胶的药用已有两千多年的悠久历史, 历代宫① 马作峰.论疲劳源于肝脏[J].广西中医药,2008,31(1):31.① 史丽萍,马东明, 解丽芳等.力竭性运动对小鼠肝脏超微结构及肝糖原、肌糖元含量的影响[J]. 辽宁中医杂志,① 王辉武,吴行明,邓开蓉.《内经》“肝者罢极之本”的临床价值[J] . 成都中医药大学学报,1997,20(2):9.① 杨维益,陈家旭,王天芳等.运动性疲劳与中医肝脏的关系[J].北京中医药大学学报. 1996,19(1):8.1 运动性疲劳与肝脏① 张俊明.“高效强力饮”增强运动机能的临床[J].中国运动医学杂志,1989,8(2):10117 种水解蛋白氨基酸。总含量在56.73%~82.03%。霍光华②采用硝酸-硫酸消化法和18(4):372-374.1995,206.2② 林华,吕国枫,官德正等. 衰竭运动小鼠肝损伤的实验性[J].天津体育学院报, 1994,9(4):9-11.② 凌家杰.肝与运动性疲劳关系浅谈[J].湖南中医学院学报.2003,2(6)31.② 凌家杰.肝与运动性疲劳关系浅谈[J].湖南中医学院学报.2003,23(6):31.② 谢敏豪等.训练结合用中药补剂强力宝对小鼠游泳耐力与肌肉和肝Gn, LDH 和MDH 的影响[J].中国运动医学杂② 杨维益,陈家旭,王天芳等.运动性疲劳与中医肝脏的关系[J].北京中医药大学学报. 1996,19(1):8.2.1 中药复方2.2 单味药33 阿胶和复方阿胶浆③ 常世和等.参宝片对机体机能影响的[J].中国运动医学杂志,1991,10(1):49.③ 聂晓莉,李晓勇等.慢性疲劳大鼠模型的建立及其对肝功能的影响[J]. 热带医学杂志,2007,7(4):323-325.3.1 概述3.2 关于阿胶和复方阿胶浆医疗保健作用的3.2.1 营养成分和评价3.2.2 阿胶的药理作用3.2.3 阿胶的临床应用4④ Xie MH, etal.Effects of "Hong jing tian she 1u" on reproductive axis function and exercise capacities in men. The5⑤ 周志宏等.补肾益元方对运动小鼠抗疲劳能力的影响[J].中国运动医学杂志,2001,20(1):83-84202-204.5`"InternationalCourseandConferenceonPhysiologicalChemistry and Natrition of exercise and training (Abstract)6⑥ 杨维益等.中药复方“体复康”对运动性疲劳大鼠血乳酸、p 一内啡肤、亮氨酸及强啡肤Al-13 影响的实验研⑥。仙灵口服液可提高机体运动能力,加速运动后血乳酸的消除。F3 口服液能调整PCO2⑧ 孙晓波等.鹿茸精强壮作用的[J].中药药理与临床,1987,3(3):11.⑨ 于庆海等.高山红景天抗不良刺激的药理[J].中药药理与临床,1995,7(7):283.⑩ 牛锐.淫羊藿炮制前后对小鼠血浆睾丸酮及附近性器官的影响[J].中国中药杂志,1989,14(9):18.P 0.05) 。肝脏是动物机体重要脏器之一,Pi,同疲),肝主筋,人之运动皆由于筋,故为罢极之本”。人体肝脏的功能活动也必阿胶, 味甘性平, 入肺、肝、肾经, 具有补血止血、滋阴润肺的功效。《神农本阿胶,又称驴皮胶,为马科动物驴的皮去毛后熬制而成的胶块,是中国医药宝库中阿胶、熟地配伍能使补而不滋腻, 共奏益气补血之功, 主要治疗各种原因导致的气血阿胶对细有促进作用;提示阿胶能提高机体免疫功能。 另外阿胶具阿胶具有很好的止血作用,常用来治疗阴虚火旺、血脉受伤造成的出血。比如,阿胶能治疗缺铁性贫血,再生障碍性贫血等贫血症状,阿胶对血小板减少,白细阿胶是一类明胶蛋白,经水解分离得到多种氨基酸,阿胶具有很多的药理作用和阿胶又称驴皮胶, 为马科动物驴的皮去毛后熬制而成的胶块。中药界有句口头禅:阿胶中的营养成分比较多,主要有蛋白质、多肽、氨基酸、金属元素、硫酸皮肤。把阿胶应用于运动员或人群中的实践应用性,具有很大的潜力和市场前景,白血病、鼻咽癌、食道癌、肺癌、乳腺癌等。阿胶不温不燥,老少皆宜,一年四季均伴随现代竞技体育的强度越来越大,运动员在大运动量训练后出现的各种疲劳征象,胞减少等症也具有效果明显效果;另外,经配伍,阿胶可用来治疗多种出血症。医学保健作用,阿胶具有耐缺氧、耐寒冷、抗疲劳和增强免疫功能作用;同时,阿胶具有本文的目的意义有以下两个方面:一是通过阿胶的抗疲劳能力,来进一

本以运动性疲劳相关症状明显的篮球运动员为对象,以谷丙转氨酶、谷表明,阿胶还用于治疗妊娠期胎动不安,先兆流产,习惯性流产等。对于月经病步了解运动员服用阿胶以后,不但能够使男女运动员的谷草转氨酶含量水平、谷丙转参促进人体对糖原和三磷酸腺苷等能源物质的合理利用, 并使剧烈运动时产生的乳草经》将其列为上品。《本草纲目》载阿胶“疗吐血衄血, 血淋尿血, 肠风下痢, 女草转氨酶、谷酰转肽酶、总胆红素、白蛋白和白蛋白/球蛋白含量水平为测定指标,产生运动。从中医学的观点来看,筋就是聚集在一起的肌肉束,膜是筋的延长和扩布;常所说的肌腱和韧带等器官,韧带和肌腱坚韧有力。通过韧带和肌腱伸缩牵拉骨骼肌充在筋”, 也就说明了筋的功能受到肝脏的调节, 所以, 医家大多从筋与肝相关的角除运动后的疲劳, 已经成为运动医学领域的热点,而中医药在改善、消除运动性促进肌肉和肝脏有氧氧化能力的作用③。 红景天圣露能促进机体运动后的恢复和消除促进血液凝固和抗贫血作用,有提高血红蛋白红细胞,白细胞和血小板的作用。到影响。的变化, 主要表现为部分肝细胞破裂, 内容物进入窦状隙, 未受损的肝细胞糖原明的核心问题之一, 也是运动训练学所要克服的核心问题之一, 疲劳是机体的一的滋补类药品;因始产于聊城东阿,故名阿胶,距今已有两千多年的生产历史;最早低分子肽含量分别是15%~45%、10.97%~13.18% 。霍光华③采用标准水解法和氨基低运动后血清尿素氮含量; 加速体内尿素氮及血乳酸的清除速率;提高小鼠的游泳点、“肝之合筋”的观点、“肝者,其充在筋” 的观点、“食气入胃,散精于肝,淫气于动领域的广泛应用。动性疲劳关系最为密切者当首推肝脏。动性疲劳后机体恢复作用和机制的十分活跃。动员和贮备,以及机体对运动刺激的适应和运动后的疲劳的恢复起到重要的促进作用度阐述肝与疲劳的关系, 其实肝尚可通过脏腑气血等多个途径影响疲劳感的产生和度的DS 标准液, 加适量天青Ⅰ试液, 536nm 处测定吸收值, 建立工作曲线回归方程。对于运动产生的机理, 中医学解释比较通俗易懂, 即:韧带和肌腱的伸缩牵拉骨对运动性疲劳的多集中于中枢疲劳与外周肌肉疲劳,而较少涉及肝脏实质器而略于补立法,以健脾保肝、补中益气组方的确是防治运动性疲劳的一条新思新。故发挥和延缓运动性疲劳的产生都能起积极而有效的作用。总之,体力和脑力的产生均复的适应能力②。复方阿胶浆是由阿胶、红参、党参、熟地、山楂等药组成, 主入肝、脾两经。方肝,人动血运于经,”的论述。明确指出运动能力与肝和血密切相关。这种“动则血肝脾同处于中心位置,共同掌管着气化的职责,所以运动性疲劳的气虚神乏大多是由肝损害可导致动物运动能力下降, 也有大量实验观察了急性力竭疲劳对动物肝脏的肝糖原、肌糖元含量下降, 其程度随着衰竭运动次数增加而增加。林华等②通过对衰肝有关,由此可以推测神经递质、激素的释放等生理活动均同肝脏有密切关系。再者肝与筋的关系非常密切,在许多著作中都阐述了这一观点。如“肝主筋” 的观肝脏对内分泌具有促进作用。中医认为,胆汁的分泌、女子的排卵、男子的排精均主藏血、主筋,为“罴极之本”,有储藏营血与调节血量的作用,是提供运动所肝主疏泄,调畅气机,对气血津液的生成、输布和代谢有着重要意义。就运动生高山红景天在疲劳情况下能提高机体持续工作的时间,维持血压、心率的正常水高小鼠肝糖原的储备量; 降低运动后血清尿素氮含量;加速体内尿素氮及血乳酸的骼肌产生运动。《素问•六节藏象论》曰:“肝者,罢极之本,魂之居也, 其华在爪, 其个特别复杂的生理生化过程。 总的说来,疲劳可分为生理疲劳和心理疲劳。 1982工作能力的作用①。强力宝能促进肌肉和肝脏有氧氧化能力的作用②。参宝片也能具有官的疲劳。肝脏作为人体重要的脏器,与运动性疲劳的关系极为密切。国际运动医学协会主席普罗科朴(Polo1Capur) 认为运动性疲劳问题是运动医学过度的训练、残酷的比赛引起的缺氧、强应激反应会导致机体的神经内分泌系统、心过去一段时间,抗运动性疲劳传统上单纯采用补的模式,现在,中医药抗疲劳出还认为“食气入胃,全赖肝木之气以疏泄之,而水谷乃化,气血方得以运生”,说明和血虚者,如服用阿胶补益,也具有良好的效果。临床上充分发挥阿胶的养血、补血、恢复正常,促进酸碱平衡的恢复,减少碱性物质的消耗⑦。机体的血量增加,以便增加通气/血流比值。肝内所贮存的血液就会更多的向机体全身肌腱和韧带等器官的力量。筋和筋膜向内连着五脏六腑,肝将脾输送来的精微之气浸、涉水等劳动或运动都称为“劳”, 而竞技体育由于其具有大运动量、高强度的加⑧。剑, 便无踪无影。阿娇日日夜夜在狮耳山、狼溪河附近狩猎。最后, 用利剑杀死了一奖牌呢?毫无疑问是靠长时间艰苦的训练,然而伴随现代竞技体育的强度越来越大,娇, 决心要找到救治此病的特效药物, 为民解忧。阿娇姑娘日以继夜地爬山涉水, 不竭性运动后小鼠肝脏超微结构的观察, 发现连续7 次的衰竭运动使肝细胞呈现明显筋”的观点、“肝主身之筋膜”的观点以及明•皇甫中《明医指掌》中的“劳伤乎肝,筋和筋膜把相邻的关节连在一起,对运动起着重要的作用;并且,筋和筋膜向内连着进小白鼠耐力的提高。经论》有“肝藏血”的观点,另外,在《素问•五脏生成论》里,也有“人卧血归于景天圣露、补肾益元方、体复康、仙灵口服液及F3 口服液等。复方阿胶浆能显著提究[J].北京中医药大学学报,1997,20(4):37-40.具有多种代谢功能。血清谷草转氨酶、谷丙转氨酶升高在一定程度上反映了肝细胞的亢不抑,就会能协调精神、情趣和意志,使情绪稳定,思维敏捷,对运动技术水平的充分抗运动性疲劳的单味药主要有鹿茸、高山红景天、人参、淫羊藿和花粉等。实验抗运动性疲劳的中药复方主要有复方阿胶浆、高效强力饮、强力宝、参宝片、红可用,是强身健体的滋补佳品。阿胶中富含蛋白质降解成分,通过补血起到滋润皮肤劳感。” 运动性疲劳属中医“劳倦”范畴, 中医将劳力、劳役、强力举重、持重远行、劳模型组大鼠血清谷草转氨酶、谷丙转氨酶在此期间出现明显升高(P

【篇4】嵌入式系统gpio实验报告

大连理工大学

本科实验报告

课程名称: 嵌入式系统实验

学院(系):电子信息与电气工程学部

专 业: 自动化

班 级: 0804

学 号:

学生姓名: 何韬

2011年 11月 18日

大连理工大学实验报告

学院(系): 电信 专业: 自动化 班级: 0804

姓 名: 何韬 学号:组: ___

实验时间: 2011-11-12 实验室: d108 实验台:

指导教师签字: 成绩:

实验二ARM的串行口实验

一、实验目的和要求

见预习报告

二、实验原理和内容

见预习报告

三、主要仪器设备

硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 或 集成开发环境、仿真器驱动程序、超级终端通讯程序。

四、实验步骤

见预习报告

五、核心代码

在主函数中实现将从串口0接收到的数据发送到串口0()

int main(void)

{

char c1[1];

char err;

ARMTargetInit(); 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务;

.

OSStart(); /ucos-ii/" /* uC/OS interface */

#include "../ucos-ii/add/"

#include "../inc/"

#include "../inc/sys/"

#include "../src/gui/"

#include

#include

#pragma import(__use_no_semihosting_swi) .\n");

.\n");

.\n");

于task2 挂起时间为3 秒,所以在

task2 挂起期间task1 能执行两次,而当第三次时由于task1 与task2 同时处于

就绪态,由优先级次序,还是先执行task1 在执行task2.然后就这样周而复始

的循环下去。

为验证ucos 的强实时性,可以去掉task2()的“OSTimeDly(3000);”然后

令task1()中的“OSTimeDly(1000);”改为“OSTimeDly(10);”。观察到的实

验现象是在超级终端上显示被“run task1”打断的”“ run task2”,反之把task1

和task2 的优先级交换则在超级终端上只显示“run task2”。这说明ucos 的强

实时性得到了验证,因为在任何时候只要高优先级的任务都可以打断正在执行的

低优先级任务,反之低优先级任务却不可打断正在执行的高优先级的任务。

七、实验心得

该实验使我了解了uCOS-II 内核的主要结构,对所学知识有了加深刻的理解和认识,基本掌握了将uCOS-II 内核移植到ARM920T 处理器上的方法,能够正确完成基本操作得出正确结果。

大连理工大学实验预习报告

学院(系): 电信 专业: 自动化 班级: 0804

姓 名: 何韬 学号:组: ___

实验时间: 2011-11-12 实验室: d108 实验台:

指导教师签字: 成绩:

实验二ARM的串行口实验

一、实验目的和要求

1.掌握ARM 的串行口工作原理。

2.学习编程实现ARM 的UART 通讯。

3.掌握CPU 利用串口通讯的方法。

二、实验原理和内容

实验原理:

1.硬件电路图

核心板电路接口:

硬件电路图—MAX3232:

接口连线:

2.异步串行I/O

异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。

图2-1 串行通信字符格式

图2-1 给出异步串行通信中一个字符的传送格式。开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0” 作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1” 信号,这个停止位可以约定持续1 位、位或2 位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。

每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为50,

95,110,150,300,600,1200,2400,4800,9600,119200 等。 接收方按约定的格式接收数据,并进行检查,可以查出以下三种错误: 1)奇偶错:在约定奇偶检查的情况下,接收到的字符奇偶状态和约定不符。 2)帧格式错:一个字符从起始位到停止位的总位数不对。 3) 溢出错:若先接收的字符尚未被微机读取,后面的字符又传送过来,则产生溢出错。

每一种错误都会给出相应的出错信息,提示用户处理。

3.ARM 自带的串行口寄存器

ARM 自带两个串行口,各带有16 字节的F IFO(先入先出寄存器),最大波特率。每个UART 有7 种状态:溢出错误、校验错误、帧错误、暂停态、接收缓冲区准备好、发送缓冲区空、发送移位缓冲器空,这些状态可以由相应的UTRSTATn/UERSTATn 表示,并且与发送接收缓冲区相对应的有错误缓冲区。波特率的可以通过控制波特率寄存器(UBRDIVn )控制。

与UART 有关的寄存器主要有以下几个:

(1)UART 线性控制寄存器ULCONn

该寄存器的第6 位决定是否使用红外摸式,位5~3 决定校验方式,位2 决定停止位长度,位1 和0决定每帧的数据位数。

参考:普通模式,无奇偶校验,1位停止位,8为数据长度。

(2)UART 控制寄存器UCONn,该寄存器决定UART 的各种摸式。UART FIFO控制寄存器UFCONn,UART MODEM 控制寄存器,分别决定UART FIFO 和MODEM 的模式。其中UFCONn 的第0 位决定是否启用FIFO,UMCONn 的第0 位是请求发送位,对我们来说是比较重要的。

参考:Tx电平触发,Rx边沿触发,禁止接收超时中断,允许接收错误中断,发送和接受模式均为01。

(3) 读写状态寄存器UTRSTAT 以及错误状态寄存UERSTAT, 可以反映芯片目前的读写状态以及错误类型。FIFO 状态寄存器UFSTAT 和MODEM 状态寄存器UMSTAT, 通过前者可以读出目前FIFO 是否满以及其中的字节数;通过后者可以读出目前MODEM 的CTS 状态。

(4) 发送寄存器UTXH 和接收寄存器URXH, 这两个寄存器存放着发送和接收的数据,当然只有一个字节8位数据。需要注意的是在发生溢出错误的时候,接收的数据必须要被读出来,否则会引发下次溢出错误。

(5)最后是波特率引子寄存器UBRDIV。该寄存器为十六位,算法参见上页的部分。 计算公式如下: UBRDIVn = (round_off)(MCLK/(bps × 16) ) -1

其中MCLK 是系统频率,例如在40MHz 的情况下,当波特率取115200 时,

× 16)+ ) -1= (int)+ -1= 22 -1 = 21

注意: 由于ARM 工作时存在小端和大端两种工作模式,所以同样一个寄存器在不同模式时地址也不一样,需要加以区别。

实验内容:

学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART 相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。编程实现ARM 和计算机实现串行通讯:

ARM 监视串行口,将接收到的字符再发送给串口(计算机与开发平台是通过超级终端通讯的), 即按PC 键盘通过超级终端发送数据,开发平台将接收到的数据再返送给PC, 在超级终端上显示。 三、实验步骤

1.新建工程,将“Exp2 ARM 串口实验”中的文件添加到工程中,这些是启动时所需要的文件。

2.定义与UART 有关的各个寄存器地址和一些特殊的位命令。主要有以下各寄存器():

/* UART 的全部功能寄存器 */

#define rULCON0 (*(volatile unsigned *)0x1d00000)

#define rULCON1 (*(volatile unsigned *)0x1d04000)

#define rUCON0 (*(volatile unsigned *)0x1d00004)

#define rUCON1 (*(volatile unsigned *)0x1d04004)

#define rUFCON0 (*(volatile unsigned *)0x1d00008)

#define rUFCON1 (*(volatile unsigned *)0x1d04008)

#define rUMCON0 (*(volatile unsigned *)0x1d0000c)

#define rUMCON1 (*(volatile unsigned *)0x1d0400c)

#define rUTRSTAT0 (*(volatile unsigned *)0x1d00010)

#define rUTRSTAT1 (*(volatile unsigned *)0x1d04010)

#define rUERSTAT0 (*(volatile unsigned *)0x1d00014)

#define rUERSTAT1 (*(volatile unsigned *)0x1d04014)

#define rUFSTAT0 (*(volatile unsigned *)0x1d00018)

#define rUFSTAT1 (*(volatile unsigned *)0x1d04018)

#define rUMSTAT0 (*(volatile unsigned *)0x1d0001c)

#define rUMSTAT1 (*(volatile unsigned *)0x1d0401c)

#define rUBRDIV0 (*(volatile unsigned *)0x1d00028)

#define rUBRDIV1 (*(volatile unsigned *)0x1d04028)

#ifdef __BIG_ENDIAN 译并下载移植后的uCOS-II

所有的源代码都准备好后就可以进行编译了。在ADS 环境下需要设置工程的

访问路径。从菜单Edit | Debug Settings 进入设置对话框,在Target | Access

Paths 中选择User Paths 并选上Always search user paths。然后点Add 按钮

添加路径ucos-ii 和arch。这主要是设置编译器处理文件包含时的搜索范围。

按照实验一的方法可以对编译后的代码进行调试或下载到平台的电子硬盘中。这

个实验从结构上看和其他的实验没有多大区别, 同样生成可执行文件

。可以在平台BIOS 中激活电子硬盘,然后把 拷贝进去,

重启平台,然后在超级终端上观察结果。

 

相关文章