B单片机实验指导

B单片机实验指导
B单片机实验指导

B单片机实验指导Prepared on 21 November 2021

目录

第一章 51CPU系统部分原理及仿真器使用说明

第二章实验指导第一部分软件编程基础实

验 (1)

第二部分硬件基础接口应用实验.......................................... .. (10)

第一章 51系统部分及仿真器使用说明

一、51CPU系统部分的组成

51CPU系统部分由仿真电路、上电复位电路、用户晶振插座、低位地址锁存器

74LS373、地址译码器74LS138、存储器电路、电源开关和指示电路、仿真插座、全部总线(P0口作数据总线D0~D7、P1口、P2口作高位地址总线A8~

A15、P3口) 引出插孔和排线引出等组成。实验程序可以在线下载、在线调试。

二、51CPU系统部分接口介绍

1、在CPU仿真区里的JFZ:连接51仿真器的专用插座。使用时插上51仿真器。

2、在CPU仿真区里的FZ1:接插51CPU芯片STC89C51,在仿真完成后,关闭电源,取下仿真器,在FZ1位置插上51CPU芯片STC89C51,用导线将和RS232通信区域的RXD_232相连, 将和RS232通信区域的TXD_232相连,运行软件,即进入在线下载烧录,下载烧录完成自动进入连续运行状态(下面相关章节里有详细介绍)。

3、在51仿真区里的 JR:在外接仿真器时,JR上跳线连右边两脚。

三、51单片机仿真部分使用说明

系统专配的仿真器是一个支持keil c51设计软件的软件断点仿真机。该仿真器使用一片SST89C58单片机和一片AT90S8515单片机来实现仿真功能(主CPU 和用户CPU),两片CPU之间通过一根I/O引脚通讯(通讯速率在33兆晶振时约100KBPS),主CPU负责跟keil c51通讯,用户CPU只跟主CPU通讯,仿真器结构框图如下:

A、仿真器主要功能和特性

1、支持串口的仿真功能

2、串口中断用户可以使用

3、不占用定时器2

4、完全仿真p0,p2口

5、支持89C52等嵌入式CPU仿真

6、占用用户堆栈2个字节

7、占用1条 I/O :

8、ISP 在线编程,在线下载

9、仿真频率最高33兆

10、支持同时最多10个断点

11、支持单步,断点,全速运行

12、支持汇编,c语言,混合调试

13、支持KEIL C51的IDE开发仿真环境UV1 UV2

14、单步执行时间(60毫秒)

15、程序代码载入(可以重复装载,无需预先擦除用户程序空间)

16、SFR读取速度(128个)200毫秒

17、跟踪记录(trace record)256条

18、可以仿真标准的89c51,89c52,89c58等51内核的单片机。

B、仿真器的使用

1、仿真机的连接

1)将随机配备的专用仿真器按标志字符向上的方向插到51CPU仿真区的JFZ位置;

2)仿真器上的8位开关1和8在ON位置,其余在OFF位置。

2、随机携带的光盘主要内容介绍

1)KEIL C:仿真调试软件

2)实训程序:已调试通过的实训程序

3)USB: USB接口器件CH375驱动程序

4)串行口调试助手:调试串行通信程序十用的辅助软件

5)USB_DRV: KEIL C51 仿真器USB接口器件CH340驱动程序

6) DVSIO:PC机上串口发送程序

7): STC系列单片机下载烧录安装软件

3、软件的安装

将随机光盘里的内容全部拷贝到电脑中自己建立的目录中即可使用

4、使用USB接口的仿真器特别说明

1)先运行程序,以安装USB驱动;

2)打开电源;

3)将随机配备的USB通信线一头连仿真器,另一头连电脑;

4)电脑显示找到新设备,让系统自己找驱动并且安装。

5)安装完成后,到控制面板->系统->硬件->设备管理器->端口里面确认一下USB转串口的COM端口号,以备在KEIL C软件中做相应的设置。

5、Keil C 软件的使用

1)设置Keil C51仿真机的工作参数

这里拿keil c51 来说明(keil c51 ,,的设置跟是一样的)。.

打开一个工程文件。如果你没有工程文件就要先建立一个。这里拿keil c51提供的为例子说明。

(1)用鼠标点击菜单的project,选择open project。如图:

