电子科技大学微机实验报告(含思考题)河畔下的哈】实验3

合集下载

电子科技大学实验报告

电子科技大学实验报告

电子科技大学实验报告电子科技大学实验报告电子科技大学作为中国一流的电子信息科学与技术学府,以其卓越的教育质量和科研实力备受瞩目。

在这所学校里,学生们不仅接受了丰富的理论知识,更重要的是能够通过实验来巩固和应用所学的知识。

实验报告作为实验课程的重要组成部分,对学生的实验能力、分析能力和表达能力都有一定的要求。

一、实验目的与背景每个实验报告都应该明确实验的目的和背景。

在电子科技大学的实验报告中,一般会先介绍该实验所涉及的相关知识和背景,然后明确实验目的。

以“电路实验”为例,可以介绍电路的基本概念和理论知识,然后明确实验目的是通过搭建电路,观察和分析电流、电压、电阻等参数的变化规律。

二、实验装置与步骤实验报告中应该详细描述实验所用的装置和仪器,并给出实验步骤。

例如,在电路实验中,可以列出所用的电源、电阻、电流表、电压表等装置,并详细说明实验的具体步骤,包括搭建电路的过程、调节参数的方法以及观察数据的记录方式。

三、实验结果与数据分析实验结果是实验报告的重要部分,学生需要将实验过程中所得到的数据进行整理和分析。

在电子科技大学的实验报告中,学生可以通过绘制图表、计算数据等方式来展示实验结果。

例如,在电路实验中,可以通过绘制电流与电压的关系曲线图来展示实验结果,并根据曲线的趋势和数据的变化来分析电路的特性和规律。

四、实验讨论与结论实验讨论是实验报告中的重要环节,学生可以在这一部分对实验结果进行讨论和解释。

例如,在电路实验中,学生可以通过比较实验数据和理论计算结果的差异,来分析实验误差的原因,并提出改进的方法。

最后,学生需要总结实验的结论,并对实验的意义和应用进行简要的说明。

五、实验心得与改进意见实验心得是学生对实验过程和结果的个人感悟和体会,可以在实验报告的最后部分进行阐述。

学生可以谈论自己在实验中遇到的困难和解决方法,以及对实验过程和结果的评价。

同时,学生还可以提出对实验的改进意见,以便于今后的实验能够更加顺利和有效地进行。

电子科技大学微机实验报告(含思考题)河畔下的哈】实验6

电子科技大学微机实验报告(含思考题)河畔下的哈】实验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),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。

这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。

实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。

实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。

这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。

实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。

实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。

通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。

未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。

我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。

电子科技大学微机实验报告实验5

电子科技大学微机实验报告实验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 的显示情况。

电子科技大学微机实验报告-实验2

电子科技大学微机实验报告-实验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 的循环点亮。

微机原理的实验报告

微机原理的实验报告

微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。

二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。

2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。

3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。

4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。

三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。

