电子科技大学微机实验报告实验
实验四基于ARM 的嵌入式Linux 开
发环境建立
【实验目的】
1. 掌握嵌入式Linux 开发环境的基本流程。
2. 熟悉Linux 操作系统
3. 熟悉嵌入式开发平台
【实验内容】
在PC 机虚拟机下的Linux 系统中建立基于ARM 的嵌入式Linux 开发环境。
1. 学会网口的
配置
2. Minicom 端口的使用
【预备知识】
1.了解ARM9 处理器结构
2.了解Linux 系统结构
3. 了解ARM 开发板使用常识
【实验设备和工具】
硬件:PC 机Pentium100 以上,ARM 嵌入式开发平台
软件:PC 机Linux 操作系统+MINICOM + AMRLINUX 开发环境
【实验原理】
1.交叉编译器在一种计算机环境中运行的编译程序,能编译出在另
外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这
个编译过程就叫交叉编译。
简单地说,就是在一个平台上生成另一
个平台上的可执行代码。
这里需要注意的是所谓平台,实际上包含两个概念:体系结构
(Architecture)、操作系统(Operating System)。
同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
举例来说,我们常说的x86
Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台
实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。
我们常用的计算机软
件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。
比如,我们在Windows平台上,可使用Visual C++
开发环境,编写程序并编译成可执行程序。
这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解
为本机编译。
然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU
的主频大概在100MHz到500MHz之间。
这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强
的CPU运算能力。
为了解决这个问题,交叉编译工具就应运而生了。
通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的
可执行程序。
要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool-chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
常见的交叉编译例子如下:
1、在Windows PC上,利用RVDS(ARM 开发环境),使用armcc编译器,则可编译出针对ARM CPU
的可执行代
码。
2、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。
2.NFS
服务
NFS是Net File System的简写,即
网络文件系统.
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。
通过使用NFS,用户和程序可以像访问本地文件一样访问远端系
统上的文
件。
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。
客户机远程访问存放在服务器上的数据。
为了正常工作,一些进程需要被配置并运行。
在本实验中就是将PC机作为服务器,而将ARM开发板作为客户机,这样ARM开发板就可以远程
访问存放在在PC机上的数据,这样可以缩短研发周期,
更方便的调试程序。
【实验步
骤】
1. 双击桌面上 VMWARE,打开
Linux 虚拟机
2. 点击启动虚拟机,
启动虚拟机
3. 以 root 身份登陆虚拟
机,密码123456
4. 其他步骤详见实
验指导书
【实验结果和程
序】
基于 ARM 的嵌入式 Linux 开发环境
建立完毕。
【思考
题】
1.如何验证交叉编译器已安
装成功?
答:在终端输入命令: cd /arm/rootfs/home/driver (文件夹里已有test_led.c文件)
arm-linux-gcc –o test_led test_led.c 若有可执行文件test_led 生成则表示交叉编译器已安装成功
2.如果我们需要变更根文件系统的目录,该如何设置使得ARM 开发板可以成功挂载?答:修改/etc/exports 文件的内容,将
/arm/rootfs *(rw,sync,no_root_squash) 改为/XX/XXX
*(rw,sync,no_root_squash) (/XX/XXX 为变
更后点的文件目录)
3.怎么在 u-boot 命令行下修改 ARM
开发板的IP?
答:输入 setenv
ip=x.x.x.x:192.168.0.1:192.168.0.1:255.255.255.0:uestc:et
h0:off
Savee
nv
x,x,x,x 为 ARM 开发
板的新IP。
【实验结
论】
本实验实现了基于ARM 的嵌入式Linux 开发环境建立。
电子科技大学微电子器件实验报告MICRO-1
电⼦科技⼤学微电⼦器件实验报告MICRO-1电⼦科技⼤学实验报告(实验)课程名称微电⼦器件实验⼀:双极晶体管直流特征的测量学⽣姓名:学号:201203******指导教师:刘继芝实验地点:211楼605实验时间:2015、6、⼀、实验室名称:微电⼦器件实验室⼆、实验项⽬名称:双极晶体管直流特征的测量三、实验学时:3四、实验原理:1.XJ4810半导体管特性图⽰仪的基本原理⽅框图XJ4810图⽰仪的基本原理⽅框图如图1-3所⽰。
其各部分的作⽤如下。
(1)基极阶梯信号发⽣器提供必须的基极注⼊电流。
(2)集电极扫描电压发⽣器提供从零开始、可变的集电极电源电压。
(3)同步脉冲发⽣器⽤来使基极阶梯信号和集电极扫描电压保持同步,以便正确⽽稳定地显⽰特性曲线(当集电极扫描电压直接由市电全波整流取得时,同步脉冲发⽣器可由50Hz 市电代替)。
(4)测试转换开关是⽤于测试不同接法和不同类型晶体管的特性曲线和参数的转换开关。
(5)放⼤和显⽰电路⽤于显⽰被测管的特性曲线。
(6)电源(图中未画出)为各部分电路提供电源电压。
2.读测⽅法(以3DG6 npn 管为例)(1)输⼊特性曲线和输⼊电阻R i在共射晶体管电路中,输出交流短路时,输⼊电压和输⼊电流之⽐为R i ,即常数=??=CE V B BEi I V R 它是共射晶体管输⼊特性曲线斜率的倒数。
例如需测3DG6在V CE = 10V 时某⼀⼯作点Q 的R i 值,晶体管接法如图1-4所⽰。
各旋钮位置为:峰值电压范围 0~10V极性(集电极扫描)正(+)极性(阶梯)正(+)功耗限制电阻 0.1~1k Ω(适当选择)x 轴作⽤电压0 .1V/度 y 轴作⽤阶梯作⽤重复阶梯选择 0.1mA/级测试时,在未插⼊样管时先将x 轴集电极电压置于1V/度,调峰值电压为10V ,然后插⼊样管,将x 轴作⽤扳到电压0.1V/度,即得V CE =10V 时的输⼊特性曲线。
这样可测得图1-5;.200101.002.0310Ω=?=??=-=V VB BE i CE I V R图1-4 晶体管接法图1-5 晶体管的输⼊特性曲线(2)输出特性曲线、转移特性曲线和β、h FE 、α在共射电路中,输出交流短路时,输出电流和输⼊电流增量之⽐为共射晶体管交流电流放⼤系数β。
微型计算机实验一实验报告
微型计算机实验一实验报告一、实验目的本次微型计算机实验的主要目的是让我们熟悉微型计算机的硬件组成,了解计算机各部件之间的连接和工作原理,并掌握基本的计算机组装和调试技能。
通过实际操作,提高我们对计算机系统的认识和动手能力,为今后的学习和工作打下坚实的基础。
二、实验设备与工具1、计算机主机箱、主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备。
2、螺丝刀、镊子、防静电手环等工具。
三、实验内容1、了解计算机硬件组成打开计算机主机箱,观察主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备的外观和安装位置。
学习各硬件设备的功能和作用,如 CPU 负责运算和控制,内存用于临时存储数据,硬盘用于长期存储数据等。
2、计算机硬件组装戴上防静电手环,防止静电对硬件设备造成损坏。
首先安装 CPU,将 CPU 对准主板上的插座,轻轻放下,然后扣紧CPU 插座的扳手。
安装内存,将内存插槽两端的卡扣掰开,将内存条对准插槽,用力按下,直到两端的卡扣自动扣紧。
安装硬盘,将硬盘固定在机箱的硬盘架上,然后连接数据线和电源线。
安装显卡,将显卡插入主板上的 PCIE 插槽,并用螺丝固定。
安装声卡和网卡,根据主板的接口类型,将声卡和网卡插入相应的插槽。
连接机箱前面板的线缆,包括电源按钮、重启按钮、指示灯、USB 接口等。
3、计算机硬件调试检查各硬件设备的安装是否牢固,连接是否正确。
接通电源,按下电源按钮,观察计算机能否正常启动。
如果计算机无法启动,根据报警声和指示灯的提示,查找故障原因并进行排除。
四、实验步骤1、准备工作清理实验台,将所需的硬件设备和工具摆放整齐。
阅读计算机硬件组装的相关资料,了解组装的流程和注意事项。
2、硬件组装按照上述步骤,依次安装 CPU、内存、硬盘、显卡、声卡、网卡等硬件设备,并连接好线缆。
3、硬件调试检查组装完成的计算机,确保没有遗漏的部件和连接错误。
接通电源,按下电源按钮,观察计算机的启动情况。
如果计算机无法启动,首先检查电源是否正常,然后检查各硬件设备的连接是否松动。
电子科技大学微机实验报告(含思考题)河畔下的哈】实验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 种字母。
电子科技大学微机实验报告实验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 的显示情况。
电子科技大学中山学院微处理器实验报告 (11)
Col |= 0x40; //显示第二行时DDRAM地址从40H开始
Col |= 0x80; //拼为DDRAM地址设置命令
LCD1602CmdWrite(Col); //发送DDRAM地址
while( *Str )
LCD1602DataWrite(*Str++); //连续发送每个字符的ASCII码
LCD1602_EN=1;
LCD1602_DATA=cmdByte; //发送命令字节
LCD1602_EN=0;
}
//*****************************LCD1602写数据函数*********************
void LCD1602DataWrite(uint8 DataByte)
//*****************************电子钟时间调整函数********************
void RTClockAdj()
{
if(++RTClock.Second< 60 ) return;
RTClock.Second=0;
if(++RTClock.Minute< 60 ) return;
{
TH0=(65536-45*1024)>>8; //设置50ms定时初值(对应晶振11.0592MHz)
TL0=(65536-45*1024)&0xFF;
if(++Timer50ms< 20 ) return;
Timer50ms=0; //已满1s,Timer50ms清0
RTClockAdj(); //时间调整
void Delay(uint16 ms)
电子科大微机实验报告实验6
。中]0[pmet 入写 sserdda 址地的器存寄的置配要将// 和址地器存寄括包 �据数的送发要放存于用组数个一义定//
�是数函现实体具�值的置配要入写后然�址地的器存寄的置配要入写先是程过现实体具
作工式方的要需们我照按管码数和盘键动驱而从�置配的器存寄部内 0927glz 对成完�数函些这用调过通是就�中验实本在。制控和作操的它对到达�备设 C2I 的们我到问访的便方很以可数函些这用调过通�数函口接的列系一了供提们我为 xuniL 绍介数函口接动驱 c2i 下 xuniL 、3 。烁闪不都位 有所�后位复。烁闪�1�示显常正�0�性属烁闪的位应相管码数制控�7�0�n�nF 的节 字 2第 �0000 值取常通 �位关无示表 xxxx �段字令命是 1110 的位 4 高 �中式格令命在 �hsalF�制控烁闪 �
。母字种 12 和字数种 01 括包�据数的示显要是 0d1d2d3d4d�烁闪�1�示显常 正�0�烁闪要否是示表 hsalf�灭熄�1�亮点�0�亮点否是点数小制控 pd�管码数个 8 表代�7,6,5,4,3,2,1,0 为次依号编址地位� �可即 0 取时用使际实�用之展扩后以作留 3A 中 其� 址地位的据数示显管码数是 0A1A2A3A �段字令命是 0110 的位 4 高 �中式格令指在 �daolnwoD�码译并据数载下 �
称名目项验实 �师老课任 �称名程课 �名姓 生 学 号 学
告
报
验
实
学 大 技 科 子 电
。能功等烁闪制控、据数示显载下、址寻段现实以可令命制控的关相入写区冲缓令命向 过通。区冲缓令命成组同共�H80�址地�1fuBdmC 和�H70�址地�0fuBdmC 器存寄 绍介令命制控 0927GLZ、2 。能 功等烁闪制控、据数示显载下、址寻段现实以可令命制控的关相入写区冲缓令命向过通 �H80 和 H70�址地�1fuBdmC 和 0fuBdmC 区冲缓令命 � 。 �点数小带�HF6 或�点数小带不�HE6 为据数型字的 H 母字写大如例。pd 应对 BSL�a 应对 BSM�段 pd,f,e,d,c,b,a 的管码数应对别分位个 8 的 器存寄个每 。容内示显的管码数个 8 应对接直值取的器存寄个 8 这 7maRpD�0maRpD �H71�H01�址地�7maRpD�0maRpD 区冲缓示显 �
电子科技大学微机实验报告-实验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)
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
2023年微机实验报告完整版
《微机试验》汇报试验名称 KeilC旳使用与汇编语言上机操作指导教师刘小英专业班级中法1201 姓名肖洋学号 U 联络一、任务规定1.掌握KeilC环境旳使用1)字节拆分、合并:调试e421.asm程序,观测有关寄存器和单元旳内容。
2)数据块填充:调试fill.asm程序,观测有关寄存器和单元旳内容。
2. 编写两个十六位数旳加法程序。
有两个十六位无符号数,分别寄存在从20H和30H开始旳数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
二、设计思绪1.字节拆分、合并程序:运用汇编语言中旳 XCHD 和 SWAP 两个语句来实现将八位二进制数拆分为两个四位二进制数并分别存储于不一样旳存储空间旳功能,BCD 码与 30H 相或(加上 30H)得到 ASCII 码。
将两个 ASCII 码和 0FH 相与(高四位清零)得到 BCD 码,运用 SWAP 语句将高位数放至高四位,将高位数和低位数相或可实现字节旳合并。
2.数据块填充程序:将 R0 用作计数器,DPTR 用作片外数据指针,A 作为原始数据来源,依次序在片外旳存储单元内容填充数据。
运用循环语句来减少程序长度,并控制填充单元个数为片外 100H 个。
(通过 R0 旳进位控制)3.两个十六位数加法程序:把第一种十六位无符号数旳地八位和高八位分别存于 20H 和21H 中,把第二个十六位无符号数旳地八位和高八位分别存于 30H 和 31H 中,对 20H 和30H 中旳两个低八位进行 ADD 加法操作,成果存于 R4 中;然后对 21H 和 31H 中旳两个高八位进行 ADDC 带进位旳加法操作,成果存于 R3 中.然后将累加器 A 清零,并和#00H 进行 ADDC 带进位旳加法操作,成果产生进位数并存于 R2 中,程序结束。
三、资源分派1. 字节拆分、合并程序:片内 30H 单位寄存原 BCD 码,31H 和 32H 寄存拆分后旳两个 ASCII 码,33H 寄存合并后旳 BCD 码。
微机实验 交通灯实验报告
微机实验交通灯实验报告微机实验交通灯实验报告引言交通灯作为城市交通管理的重要组成部分,对于保障交通安全和顺畅起着至关重要的作用。
本次实验旨在通过微机控制,模拟交通灯的工作原理,并实现交通灯的自动控制。
一、实验目的本次实验的主要目的是通过搭建一套微机控制系统,实现交通灯的自动控制,并通过实验验证交通灯在不同道路情况下的工作原理和效果。
二、实验原理1. 交通灯的工作原理交通灯通常由红、黄、绿三个信号灯组成。
红灯表示停止,黄灯表示准备,绿灯表示可以通行。
交通灯通过不同颜色的灯光变化,指示车辆和行人何时可以通行,以保障交通的有序进行。
2. 微机控制系统微机控制系统是利用计算机和相应的软硬件实现对设备、机器等的控制和管理。
在交通灯实验中,我们可以通过编程控制计算机输出不同的信号,从而实现交通灯的自动控制。
三、实验器材和步骤1. 实验器材- 微机控制系统:包括计算机、编程软件和控制接口等。
- 交通灯模型:模拟真实的交通灯,包括红、黄、绿三个信号灯。
2. 实验步骤- 连接交通灯模型和微机控制系统。
- 编写程序,设置交通灯的工作时间和信号灯变化规律。
- 运行程序,观察交通灯的工作状态和变化过程。
四、实验结果和分析通过实验,我们成功地实现了交通灯的自动控制。
在程序中,我们设置了红灯亮10秒,黄灯亮3秒,绿灯亮15秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