(2)选择keil\c51\examples\hello\hello,点击打开,如图:

’,如图:

(3)选择菜单的Project->Option for Target‘Simulator

():选择C51栏的设置如图:

删掉define:里的MONITOR51这几个字母,如果define栏是空的,可以跳过这一步:

删掉MONTOR51之后的设置如下图,不要点击确定,

因为还要进行其他设置:

附注:()的步骤是调试keil提供的这个Hello工程才需要做的,你自己建立的工程不需要这个设置,你自己的工程可以跳过这步,直接进行下一个设置。在这里用斜体来写这个说明,需要引起用户注意,一些用户买回仿真机之后,然后说调试到第二步就死机了,把仿真机退回换一个新的,结果还是这样,检查了退回的仿真机,仿真机没有问题.而是忽略了要做这一步的设置。

(4)选择debug栏的设置项目:

Use: Keil Monitor-51 Driver 。

Load Application at Start:选择这项之后,keil才会自动装载你的程序代码。

Go till main:调试c语言程序时可以选择这一项,pc会自动运行到main 程序处。

(5)点击上图的Settings,打开新的窗口:

Port:设置你的串口号,在“使用USB接口的仿真器特别说明”中的第四点里确认的

串口号。

Baudrate:设置为57600,仿真机固定使用57600bps跟keil通讯。

Serial Interrupt:选中它。

Cache Options: 可以选也可以不选,推荐选它,这样仿真机会运行的快一点。

最后点击ok后确定,再关闭你的设置窗口。

(6)编译你的程序,选择Project -> Rebuild all target files

(7)编译完毕之后,选择Debug->Start/Stop Debug Session,就进入仿真

了。

(8)装载代码之后,在左下角显示如图:

Connected to Monitor-51

表示连接到仿真机,仿真机的版本号为。

Load "C:\\Keil\\C51\EXAMPLES\\HELLO\\HELLO"

表示代码装载成功。

(9)其他的调试方法跟软件仿真是一样的。

注意:8X51单片机口的使用

由于监控系统要使用来进行通讯,最好不要使用。如果使用,可能会影响该引脚的状态。对监控系统是没有影响的,可以用来做输出。

四、STC系列单片机下载烧录说明

在使用USB仿真器调试完实训程序后,脱离仿真器运行自己的实训程序,方法如下:

1) 关闭电源,取下仿真器;

2) 在FZ1位置插上51CPU芯片STC89C51;

3)用导线将和RS232通信区域的RXD_232相连, 将和RS232通信区域的TXD_232相连;随机配备的RS232通信线一头插到电脑的串口上,另一头插到

RS232通信区域的9芯座RS232/485,并将该区域的一小卧式开关拨到串口位

置;

4)运行目录中的程序,即进入在线下载烧录界面;

5)在步骤1中选择单片机型号,步骤2中选择要烧录的程序,步骤3中选择串口号(你串口线插在电脑的哪个串口上就选那个号,注意不要和其它设备冲突,你可以到控制面板->系统->硬件->设备管理器->端口里面查看一下);

6)进入下载软件的步骤5,进行下载;

7) 打开实训箱电源;观察下载过程,下载完成自动进入刚下载程序的运行状态。

第二章实验指导

第一部分软件编程基础实验

实验目的:掌握汇编语言指令和设计、调试方法。

实验一清零实验把7000H~70FFH的内容清零。源程序,运行程序后用

存贮器读写方法检查7000H~70FFH中的内容应全是00H。

实验二拆字实验把7000H的内容拆开,高位送7001H低位,低位送7002H低位。7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。源程序,运行前先在7000H单元置34H,运行程序后用存贮器读写方法检查7001H~7002H中的内容应为是03H和04H。

实验三拼字实验把7000H、7001H的低位相拼后送入7002H,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。源程序,运行前先在7001H单元置03H,7002H单元置04H,运行程序后用存贮器读写方法检查7002H中的内容

应为是34H。

实验四数据传送实验把(R2、R3)源RAM区首址内的(R6、R7)个字节数据,传送到(R4、R5)目的RAM区。源程序。运行前先在在R2、R3中装入源首址〈例

如6000H〉,R4、R5中装入目的地址〈例如7000H〉,R6、R7中装入字节数