(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。

观察实验现象并记录。

(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。

观察程序的执行结果,并记录相关数据。

(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。

观察实验现象并记录相关数据。

2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。

(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。

(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。

四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。

2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。

但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。

五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。

微机原理实验报告三

微机原理实验报告三

微型计算机原理与接口技术实验报告一、实验内容实验3 分支结构程序设计实验题目编程实现三分支的符号函数;编程实现将正数N 插入由正数组成的数组ARY 中。

内容提要掌握分支程序的设计,观察通用寄存器、标志寄存器的变化、监测分支点。

二、实验的源代码(.asm文件内容)第一部分——编程实现三分支的符号函数程序如下:DATAS SEGMENTX DB-3Y DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,XCMP AL,0JGE BIGERMOV AL,0FFHMOV Y,ALJMP NEXTBIGER:JE EQULMOV AL,1MOV Y,ALJMP NEXTEQUL:MOV Y,ALNEXT: MOV AH,4CHINT 21HCODES ENDSEND START第二部分:编程实现将正数N 插入由正数组成的数组ARY中程序如下:DATAS SEGMENTX DW?ARY_HEAD DW 2,6,8,13,21,47,53,66,90ARY_END DW 125N DW 18DATAS ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATAS START: PUSH DSXOR AX,AXPUSH AXMOV AX,DATASMOV DS,AXMOV AX,NMOV ARY_HEAD-2,0FFFFHMOV SI,0 COMPARE:CMP ARY_END[SI],AXJLE INSERTMOV BX,ARY_END[SI]MOV ARY_END[SI+2],BXSUB SI,2JMP SHORT COMPARE INSERT: MOV ARY_END[SI+2],AX RETMAIN ENDPCODE ENDSEND START三、实验的(显示)结果Press any key to continue第一部分CV调试结果如下:第二部分CV调试结果如下:四、实验(调试)心得第一部分:调试中出现的问题及解决办法:本来程序中使用的返回DOS的方法是使用程序结束中断INT 20H 指令,但不能正确运行,可能是计算机也可能是软件的问题,然后又修改程序,改使用INT 21H 的4CH号功能调用,这样修改完成后程序便可以正确运行了。

电子科技大学 微电子器件实验报告MICRO-3

电子科技大学 微电子器件实验报告MICRO-3

电子科技大学实验报告(实验)课程名称微电子器件实验三:晶体管特征频率的测量分析学生姓名:学号:201203*******指导教师:刘继芝实验地点:211楼605实验时间:2015、6、18一、实验室名称: 微电子器件实验室二、实验项目名称:晶体管特征频率的测量分析三、实验学时:3四、实验原理:晶体管放大系数与频率的关系如下: ()βωωωωββj jm b +-=1exp 0 ()[]21201βββf f += 直接在利用晶体管放大系数β为1的条件测量晶体管特征频率T f 较为困难,而利用下式,根据图中αβf f f <<的线性关系则可在较低频率测量特征频率T f ,这就是“増益—带宽”积的测量方法。

βββf f f T 0==,五、实验目的:掌握晶体管T f 的“増益—带宽”积的测试原理,并熟练地运用T f 测试仪测试双极晶体管的特征频率。

六、实验内容:1、 在规定Vce, Ie 偏置下测晶体管特征频率T f 。

2、 Vce 置定值,测量T f —Ie 关系。

3、 Ie 置定值,测量T f —Ie 关系。

4、 发射结并数pF 电容,观察特征频率T f 变化七、实验器材(设备、元器件):QT16高频小功率晶体管T f 测试仪、高频小功率双极晶体管八、实验步骤:a.熟悉晶体管特征频率测试仪的测量范围,信号源工作频率,然后开机预热。

b. 从器件手册上查出所选器件的范围。

c.确定信号源工作频率,校准仪器d.按实验方法所述进行测量。

九、实验数据及结果分析:a 、特征频率分别与Ie 、Vce 的关系如下图:b 、特征频率与并联电容的关系如下:十、实验结论:通过测试,可以知道:高频小功率NPN 晶体管的特征频率与工作状态密切相关,在一定的偏置下可以达到最大值,这对电路设计具有指导意义。

另一方面,结电容对晶体管的特征频率影响极大,小的发射结电容可以获得高的特征频率。

十一、总结及心得体会:晶体管特征频率f定义为共射极输出交流短路电流放大系数 随频率下降到T1时的工作频率,是晶体管的重要参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三
ARM汇编实现串口通信实验
1.掌握ARM 的串行口工作原理。

2.学习编程实现ARM和PC机的UART通信。

3.掌握ARM裸机下汇编语言编程方法。

1.学习串行通信原理,了解串行通信控制寄存器。

2.编程实现ARM 和计算机之间的串行通信。

1、ARM汇编基础
2、ARM处理器通用IO口的操作
? 硬件:ARM嵌入式开发平台,PC 机一台,并口线,串口线,JTAG板? 软件:RVDS,H-JTAG
1.异步串行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 为0x30000000
3.
编译和调试工程。

4. 连接PC和实验板的并口,串口;并口连接至ARM的JTAG口,串口连接至COM PORT 口;打开电源;打开H-JTAG程序(。

5. 点击调试器Dubeg->Run,运行程序,打开超级终端,在开始->程序->附件->通讯里打开
超级终端,使用COM1,设置波特率115200,8位数据位,无奇偶校验,1位停止位,无数据流控制。

6. 从键盘输入数据,观察超级终端是否打印出字符。

如有正确的字符打印,则通信成功。

实验程序:
;************** SerialCommunication Experiment*****************
;相关寄存器地址定义
CLKDIVN EQU 0x4C000014 ;CLKDIVN for PCLK and FCLK
CAMDIVN EQU 0x4C000018 ;CANDIVN
ULCON0 EQU 0x50000000 ;UART line control register 0
UCON0 EQU 0x50000004 ;UART control register 0
UFCON0 EQU 0x50000008 ;UART FIFO control register 0
UMCON0 EQU 0x5000000C ;UART modem control register 0
UBRDIV0 EQU 0x50000028 ;UART baud rate divisor register 0
UTRSTA T0 EQU 0x50000010 ;UART TX/RX status register 0
UTXH0 EQU 0x50000020 ;UART transmit buffer register 0
URXH0 EQU 0x50000024 ;UART receive buffer register 0
MPLLCON EQU 0x4C000004 ;MPLL control register
GPHCON EQU 0x56000070 ;GPIO F control register
GPHUP EQU 0x56000078 ;GPIO F pull-up register
AREA SerialCommunication,CODE,READONL Y
ENTRY
ldr r2,=MPLLCON ;设置MPLL为0x00076022 FCLK=Mpll=(2*m*Fin)/(p*(2的s次方)), Fin=16.9344MHz
; m=(MDIV+8), p=(PDIV+2),
s=SDIV
mov r3,#0x22
mov r4,#0x00076000
ADD r3,r3,r4
str r3,[r2]
ldr r2,=CLKDIVN ; CLKDIVN 设置为0x03, PCLK=FCLK/4
mov r3,#0x03
str r3,[r2]
ldr r2,=CAMDIVN ; CLKDIVN 设置为0x0200, PCLK=FCLK/4
mov r3,#0x200
str r3,[r2]
ldr r2,=ULCON0 ; ULCON0 设置为0x03, 含义是正常操作模式,无校验,停止位1,8 个数据位
mov r3,#0x03
str r3,[r2]
ldr r2,=UCON0 ;UCON0 设置为0x05 表示发送、接收数据都使用查询方式
mov r3,#0x05
str r3,[r2]
ldr r2,=UFCON0 ;UFCON0 设置为0x00 为不使用FIFO
mov r3,#0x00
str r3,[r2]
ldr r2,=UMCON0 ;UMCON0 设置为0x00 为不使用流控
mov r3,#0x00
str r3,[r2]
ldr r2,=UBRDIV0 ;UBRDIV0 设置为36,含义为波特率设为115200, 由下面公式算得:UBRDIVn = (int)(PCLK/bps*16)-1
;其中PCLK =66.68MHz
mov r3,#36
strh r3,[r2]
ldr r2,=GPHCON ;UART0 set to rxd and txd ldr r3,=0xa0
str r3,[r2]
ldr r2,=GPHUP ;pull up
ldr r3,=0x0f
str r3,[r2]
;-------------填写代码实现串口传输--------------
C_UTRSTAT00
ldr r2,=UTRSTAT0
ldr r3,[r2]
add r3,r3,#1
CMP r3,#0
beq C_UTRSTAT00
C_UTRSTAT01
ldr r2,=UTRSTAT0
ldr r3,[r2]
add r3,r3,#2
cmp r3,#0
beq C_UTRSTAT01
ldr r2,=UTXH0
ldr r3,=URXH0
ldr r4,[r3]
str r4,[r2]
B C_UTRSTA T00
END
1. 查看相关寄存器,思考怎么配置UART时钟信号和UART配置寄存器?
答:设置mellcon寄存器的值可以设置时钟,改变ulcon的值可以配置UART配置寄存器。

2.
修改串口传输函数,使其在超级终端中输入“Enter”回车键后,输出“回车”加“换行”。

(“回车”和“换行”对应的ASCⅡ码分别为0x0d和0x0a).
答:函数修改为:
C_UTRSTAT00
ldr r2,=UTRSTAT0
ldr r3,[r2]
add r3,r3,#1
beq C_UTRSTAT00
C_UTRSTAT01
ldr r2,=UTRSTAT0 ldr r3,[r2]
add r3,r3,#2
cmp r3,#0
beq C_UTRSTAT01
ldr r2,=UTXH0
ldr r3,=URXH0
ldr r4,[r3]
str r4,[r2]
cmp r4,0x0d
blne X
B C_UTRSTA T00
X
bl C_UTRSTA T00
bl C_UTRSTA T01 ldr r2,=UTXH0
str r4,[r2]
本实验体现的异步串口通信的代码实现过程。

相关文档
最新文档