文档库 最新最全的文档下载
当前位置:文档库 › 电气院单片机实验

电气院单片机实验

电气院单片机实验
电气院单片机实验

实验1 P1口实验

一、实验目的:

1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。

四、实验原理:

P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。

可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。

再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。现要写一个延时0.1s的程序,可大致写出如下:

MOV R7,#X (1)

DEL1:MOV R6,#200 (2)

DEL2:DJNZ R6,DEL2 (3)

DJNZ R7,DEL1 (4)

上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10?

指令(1)指令(2)指令(3)指令(4)

所需时间所需时间所需时间所需时间

X=(0.1××10?-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH

经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。

五、实验原理图:

P1口输出实验

P1口输入实验

六、实验步骤:

执行程序1(T1_1.ASM)时:P1.0~P1.7接发光二极管L1~L8。

执行程序2(T1_2.ASM)时:P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。

七、程序框图:

循环点亮发光二极管

通过发光二极管将P1口的状态显示

实验2 简单I/O口扩展实验

——交通灯控制实验

一、实验目的:

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的实现方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。

四、实验原理:

要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。

五、实验原理图

六、实验步骤:

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.

运行实验程序,观察LED显示情况是否与实验内容相符。

七、程序框图:

实验3 中断实验

———有急救车的交通灯控制实验

一、实验目的:

1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

在实验二的内容的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。

四、实验原理:

交通灯的燃灭规律见实验二。

本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:

MOV A,#0F0H (0)

MOVX @R1,A (1)

MOV SAVE,A (2)

程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。

五、实验原理图:(同实验二)

六、实验步骤:

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。单脉冲输出端P-接CPU板上的INT0。

七、程序框图:主程序框图中断程序框图

实验4 定时器实验

———循环彩灯实验

一、实验目的:

1.学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编写方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验原理:

1.定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。

时间常数可按下述方法确定:

机器周期=12÷晶振频率=12/(6×10?)=2us

设计数初值为X,则(2e+16-X)×2×10-6=0.1,可求得X=15535

化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH

2.初始化程序

包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行

正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。

3.设计中断服务程序和主程序

中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。

四、实验题目

由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。

五、实验电路:

六、实验步骤:

P1.0~P1.7分别接发光二极管L1~L8即可。

七、程序框图:T6.ASM

主程序框图中断程序框图

实验5 8255A可编程并行接口实验

一、实验目的:

1.了解8255A芯片的结构及编程方法。

2.掌握通过8255A并行口读取开关数据的方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验原理:

设置好8255A各端口的工作模式。实验中应当使三个端口都工作于方式0,并使A口为输出口,B 口为输入口。

四、实验内容:

利用8255A可编程并行接口芯片,读取开关状态,并将此状态通过发光二极管显示出来。实验可用B通道作为开关量输入口,A通道作为显示输出口。

五、实验电路:

六、实验步骤:

8255A的PA0~PA7接发光二极管L1~L8;PB0~PB7接开关K1~K8;片选信号8255CS接CS0。

七、程序框图:

实验6 数码显示实验

一、实验目的:

1.进一步掌握定时器的使用和编程方法。

2.了解七段数码显示数字的原理。

3.掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验原理:

本试验采用动态显示。动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。将8031CPU 的P1口当作一个位锁存器使用,74LS273作为段锁存器。

四、实验题目

利用定时器1定时中断,控制电子钟走时,利用实验箱上的六个数码管显示分、秒,做成一个电子钟。显示格式为:分秒

定时时间常数计算方法为:

定时器1工作于方式1,晶振频率为6MHZ,故预置值Tx为:

(2e+16-Tx)x12x1/(6x10e+6)=0.1s

Tx=15535D=3CAFH,故TH1=3CH,TL1=AFH

五、实验电路:

六、实验接线:

将P1口的P1.0~P1.5与数码管的输入LED1~LED6相连,74LS273的O0~O7与LED-A~LED-Dp相连,片选信号CS273与CS0相连。去掉短路子连接。

七、程序框图:T9.ASM

实验7 A/D转换实验

一、实验目的:

1.掌握A/D转换与单片机的接口方法。

2.了解A/D芯片ADC0809转换性能及编程方法。

3.通过实验了解单片机如何进行数据采集。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。

四、实验原理:

A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用的ADC0809属第二类,是八位A/D转换器。每采集一次需100us。

ADC0809 START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令: MOV DPTR,#PORT

MOVX @DPTR,A

A中为何内容并不重要,这是一次虚拟写。

在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。在中断处理程序中,使用如下指令即可读取A/D转换的结果:

MOV DPTR,#PORT

MOVX A,@DPTR

五、实验电路:

六、实验步骤:

1.0809的片选信号CS0809接CS0。

2.电位器的输出信号AN0接0809的ADIN0。

3.EOC接CPU板的INT0.

八、程序框图:T15.ASM

主程序中断服务程序

单片机控制继电器电路

单片机控制继电器电路 毕业论文 题目:单片机制作控制继电器的电路 目录 毕业论文 引言??????????????????????????????????????????????1 摘要??????????????????????????????????????????????2 第1章、硬件部分结构功能简介:?????????????????????2 1.1单片机介绍????????????????????????????????????3 1.2 AT89S51单片机的主要性能参数和主要引脚????????3 1.3、继电器介绍???????????????????????????????????6 第2章、原理图????????????????????????????????????7 第3章、系统设计预期目标:?????????????????????????9 第4章、工作原理:?????????????????????????????????9 第5章、下面是我总结的制板“八步走”???????????????10 第6章、制板中容易出现的问 题 :????????????????????11 第7章、本设计的C语言程序:???????????????????????11 第8章、总结??????????????????????????????????????13 第9章、答谢词????????????????????????????????????14 参考文献??????????????????????????????????????????14 引言 现代自动控制设备中,都存在一个电子电路一电气电路的互相连接问题,一方面要是电子电路的控制信号能够控制电器电路的执行元件(电动机、电磁铁、电灯

单片机实验讲义

实验一流水灯 实验目的: 1、熟悉用单片机产生流水灯的效果; 2、掌握循环移位的工作原理和操作方法; 3、学会使用C51 封装好的函数库C51LIB,延时函数的时间估算。 实验仪器: 电脑,TX-1C单片机实验板,万用表USB-232线,USB线。 实验原理: 实验内容: P1.0~P1.8对于Led1~Led8八个发光二极管,要求来回循环点亮,停顿时间为0.5秒。显示效果如下: Led1 Led2 Led3 Led4 Led5 Led6 Led7 Led8 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 暗暗暗暗亮暗暗暗 暗暗暗暗暗亮暗暗 暗暗暗暗暗暗亮暗 暗暗暗暗暗暗暗亮 亮暗暗暗暗暗暗暗 暗亮暗暗暗暗暗暗 暗暗亮暗暗暗暗暗 暗暗暗亮暗暗暗暗 ………………………………………………………… 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:编写3/4/5/6/7个灯循环点亮的程序。

实验二利用定时器控制数码管的显示 实验目的: 1、学会利用单片机的定时器; 2、熟悉数码管显示原理; 3、了解蜂鸣器发声原理。 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。实验原理: 2、记录实验现象。

实验三矩阵键盘检测 实验目的: 1、学会矩阵键盘的检测 2、掌握数码管静态显示原理 实验仪器: 电脑,TX-1C单片机实验板,万用表,USB-232线,USB线。 实验原理: 静态数码管显示原理:本开发板数码管为共阴极,所以要想点亮数码管,则给阳极加高电平。 实验内容: 依次按下4*4 矩阵键盘上从第1 到第12个键,同时在六位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B。 实验步骤: 1、编程,调试,下载; 2、记录实验现象; 3、举一反三:第13个键到第16个键C、D、E、F。

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始

不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对

单片机控制继电器实验

$%&'

驱动原理: 1、当AT89S51单片机的P3.6引脚输出低电平时,三极管T5饱和导通,+5V 电源加到继电器线圈两端,继电器吸合,同时状态指示的发光二极管也点亮,继电器的常开触点闭合,相当于开关闭合。 2、当AT89S51单片机的P3.6引脚输出高电平时,三极管T5截止,继电器线圈两端没有电位差,继电器衔铁释放,同时状态指示的发光二极管也熄灭,继电器的常开触点释放,相当于开关断开。注:在三极管截止的瞬间,由于线圈中的电流不能突变为零,继电器线圈两端会产生一个较高电压的感应电动势,线圈产生的感应电动势则可以通过二极管IN4148释放,从而保护了三极管免被击穿,也消除了感应电动势对其他电路的干扰,这就是二极管D1的保护作用。 二、继电器驱动程序 下面给出了一个简单的继电器控制实验源程序,控制继电器不停地吸合、释放动作,程序很简单。 图 2 注: 上面图中所示,CN2的1、2、3为继电器输出接线端子,其中1接到继电器的常开接点,2接到继电器的动接点,3接到继电器的常闭接点。当继电器吸合的时候,1-2将接通,相当于开关闭合。因此我们就可以在端子1-2上接线来控制其他电路了。 程序流程图 继电器控制ASM 源程序: ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H START: MOV SP,#50H ;SP 初始化 MOV P3,#0FFH ;端口初始化 MAIN: CLR P3.6 ;P3.6输出低电平,继电器吸合 ACALL DELAY ;延时保持一段时间 SETB P3.6 ;P3.6输出高电平,继电器释放 ACALL DELAY ;延时保持一段时间 AJMP MAIN ;返回重复循环 DELAY: MOV R1,#20 ;延时子程序 Y1: MOV R2,#100 Y2: MOV R3,#228 DJNZ R3,$ DJNZ R2,Y2 DJNZ R1,Y1 RET ;延时子程序返回

单片机实验讲义

单片机实验讲义

DVCC单片机实验系统简介 本科目实验使用的平台为启东公司的DVCC-52JH单片机仿真实验仪(带有配套试验软件)。可基本满足MCS-51(80C51)系列单片机课程(本/专科)的实验要求。 实验平台资源: 1、AT89C52单片机(6MHz晶体振荡器、256B片内RAM、8KB程 序存储器(FLASH)、3个定时/计数器、6个中断源(T2))。2、实验平台带有总线扩展有64BK片外RAM,用户可使用范围 0000H~0FEFFH;64KB片外ROM,用户可使用范围

0000H~0FEFFH。 3、实验平台的主要芯片有:1片8255可编程通用并行界面芯片、1 片8155芯片、1片译码芯片74138、1片74393芯片、1片D/A 转换芯片0832、1片A/D转换芯片0809、2片串/并转换芯片74164、若干辅助芯片74240、74373等和常用逻辑门电路芯片。 4、实验平台上的主要外设包括:K1~K10滑动开关、L1~L12发光二 极管(有3种颜色)、2个LED七段数码管、1个单脉冲发生器、1个时钟频率选择器、1个步进电机(带驱动电路)、1个直流电机(带驱动电路)、2个电位器、1个继电器、1个扬声器驱动、1个双踪模拟示波器、带有总线扩展区、带有EPROM烧录区。 实验系统的使用步骤: 1、在计算机、实验仪关闭时,使用实验平台自带的RS-232通用串口 线连接计算机的COM口和实验箱的J2串行口。

2、启动计算机,运行“DVCC52JH实验系统”。 3、在计算机上编写并调试实验程序,在实验箱中联接实验所需连线。 4、打开试验箱电源,点击实验箱上的“复位”按钮,再点击实验箱 上键盘区的“PCDBG”按钮。 5、在计算机上的“DVCC实验系统”软件中,左键单击工具栏上的 “联接”按钮(或选择“动态调试”菜单下的“联接DVCC实验系统选项”)。 6、如果联接正常将弹出若干小窗口。如果联接失败重新执行步骤3、 4。 7、在计算机上的“DVCC实验系统”软件中,选择“编译”菜单下 的“编译连接并传送”选项,将实验程序传送到实验箱。 8、在计算机上的“DVCC实验系统”软件中,左键单击工具栏中的 “运行”按钮,设置PC起始地址,观察实验现象,验证实验结果。 9、实验结束后关闭实验箱电源和计算机,拔下连线,收起实验箱并 放回原处。 软件实验 实验一清零实验 一、实验目的:

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

dickus单片机实验

数据传送实验 实验项目类型:设计型 实验时间:2012.10.15 一、实验目的 1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉Keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 二、设计要求 1、编写程序将00H~0FH 16个数据分别送到单片机内部RAM 30H~3FH单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编写程序将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。 三、实验程序流程框图和程序清单。

流程图 程序一程序二 程序三程序四程序五 程序清单 ORG 0000H MAIN: MOV R0, #30H MOV A, #00H

T1: MOV @R0, A INC R0 INC A CJNE A, #10H, T1 MOV R0, #3FH MOV R2, #10H MOV R1, #4FH T2: MOV A, @R0 MOV @R1, A DEC R0 DEC R1 DJNZ R2, T2 MOV R2, #10H MOV R1, #4FH MOV DPTR, #480FH T3: MOV A, @R1 MOVX @DPTR, A DEC R1 DEC A MOV DPL, A DJNZ R2, T3 MOV DPL, #00H MOV R2, #10H T4: MOV DPH, #48H MOVX A, @DPTR MOV DPH, #58H MOVX @DPTR, A INC DPTR DJNZ R2, T4 MOV R0, #50H MOV DPTR, #5800H MOV R2, #10H T5: MOVX A, @DPTR MOV @R0, A INC R0 INC A MOV DPL, A

单片机实验报告

实验报告 专业:计算机科学与技术班级:C093 姓名:孙丽君 学号:098677

实验一:数据传送实验 1.实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—A FH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV@R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H

MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 3.实验结果: 4. CPU 对8031内部RAM存储器有哪些寻址方式? 答:直接寻址,寄存器寻址,寄存器间接寻址,位寻址。

5. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH内容:A0~AF 内部RAM 50H~5FH内容:A0~AF 实验二多字节十进制加法实验 1.实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG0000H RESET: AJMP MAIN ORG0100H MAIN: MOV SP, #60H MOV R0, #31H MOV@R0, #22H DEC R0 MOV@R0, #33H

51单片机控制继电器

(51单片机系列)用单片机控制继电器 2008-01-13 22:10 首先看看继电器的驱动 这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图 为什么要明白这个图的原理? 单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA 级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.这个很重要,因为,一直让我们的电气工程师(我指的是那些没有学习过相应的电子技术的)感到迷惑不解的是:一个小小的芯片,怎么会有如此强大的威力来控制像电动机这样强大的东西? 怎么样理解这个电路图? 要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题: 首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢? 简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用. 首先把三极管想成一个水龙头.

上面的Vcc就是水池,继电器是一个水轮机,下面的GND是比水池低的任何一点.刚才说过,三极管就是水龙头,它的把手就是那个带有电阻的引脚. 现在,单片机的某一个需要控制这个继电器电路的输出引脚就是一只"手",当单片机的这个引脚输出低电平的时候,就像"手"在打开三极管"水龙头",水就从上往下流,继电器"水轮机"就开始转起来了.反之,如果是输出高电平,"手"就开始关"水龙头",继电器"水轮机"因为没有水流下来,就会停止. 这就是三极管的开关作用. 简单的理解和记忆就是:三极管是一个开关器件,其实你真的可以将它看成是一个开关,只不过它不是用手来控制,而是用电压(电流)来控制的,因此,三极管有些时候也被称做电子开关(与机械开关相区别). 图上还有一个东西,是保护二极管,如果不需要深入理解的话,你大可不必追就为什么有它存在,但是一定得记住,只要是用三极管驱动继电器的场合,一般都有它的存在.需要特别注意的是它的接法:并联在继电器两端阴极一定是接Vcc 【电子制作实验室--转】 https://www.wendangku.net/doc/60421987.html,/DJS.htm 这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是 独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应 引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7。正常情况 下单片机的P3.6、P3.7都被程序初始化时置“1” 当有按键按下时对 应的单片机引脚被按钮开关下拉为“0”,这种方法比较直观,而且比

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

基于单片机的继电器控制..

目录 0 前言 (1) 1 总体方案设计 (1) 2 硬件电路设计 (2) 2.1单片机系统 (2) 2.1.1 晶振时钟电路 (2) 2.1.2 复位电路 (3) 2.2电流驱动系统 (3) 2.3发光二极管演示系统 (5) 2.4独立键盘系统 (5) 3 软件设计 (6) 3.1软件执行过程 (6) 3.2子程序模块 (6) 4 调试分析 (8) 5 结论及进一步设想 (9) 参考文献 (9) 课设体会 (10) 附录1 电路原理图 (11) 附录2 程序清单 (12)

基于单片机的继电器控制系统设计 胡启洋沈阳航空航天大学自动化学院 摘要:本文设计了一种基于单片机的继电器控制系统,由单片机、继电器、驱动电路、发光二极管、独立键盘等部分组成,主要使用了单片机开发板上STC公司生产的89C54RD+型号单片机及其最小系统、ULN2003A达林顿管驱动芯片、JQC-3F-05VDC-1ZS 型号继电器、四个发光二极管,运用定时器精准定时对继电器开关进行控制,并在继电器输出端使用发光二极管显示。在以上基础上,实现了8路继电器的循环控制功能。 关键词:单片机;继电器;驱动电路。 0 前言 继电器是当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。它可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。继电器具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等。 电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸合的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用下返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,可以这样来区分:继电器线圈为通电时处于断开状态的静触点,成为“常开触点”;处于接通状态的静触点称为“常闭触点”。 1 总体方案设计 针对本课题的设计任务,进行分析得到:本次设计通过单片机I/O口输出高低电平控制继电器的输入端,采用ULN2003A型号的达林顿管驱动芯片加大输入电流,使用内部定时器中断进行精准计时,实现继电器通断时间分别为1秒、2秒的精准控制,并实现通过继电器进行八路发光二级管循环1秒的控制。 该继电器控制系统的设计,在总体上大致可分为以下几个部分组成:1.单片机及其最小系统电路,为了使单片机正常工作,需要加入晶振电路,为了使单片机方便使用,需要

单片机原理实验指导书(2012.10)

《单片机原理》实验指导书 计算机科学与技术系2012年8月

目录 第一部分单片机仿真实验 (1) 实验一:流水灯实验 (1) 实验二:中断实验 (4) 实验三:定时器中断实验 (6) 实验四:串行口实验 (9) 实验五:矩阵式键盘输入识别 (13) 实验六:LCD循环显示设计 (19) 第二部分单片机硬件实验............................错误!未定义书签。第一章试验箱系统概述 ...................................错误!未定义书签。 一、系统地址分配........................................... 错误!未定义书签。 二、系统接口定义........................................... 错误!未定义书签。 三、通用电路简介........................................... 错误!未定义书签。第二章实验指导...............................................错误!未定义书签。实验七P1口亮灯和P1口加法器实验........... 错误!未定义书签。实验八简单I/O口扩展(选作).................. 错误!未定义书签。实验九8255控制交通灯................................ 错误!未定义书签。实验十128*64LCD液晶显示 .......................... 错误!未定义书签。

第一部分单片机仿真实验 实验一:流水灯实验 一、实验目的: 通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。 二、实验原理图 实验参考电路图如下: 三、参考实验程序 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成:1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

单片机实验报告

单片机实验报告 【实验一】 一、实验名称 KEIL基本汇编语言测试 二、实验内容 1.建立KEIL工程。添加汇编程序 2.实现将R0的内容送R6,R0的初值设置为38H。

3.实现R1里的数据52H,和R3里的数据1DH相加功能。

上面结果相加后存储到A中,值为6FH 4.数据传送程序编写,把片内RAM的40H-4FH的16个字节的内容传送到片外RAM的 2000H单元开始的位置处。40H-4FH的内容在RAM里随机手动设置(我这里设置的是07,09) 5.发挥题,将上题40H-4FH的内容程序设置为100-115,并实现传输功能。

三、实验总结 1.初步实现了keil软件的应用,从程序的建立到编译再调试,从中领悟到了许多的困惑, 但后来自己也慢慢理解了 2.在第二题中,是将两个数相加,在这个过程中必须要借助累加器,不能直接相加,最 后的结果存放在A存储器中 3.在第三道题中,分别自己手动设置值存放在以2000H开始的16个字节单元中,在学 习过程中要认真的思考和观察,memory的变化 在循环体LOOP中,首先是将最开始40H放入R0中的值再传送到A中,然后又传送到指针指向的位置,传送数据的部分就是这样;然后又用INC R0和INC DPTR 分别将地址向后移一个,为下一个地址的传送做准; DJNZ R2,LOOP 计数减少循环,直至结束; SJMP $ 跳转到循环体LOPP的开始位置,再次循环。 【实验二】 一、实验名称 中断应用C51程序设计 二、实验内容 1.设计一个脉冲计数器,脉冲信号通过开关产生,能对脉冲的个数准确计数,数码管译 码代码参考程序已给出。(掌握外部中断计数器相关寄存器的设置应用!) 程序运行初态为100开始,按下计数就加1,按下清零则恢复为0

用单片机驱动电磁式继电器的方法

在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执行元件,如电动机、电磁铁、电灯等;另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全,电磁式继电器便能完成这一桥梁作用。 电磁继电器是在在输入电路电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。 它包括直流电磁继电器、交流电磁继电器、磁保持继电器、极化继电器、舌簧继电器,节能功率继电器。 (1)直流电磁继电器:输入电路中的控制电流为直流的电磁继电器。 (2)交流电磁继电器:输入电路中的控制电流为交流的电磁继电器。 (3)磁保持继电器:将磁钢引入磁回路,继电器线圈断电后,继电器的衔铁仍能保持在线圈通电时的状态,具有两个稳定状态。 (4)极化继电器:状态改变取决于输入激励量极性的一种直流继电器。 (5)舌簧继电器:利用密封在管,具有触点簧片和衔铁磁路双重作用的舌簧的动作来开、闭或转换线路的继电器。 (6)节能功率继电器:输入电路中的控制电流为交流的电磁继电器,但它的电流大(一般30-100A),体积小, 节电功能. 电磁式继电器一般由控制线圈、铁芯、衔铁、触点簧片等组成,控制线圈和接点组之间是相互绝缘的,因此,能够为控制电路起到良好的电气隔离作用。当我们在继电器的线圈两头加上其线圈的额定的电压时,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的接通、切断的开关目的。 下面是一个小型信号继电器HK4100F-DC5V-SH的实物照片和主要技术参数。。。 HK4100F电磁继电器主要技术参数: 触点参数: 触点形式:1C(SPDT) 触点负载: 3A 220V AC/30V DC 阻抗:≤100mΩ 额定电流: 3A 电气寿命:≥10万次 机械寿命:≥1000万次 线圈参数: 阻值(士10%):120Ω 线圈功耗:0.2W

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

单片机导论实验讲义(章专)

第一章单片机软件实验 实验一内存操作 1.实验目的 ①掌握数据传送指令; ②掌握各种数据传送指令的寻址方式; ③熟练运用keil 环境对汇编程序进行调试; ④掌握数据传送、复制等程序的设计与调试方法。 2.预习要求 ①理解数据传送指令和循环指令的使用; ②理解如何对内部寄存器、内部RAM、外部RAM的读写; ③理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式; ④认真预习本实验内容,自行编写程序,填写实验报告。 3.实验设备 计算机1台; 4.基础型实验内容 ①下列程序的功能是给外部RAM8000~80FFH的256个单元的内容赋值,赋值的内 容取决于程序中A的赋值。在Keil环境运行该程序,并观察寄存器及内存单元的变化。 设置块起始地址 设置块长度 当前地址内容清零 地址加1 否 是否清除完? 是 结束 ORG 0000H START EQU 8000H MAIN: MOV DPTR, #START ;起始地址 MOV R0,#0 ;设置256字节计数值 MOV A,#1H

Loop: MOVX @DPTR,A INC DPTR ;指向下一个地址 DJNZ R0,Loop ;计数值减1 NOP SJMP $ END ②下列程序将3000H起始的256个字节存储块移动到4000H起始的256个字节存储块, 在Keil环境运行如下程序,观察寄存器及存储单元的变化。 设置块的源地 设置块的目标地址 设置移动长度 从源地址取数 保存到目标地址 源地址加1 目标地址加1 是否移动完? 结束 ORG 0000H MOV DPTR,#3000H MOV A,#01H MOV R5,#O LOOP: MOVX @DPTR,A INC DPTR DJNZ R5,LOOP MOV R0,#30H MOV R1,#00H MOV R2,#40H MOV R3,#00H MOV R7,#0 LOOP1: MOV DPH,R0 MOV DPL,R1 MOVX A,@DPTR MOV DPH,R2

相关文档