〈0FFFH〉,并且在源首址〈例如6000H〉中置标志性的数据如55H、AAH等,运行程序后用存贮器读写方法检查7000H开始的内容应和6000H开始的内容一样。

实验五数据排序实验用冒泡法将单片机内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。源程序,运行前先用寄存器读写方法把单片机片内RAM区50H—5AH中放入不等的数据(用寄存器读写方法),运行程

序后用寄存器读写方法检查50—5AH中内容应从小到大排列。

实验六无符号双字节快速乘法编程实验将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中。源程序,运行前先在7000H—7001H中存放无符

号整数000AH作为被乘数,7002H—7003H中存放乘数0019H。运行程序后用存贮器读写方法检查

两个数的乘积7004—7007单元中的内容应为000000FAH。

第二部分硬件基础接口应用实验

实验一单片机I/O口应用实验_口输入 P1口输出

一、实验目的

1、掌握单片机P3口、P1口简单使用。

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

二、实验内容

1、口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。

2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16

进制加一的方式点亮发光二极管。

三、实验说明

1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由

准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使

内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输

入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入

的数据不正确。

2、延时子程序的延时计算。

对于延时的程序

DELAY :MOV R6,#00H

DELAY1:MOV R7,#80H

DJNZ R7,$

DJNZ R6,DELAY1

查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ ,所以该段指令执行时间为:

(((128+1)×256)+1)×2×(12÷6000000)=。

四、实验原理图

图(1-1)

五、 实验程序框图

真的为高吗

为低吗

开 始 为高吗 延 时

延 时 A+1送P1口 循 环

N N N Y

Y

Y

主程序:

图(1-2)

N

N

Y R6设初值FFH

延时子程R7设初值FFH

R7-1=0否 R6-1=0否

返 回

Y 图(1-

六、实验步骤

1、用插针连至K1,JU2(~)用8芯线连至JL(L0~L7)。

2、调试、运行程序test1中的。

3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。

实验二单片机I/O口应用实验_工业顺序控制

一、实验目的

掌握工业顺序控制程序的简单编写和中断的使用。

二、实验预备知识

在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

三、实验内容

8031的~控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,为开工启动开关,低电平启动。为外故障输入模拟开关,为0时不断告警,为报警声音输出。

四、实验说明

实验中用外部中断0,编中断服务程序的关键是:

1、保护进入中断时的状态,并在退出中断之前恢复进入中断前的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EX0位。

一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。

五、实验接线图

图(2-1)

六、 实验程序框图

恢复现

故障清除了吗

报 保护现关输中断服务子程序:

Y

N

图(2-

主程序: 开始 · · · 中断、P1口、P3口初始化 工序2延工序1延等开工 工序7延 · · · ·

图(2-

七、实验步骤

1、连K1,连K2,~分别连到L0~L6,连SIN(电子音响驱动控制区),

其卧式开关打在音乐上,短路片选择左边为蜂鸣器,下边为喇叭。

2、K1开关拨在上面,K2拨在上面。

3、调试、运行程序test2中的。

4、K1拨至下面(低电平),各道工序应正常运行。

5、K2拨至下面(低电平),应有声音报警(人为设置故障)。

6、K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。

八、思考

修改程序,使每道工序中有多位输出。

实验三并行I/O接口8255应用

一、实验目的

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

二、实验内容

用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB口输出显示。

三、实验说明

通过PA口接8个开关K1~K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显示,拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。

四、实验接线图

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7

10

RD 5WR 36A09A18RESET 35CS

6UB31

8255

D0D1D2D3D4D5D6D7RD WR A0A1RST

8255CS

PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7

RB314.7K

VCC

Y0

K1K2K3K4K5K6K7K8L0L1L2L3L4L5L6L7

图(3-1)

五、 实验程序框图

8255初始

置8255PA 口为低

读PA 口的值

将PA 口的值送PB 口显示

图(3-

六、实验步骤

1、8255 芯片的PA(PA0~PA7)插座用8芯线连接开关JK(K1~K8)。

2、8255 芯片的PB(PB0~PB7)连接发光二极管JL(L0~L7)。

3、8255芯片的片选8255CS插孔接译码输出Y0。

4、调试、运行程序test3中。拨动开关,相对应的发光二极管显示其状态。

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

一、实验目的

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

二、实验内容

MCS—51外部扩展空间很大,但数据总线口和控制信号的负载能力是有限的,若需要扩展的芯片较多,则MCS—51总线口负载过重,74LS244是一个输入扩展口,同时也是一个单向驱动器,以减轻总线负担。74LS273作为同向输出口,控制8个发光二极管的亮灭。

三、实验接线图

图(4-1)四、实验程序框图

五、实验步骤

1、74LS244的输入端PI0~PI7接JK(K1~K8),74LS273的输出端

OUT0~OUT7接JL(L0~L7), 244CS接Y2,273CS2接Y3。

2、调试、运行程序test4中的。

3、拨动K1~K8,观察L0~L7点亮情况。

实验五 A/D 转换实验

一、实验目的

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

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

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

二、实验内容

利用实验仪上的0809做A/ D转换实验,实验仪上的电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过显示接口芯片8279在七段数码管上显示。

西南科技大学单片机原理实实验四及代码

2.1 实验四中断实验 一、实验目的 加深对MCS-51单片机中断系统基础知识的理解。 二、实验设备 Keil C单片机程序开发软件。 Proteus仿真软件 DP51-PROC单片机综合实验仪。 三、实验内容和步骤 内容: 利用外部中断输入引脚(以中断方式)控制步进电机的转动。要求:每产生1次中断,步进电机只能步进1步。 实验程序: 使用INT0的中断服务程序控制步进电机正向步进;使用INT1中断服务程序控制步进电机反向步进。 设计思路: ①主程序在完成对INT0和INT1的设置后,可进入死循环(等待中断请求)。 ②为便于实验观察和操作,设INT0和INT1中断触发方式为边沿。 ③步进电机的转动控制由外部中断的服务程序来实现。 ④当前步进电机的相位通电状态信息可以使用片内RAM中的一个字节单元来存储。 设计参考: ①主程序需要设置的中断控制位如下: IT0和IT1 外部中断触发方式控制 0=电平 1=边沿(下降沿) EX0和EX1 外部中断允许控制0=屏蔽 1=允许 PX0和PX1 中断优先级级别控制0=低级 1=高级 在同级别(PX0=PX1)时INT0的优先级高于INT1 EA 中断允许总控制0=屏蔽 1=允 许 ②外部中断服务程序的入口地址: 0003H 外部中断0 0013H 外部中断1 预习: 1)编写好实验程序。 2)根据编写的程序和实验步骤的要求制定调试仿真的操作方案。

实验单元电路: 1) 步进电机驱动电路。 步进电机共有4相,当以A →B →C →D →A →B …的顺序依次通电时,电机就会正转,若按相反的顺序依次通电,电机就会反转。每顺序切换一相(1步),电机旋转18°,切换的频率决定电机的转速(切换的频率不能超过电机的最大响应频率)。根据图 2.4中的电路,当BA (插孔)输入为高时,对应的A 相通电。 2) SW 电路 开关SW X 拨在下方时,输出端SWX 输出低电平,开关SW X 拨在上方时,输出端SWX 输出高电平。其中SW1和SW3具备消除抖动电路,这样,SW1或SW3每上下拨动一次,输出端产生单一的正脉冲(上升沿在前,下降沿在后)。 3) LED 和KEY 电路 步骤: 1) 在S : \ STUDY \ Keil 文件夹中新建Ex04文件夹(该文件夹用于保存本次实验的所 有内容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S : \ STUDY \ Keil \ Ex04文件夹中。 2) 在Keil C 中创建一个新工程,新工程保存为S : \ STUDY \ Keil \ Ex04\Ex04.uv2,然 后选择单片机型号为Generic 中的8051。 图2.5 单脉冲电路原理图 +5V +5V 图2.4 步进电机驱动电路原理图 LED1 LED8 +5V 8 图2.6 LED 和KEY 电路 +5V 8

单片机实验指导书

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实 例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 .专业DOC.

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接 ]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下:

51单片机实例程100讲全集

目录 目录 (1) 函数的使用和熟悉 (4) 实例3:用单片机控制第一个灯亮 (4) 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4) 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (5) 实例6:使用P3口流水点亮8位LED (5) 实例7:通过对P3口地址的操作流水点亮8位LED (6) 实例8:用不同数据类型控制灯闪烁时间 (7) 实例9:用P0口、P1 口分别显示加法和减法运算结果 (8) 实例10:用P0、P1口显示乘法运算结果 (9) 实例11:用P1、P0口显示除法运算结果 (9) 实例12:用自增运算控制P0口8位LED流水花样 (10) 实例13:用P0口显示逻辑"与"运算结果 (10) 实例14:用P0口显示条件运算结果 (11) 实例15:用P0口显示按位"异或"运算结果 (11) 实例16:用P0显示左移运算结果 (11) 实例17:"万能逻辑电路"实验 (11) 实例18:用右移运算流水点亮P1口8位LED (12) 实例19:用if语句控制P0口8位LED的流水方向 (13) 实例20:用swtich语句的控制P0口8位LED的点亮状态 (13) 实例21:用for语句控制蜂鸣器鸣笛次数 (14) 实例22:用while语句控制LED (15) 实例23:用do-while语句控制P0口8位LED流水点亮 (16) 实例24:用字符型数组控制P0口8位LED流水点亮 (17) 实例25:用P0口显示字符串常量 (18) 实例26:用P0 口显示指针运算结果 (19) 实例27:用指针数组控制P0口8位LED流水点亮 (19) 实例28:用数组的指针控制P0 口8 位LED流水点亮 (20) 实例29:用P0 、P1口显示整型函数返回值 (21) 实例30:用有参函数控制P0口8位LED流水速度 (22) 实例31:用数组作函数参数控制流水花样 (22) 实例32:用指针作函数参数控制P0口8位LED流水点亮 (23) 实例33:用函数型指针控制P1口灯花样 (25) 实例34:用指针数组作为函数的参数显示多个字符串 (26) 实例35:字符函数ctype.h应用举例 (27) 实例36:内部函数intrins.h应用举例 (27) 实例37:标准函数stdlib.h应用举例 (28) 实例38:字符串函数string.h应用举例 (29) 实例39:宏定义应用举例2 (29) 实例40:宏定义应用举例2 (29) 实例41:宏定义应用举例3 (30)

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支

持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

51单片机新手入门实例详解

51单片机新手入门实例详解 1.硬件和软件准备 ●实验系统:EL89C单片机学习开发系统一套 ●电脑:具有标准串口的台式机或笔记本电脑,如果没有串口也可购 买一条USB转串口线代替 ●工具软件:Keil uVision2(用于编写和编译源程序、仿真调试); 光盘上非安装烧写软件,路径 \单片机EL89C\EL89C光盘\STC52单片机下载程序\stc-isp-v4.79-not-setup\STC_ISP_V483.exe (EL89C的编程控制烧写软件) 2.源程序编写和编译 EL89C的8个发光二极管负极通过限流电阻接入单片机的P1.0~P1.7端口,下面的范例程序可以使这8个发光二极管轮流点亮,形成流水灯效果。 我们使用的开发工具是Keil C51,是目前世界上最优秀、最强大的51单片机应用平台之一,它集编辑、编译、仿真调试于一体,支持汇编、C语言以及混合编程。同时具备功能强大的软件仿真和硬件仿真功能。 下面以一个简单的流水灯程序为例子来介绍Keil C51的使用方法: 2.1首先在硬盘上建立一个文件夹,命名为ledtest(当然可以是其他名字), 为方便程序的编写和调试,我们将调试过程中产生的文件都将放在这个目录中。 2.2启动Keil软件,点击菜单project,选择new project,然后选择你要保 存的路径,输入工程文件的名字,我们现在保存到刚才建立的ledtest目录中,工程文件命名为ledtest,然后点击保存。 2.3这时会弹出下面的对话框Select Device for Target,要求你为刚才的项 目选择一个CPU。我们选择Atmel的AT89C52,如图所示,选择AT89C52之后,右边一栏是对这个单片机的基本的说明,然后点击确定。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/f711893801.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/f711893801.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

单片机实验指导书

单片机实验指导书 适用专业:计算机控制、网络、物联网等 学时:12 编写人:孔庆臣 2016-5-12

实验一 IO口输入输出实验 1. 实验内容 (1) P2口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2) P1口做输入口,接八个扭子开关,P2口接八只发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。 2. 实验目的 学习keil仿真软件的使用方法 学习IO口的使用方法。 学习延时子程序的编写和使用。 stc-isp软件的使用 3.有关说明 P1口为准双向口,P1的每一位都能独立地定义为输入或输出线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。单片机IO口在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。 可以用第二个实验做一下实验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。 再来看一下延时程序的实现。通常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为11.0592MHZ,则一个时钟周期为0.0904us。现要写一个延时0.1s的程序,可大致写出如下: void Delay100ms() //@11.0592MHz { unsigned char i, j, k; i = 5; j = 52; k = 195; do { do { while (--k); } while (--j); } while (--i); } 5.实验电路设计 (1)分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。 (2)画出本次实验独立的原理图 5、实验要求 (1)完成实验电路设计 (2)完成实验程序设计 (3)实现要求的实验结果

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

51单片机流水灯实验报告

51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LED灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示: 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。 四、实验电路图

五、通过仿真实验正确性 代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1 DJNZ R1,DEL2 RET End 实验结果:

六、实验总结 这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。

51单片机C语言编程基础与实例

基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

单片机实验答案

前言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。 《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。 编者

实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。 2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。 3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

心率计51单片机代码.doc

#include "STC12C5A.h" #include "SMG.h" #define FSOC 24000000L #define T1MS (65536-FSOC/12/1000) sbit LED0 = P0^0; unsigned int count=0;计时标志数 unsigned int xinlv=0;心率计算器 unsigned char seg[10] = {0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; sbit HC595_RST = P0^6; sbit HC595_SCK = P0^4; sbit HC595_RCK = P0^5; sbit HC595_DAT = P0^7;

外部中断代码void Exti0_Init() { IT0 = 1; //下降沿触发 TCON.0=1 EX0 = 1; //开外部中断0 IE.0=1 EA = 1; //开总中断 } void Exit0_ISR() interrupt 0 { Xinlv++; LED0=0; delay_ms(2); LED0=1; } 定时器代码void Timer0_Init() { TMOD = 0x01; TR0 = 1; //16位定时器工作方式 TH0 = T1MS>>8; TL0 = T1MS; ET0 = 1; //打开定时器0中断 EA = 1; //打开总中断 } void Timer0_ISR() interrupt 1 { unsigned int temp; count++; TH0 = T1MS>>8; TL0 = T1MS; if(count=5000) temp=Xinlv; for{} SMG_Display(temp); }

单片机实验指导

(内部教材) 单片机实验指导书 周小波编 阜阳师范学院物理与电子科学学院电子信息科学与技术教研室

第一章系统概述 一、系统简介 MCS-51单片机实验板是物理与电子科学学院自主研发设计的单片机实验系统。板载一片51内核STC89C52单片机,整个实验系统由17个独立模块组成,各模块相互独立,给学生提供了更大的发挥空间。利用目前流行的Keil c51软件,进行软、硬件仿真开发调试。 二、各模块电路 (1)单片机最小系统模块 最小系统电路主要由STC89C52单片机、时钟电路、复位电路等构成,所有的IO口均引出。 (2)串口电平转换模块

串口电平转换电路主要由MAX232芯片以及相关外围电路构成,可以用来下载程序,以及作串口通信实验。 (3)数码管驱动模块 8位共阳极数码管采用8550(PNP)三极管驱动,模块预留位选端口和段选端口两排插针,根据需要可自行连接。 (4)LED发光二极管模块 板载8个发光二极管,J1为接线端口,可根据需要自行连接到单片机的IO 口或者其他外设上,PZ2为排阻,起限流作用。 (5)键盘模块 键盘电路由4各独立按键和4*4矩阵键盘构成,Pk2接口为独立键盘的接线端子,Pk1端口为矩阵键盘的接线端子。

(6)DA转换模块 DA转换电路采用8位DA芯片DAC0832,PDA端口为8位数据的输入端,11 脚为DAC0832输出端,发光二极管用于指示DA转换的结果。 (7)AD转换模块 AD转换电路由8位AD转换芯片ADC0804构成,通过调节VR1电位器可以改 变AD输入端的模拟电压。

(8)电机驱动模块 采用L298N模块作为电机驱动,可以驱动2个直流电机或1个步进电机, J5为信号输入端,输出端J6接直流电机或者步进电机。 (9)总线扩展模块 采用82C55芯片作为总线的扩展,采用一片锁存器74HC573,使P0口可以作 为地址和数据总线的复用端口。J9为82C55的控制总线接线端子,J10为82C55 的地址和数据接线端子,PA、PB、PC为82C55的输出端口,可以外接其他外设完 成相应的实验。

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. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

51单片机蜂鸣器奏乐实验汇编代码

LJMP START ORG 000BH INC 20H ;中断服务,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MUSIC1: NOP CLR A MOVC A,@A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5:NOP MOV R6,A INC DPTR MOV A,#0 MOVC A,@A+DPTR MOV R7,A SETB TR0 MUSIC2:NOP CPL P3.2 MOV A,R6 MOV R3,A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 MOV 20H,#00H INC DPTR LJMP MUSIC1 MUSIC3:NOP CLR TR0 MOV R2,#0DH

MOV R2,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 END0:NOP MOV R2,#0FFH MUSIC6:MOV R3,#00H LJMP MUSIC0 DEL:NOP DEL3:MOV R4,#02H DEL4:NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RET NOP DAT: DB 18H, 30H, 1CH, 10H DB 20H, 40H, 1CH, 10H DB 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H DB 1CH, 20H, 20H, 20H DB 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH, 20H DB 30H, 1CH, 10H , 18H DB 20H, 15H, 20H , 1CH DB 20H, 20H, 20H , 26H DB 40H, 20H , 20H , 2BH DB 20H, 26H, 20H , 20H DB 20H, 30H , 80H , 0FFH DB 20H, 20H, 1CH , 10H DB 18H, 10H, 20H , 20H DB 26H, 20H , 2BH , 20H DB 30H, 20H , 2BH , 40H DB 20H, 20H , 1CH , 10H DB 18H, 10H, 20H, 20H DB 26H, 20H , 2BH, 20H DB 30H, 20H, 2BH , 40H DB 20H, 30H, 1CH , 10H DB 18H, 20H , 15H , 20H DB 1CH, 20H , 20H , 20H DB 26H, 40H, 20H , 20H

单片机实验指导书——带答案

《单片机原理及应用》 实验指导书 姓名: 学号: 专业班级: 所在学院:成人教育学院 2012年5月日

单片机实验指导书 目录 实验一系统认识实验 (3) 实验二程序调试 (6) 实验三外部中断实验 (6) 实验四串口实验 (8)

实验一系统认识实验 一、实验目的 1.掌握SICElab-G2200实验/仿真系统的结构与使用方法; 2.熟悉单片机系统开发软件WA VE6000。 二、实验设备 1.G2200/2100 实验平台 1 台 2.仿真器/ 仿真板 1 台 3.连线若干根 4.计算机 1 台 三、实验内容 P1端口接发光二极管,加1点亮。 四、连线方案: 五、实验步骤 1.连接Lab51CPU板。(已由实验师连好) 2.仿真器与实验平台的连接 将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。(已由实验师连好) 3.仿真器与计算机的连接 用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。 特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。 4.实验连线 按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。拆线时,应先回转一下,不要硬拨,以免损坏线路板。不管是拆线还是插线,都应 在断电的情况下进行。实验中“连线方案”的粗线即为需用户动手接连的线。

5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。 6.在计算机上打开“WA VE6000集成调试环境”,界面如下图所示: 7.建立新程序(如果程序已编好,直接跳到第9步) 选择菜单[文件 | 新建文件]功能。 出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序 ORG 0 MOV P1,#0 ;熄灭发光二极管 LOOP: INC P1 CALL Delay SJMP LOOP Delay: MOV R2,#3 ;延时程序 MOV R1,#0 MOV R0,#0 DLP: DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END 8.保存程序 选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。 9.建立新的项目 选择菜单[文件 | 新建项目]功能。 新建项目会自动分三步走。 (1)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。 (2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。 (3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。 10.设置项目 11.编译程序 选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。 在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。 12.执行、调试程序 有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。 (1)全速执行 (2)程序单步跟踪 选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。 (3)执行到光标处 (4)设置断点 (5)观察各变量值的方法

相关文档
最新文档