实验1、实验2熟悉软件开发环境及51单片机编程(学生版)

实验1、实验2熟悉软件开发环境及51单片机编程(学生版)
实验1、实验2熟悉软件开发环境及51单片机编程(学生版)

实验一、熟悉软件开发环境及51单片机资源认识

——I/O口的应用与编程

计算机的应用是一个系统,这个系统应由两部分组成――硬件和软件。硬件是指具体的元器件、电路等,软件则是指程序和数据。如果説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。计算机原理告诉我们程序和数据是被“装载”在计算机存储器中的,从某种意义上讲,认识一个计算机的存储器系统是开发软件所必须的。

为了全面认识51系列单片机的存储空间,实验一与实验二列出四个实训单元。在进行完四个实训单元后,要求学生应全面了解51系列单片机的程序存储器(ROM)、片内随机存储器(片内RAM)和片外随机存储器(片外RAM)空间的范围、用途和使用方法等。

1.1认识51系列单片机的程序存储器(ROM)

第一部分教学要求

一、实验目的:

1.认识51系列单片机的程序存储器(ROM)的空间范围;

2.认识汇编指令编码在ROM中存储形式;

3.掌握指令编码和指令编码所在地址的概念;

4.了解51系列单片机的程序存储器(ROM)固定地址的用途。

二、实训平台

1.PC机,台/人;

2.伟福V

3.2版仿真软件或其它51系列单片机仿真软件

三、实验报告内容:

(注:成绩评定等级:优、良、中、及格、不及格)

第二部分教学内容

一、预备知识

1.ROM存储器

ROM(Read Only Memory)即只读存储器之意,其特点是在计算机正常运行的情况下CPU对ROM存储器只能进行读操作且断电后信息不会丢失,通常用来存储固定不变的程序和数据,如引导程序、基本输入输出系统程序等。ROM按其性能可分为以下几类:

(1)掩模工艺ROM

它是由芯片制造厂根据ROM要求存储的信息,制造成固定的半导体掩模版生产的。一旦制出成品后,其存储的信息只能读出,不能改变。这种ROM适用于存储固定不变的程序和数据,批量生产时,成本较低。

(2)可一次编程PROM

允许用户对ROM进行一次编程。

(3)可擦除的EPROM

允许用户对ROM进行多次编程,即可擦除。按擦除的方法不同,可分为紫外线擦除的可

擦除可编程序只读存储器EPROM(Erasable Programmable Read Only Memory)和电擦除的电可擦除编程序只读存储器EEPROM(Electrically Erasable Programmable Read Only Memory)。

(4)Flash存储器

Flash存储器是在20世纪80年代末逐渐发展起来的一种新型不挥发性半导体存储器,它结合了以往EPROM结构简单、密度高和EEPROM在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性。Flash存储器和传统存储器的最大区别在于它是按块(Sector)擦除,按位编程,从而实现了快闪擦除的高速度。目前它广泛应用于PCBIOS、数字蜂窝电话、汽车领域和微控制器等许多领域。

EPROM、EEPROM、Flash存储器需通过专用的编程器将程序和数据写入其中。

2.51系列单片机ROM空间

由于5l系列单片机的程序计数器PC是16位的,所以能寻址64KB的程序存储器地址范围。允许用户程序调用或转向64KB的任何存储单元。在5l系列单片机中根据不同的型号,其程序存储器的形式也有所不同。例如:8051单片机在芯片内部设置了4 KB掩模版的ROM,8751单片机在芯片内部设置了4 KB的EPROM,89C52单片机在芯片内部设置了8 KB的Flash 存储器,而8031单片机在芯片内部没有设置程序存储器,需要在单片机外部配置EPROM。

51系列单片机的EA引脚为访问内部或外部程序存储器的选择端。当EA引脚接高电平时,CPU将首先访问内部存储器,当指令地址超过内部存储器的最大地址时,自动转向片外ROM去取指令。当EA引脚接低电平时(接地),CPU只能访问外部程序存储器。对于8031单片机,由于其内部无程序存储器,故只能采用这种接法。

51系列单片机程序存储器的地址从0000H开始编址。程序存储器低端的一些地址被固定地用作特定程序的入口地址: 0000H

0000H:单片机复位后的程序入口地址; 0001H

0003H:外部中断0的中断服务程序入口地址;

000BH:定时器0的中断服务程序入口地址; : :

0013H:外部中断l的中断服务程序入口地址; : :

001BH:定时器1的中断服务程序入口地址;

0023H:串行端口的中断服务程序入口地址;

002BH:定时器2的中断服务程序入口地址。 FFFFH

图 1.1.1 ROM空间示意编程时,通常在这些入口地址开始的二三个单元中,放人一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的人口地址开始的几个单元中)。

3.源程序汇编与程序定位伪指令

将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。汇编常用的方法有两种:一是手工汇编,二是利用计算机汇编。

手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中,并进行调试。由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改有诸多不便。通常只有程序较小或条件所限时才使用。

机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目标程序。汇编工作由计算机自动完成。生成的目标程序由PC机传到开发机上,经调试无误后,再固化到程序存储器ROM中。机器汇编与手工汇编相比具有极大的优势,是汇编工作的首选。本教材选用的伟福仿真软件就可进行机器汇编。

伪指令不是单片机执行的指令,没有对应的机器码,仅是用来对汇编过程进行某种控制。常用的伪指令有:

(1)定位伪指令ORG

格式:[标号:] ORG l6位地址

功能:规定程序块或数据块存放的起始地址。如:

ORG 8000H

START:MOV A,#30H

该语句规定第一条指令从地址8000H单元开始存放。标号START的值为8000H。通常,在一段汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG伪指令,则该程序段从0000H单元开始存放。在一个源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由

小到大依序排列,不允许空间重叠。

(2) 汇编结束伪指令 END

格式:[标号:] END [表达式]

功能:结束汇编。

汇编程序遇到END伪指令后即结束汇编。处于END之后的程序,汇编程序不予处理。(3) 字节数据定义伪指令 DB

格式:[标号:] DB 8位字节数据表

功能:从标号指定的地址单元开始,在程序存储器中定义字节数据。字节数据表可以是一个或多个字节数据、字符串或表达式。该伪指令将字节数据表中的数据按从左到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单元。

4.伟福V3.2版仿真软件使用

见后续实验讲义。

二、实训程序

ORG 0000H

* AJMP BEGIN ;转初始化程序段

ORG 0003H

LJMP PINT0;转外部中断0的中断服务程序

ORG 0100H

BEGIN: SETB EA ;初始化程序段

SETB EX0

SETB PX0

SETB IT0

MOV R0, #03H

MOV A, #0A8H

MOV @R0, A

MOV R1, #20H

MOV R2, #31H

MOV R0, #00H

MOV A, @R1

MOVX @R0, A

MOV R0, #03H

MOV A, #01H

MOVX @R0, A

CLR A

MOVX @R0, A

*LOOP: SJMP $

ORG 2000H

PINT0: MOV R0, #00H ;外部中断0的中断服务程序

INC R1

MOV A, @R1

MOVX @R0, A

MOV R0, #02H

MOV A, #01H

MOVX @R0, A

CLR A

MOVX @R0, A

* DJNZ R2, NEXT

CLR EX0

SJMP DONE

NEXT: SETB EX0

DONE: RETI

END

三、实训

将以上实训程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到计算机中,并以*.ASM 文件名保存,然后进行汇编。汇编成功后,通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→CODE”菜单观察程序存储器(ROM)中的内容,理解“地址”、“指令代码”的概念,并了解51系列单片机程序存储器(ROM)空间的分布特点。

注:本节实训不要求学生具体读懂上述程序的具体功能。

具体步骤如下:

(1)打开伟福V3.2版仿真软件,选择伟福软件模拟器。如图1.1.2所示

图1.1.2

(2) 选择“文件(F)→新建文件(N)”,输入实训程序。如图1.1.3所示

图1.1.3

(3) 程序输完后,选择“文件(F)→另存为(A)”,在弹出的对话框中输入带有.ASM后缀新文件名。按“保存”按钮后,程序就会以带有.ASM后缀的文件形式存储D或E磁盘上。(注意此时程序中字符会根据伟福仿真软件的设置变色。)如图1.1.4所示

图1.1.4

(4) 选择“项目(P)→编译(M)”对源程序进行汇编,如图1.1.5所示。若无错,则会在模拟的程序存储器中形成机器指令代码。

图1.1.5

(5) 选择“窗口(W)→数据窗口(D)→CODE”,观察程序存储器(ROM)中的内容。如图1.1.6所示

图1.1.6

图1.1.7是在模拟的程序存储器中形成的机器指令代码。蓝字部分为地址,黑字部分为指令代码。拖动右侧的滚动条可观察整个程序存储器空间的内容。

指令所在的地址

指令代码

图1.1.7

(6) 根据图1.1.7窗口数据,填写下列表格。(在实验过程中注意*号指令的指令编码形成)

指令编码起始地址指令编码指令助记符0000H 21H,00H AJMP 0100H

0003H 02H,20H,00H LJPM 2000H

第一部分教学要求

一、实验目的

1、认识51系列单片机片内随机存储器(片内RAM)的空间范围;

2、认识51系列单片机片内随机存储器的区域划分;

3、掌握字节地址和位地址的概念;

4、了解R0~R7寄存器与字节地址的关系。

二、实训平台

1、PC机,台/人;

2、伟福V3.2版仿真软件或其它51系列单片机仿真软件

三、实验报告内容

(注:成绩评定等级:优、良、中、及格、不及格)

第二部分教学内容

一、预备知识

1. RAM存储器

RAM (Random Access Memory)即随机访问存储器之意,RAM存储器是一种既可读又可写的易失性存储器,其特点是断电后所存储的信息将全部丢失,通常用来暂存运行的程序和数据。但在单片机应用系统中RAM存储器仅被用来暂存运行的数据。

2.51系列单片机片内随机存储器的区域划分

51系列单片机片内随机存储器根据型号的不同,其存储容量为128B或256B。典型芯片的容量为128B,被划分为工作寄存器区、位寻址区和通用RAM区等三个区域。如图1.2.1所示。

其中单片机片内RAM中,最低的32个字节又被分成4个工作寄存器组,每组占8

个字节。即:

寄存器0组:地址00H 一07H;

寄存器1组:地址08H 一0FH;

寄存器2组:地址10H 一17H;

寄存器3组:地址18H —1FH。

每个工作寄存器组都有8个寄存器,分别称为:R0,R1,…,R7。程序运行时,只能有一个工作寄存器组作为当前工作寄存器组。当前工作寄存器组的选择是由特殊功能寄存器中的程序状态字寄存器PSW的RSl、RS0两位决定的。可以对这两位进行编程,以选择不同的工作寄存器组。工作寄存器组与RSl、RS0的关系及地址如表2—l所示。

图1.2.1 51系列单片机片内RAM区域划分

组号RS1 RS0 R0 R1 R2 R3 R4 R5 R6 R7

0 0 0 00H 01H 02H 03H 04H 05H 06H 07H

1 0 1 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH

2 1 0 10H 11H 12H 13H 14H 15H 16H 17H

3 1 1 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH

在工作寄存器区之后的20H~2FH的16个字节为位寻址区,共有128位。每位都有相应的位地址,范围是00H~7FH。利用位寻址,可以对被寻址的位进行位操作。在实际应用中常把各种程序状态标志、位控制变量设在位寻址区内。对于该区未用到的单元也可以作为通用RAM使用。

位寻址区之后的30H~7FH共80个字节为通用RAM区。这些单元有两种用途:其一可以作为数据缓冲器使用;其二设置堆栈区。51系列单片机的堆栈一般设在30H~7FH 的范围内。栈顶的位置由SP寄存器指示。系统复位时SP的初值为07H,在系统初始化时可以重新设置。

3. 寻址方式与汇编指令

立即数寻址:例MOV 30H, #20H ;将数据20H送入30H单元中;

直接寻址:例MOV 30H, 20H ;将20H单元中的数据送入30H单元中;

间接寻址:例MOV @R0, 30H ;将30H单元中的数据送入以R0寄存器中的内

容为地址的存储单元中;

寄存器寻址:例MOV R0, #20H ;将数据20H送入R0寄存器中;

位寻址:例SETB 00H ;将位地址为00H的位置1。

二、实训程序

ORG 0000H

AJMP BEGIN

ORG 0030H

BEGIN: MOV R0, #00H ; 0=>R0

MOV R1, #11H ; 11H=>R1

MOV R6, #66H ; 66H=>R6

MOV R7, #77H ; 77H=>R7

MOV R0, 01H ; 将01单元中的数据=>R0 ①

MOV R6, 07H ; 将07单元中的数据=>R6

SETB RS0 ; 设置寄存器组为一组,RS1,RS0=01 ②

MOV R0, 00H ; 将00单元中的数据=>寄存器一组中的R0

MOV R1, 01H ; 将01单元中的数据=>寄存器一组中的R1

MOV R7, 07H ; 将07单元中的数据=>寄存器一组中的R7

SETB RS1 ; 设置寄存器组为三组,RS1,RS0=11 ③

MOV R6, 00H ; 将00单元中的数据=>寄存器三组中的R6

MOV R7, 17H ; 将17单元中的数据=>寄存器三组中的R7

MOV 20H , #00H ; 0=>20H单元④

MOV 2FH, #0FFH ; FFH=>2FH单元

SETB 00H ; 位地址00H置“1”⑤

SETB 07H ; 位地址07H置“1”

CLR 78H ; 位地址78H清“0”

CLR 7FH ; 位地址7FH清“0”

MOV 31H , #31H ;31H=>31H单元⑥

MOV 32H , #32H ;32H=>32H单元

CLR RS0 ; ⑦

CLR RS1 ; 设置寄存器组为0组,RS1,RS0=00

PUSH 00H ; 将00单元中的数据入栈

MOV SP , #30H ; 重新设置栈地址为30H ⑧

PUSH 00H ; 将00单元中的数据入栈

PUSH 01H ; 将01单元中的数据入栈⑨

POP 00H ; 弹出栈顶数据至00单元

POP 01H ; 弹出栈顶数据至01单元

AJMP $ ; ⑩

三、实训

1.阅读以上程序,正确理解每一条指令功能。

2.将以上实训用程序通过伟福V

3.2版仿真软件(或其它51系列单片机仿真软件)输入到

计算机中,并以*.ASM 文件名保存,然后进行汇编。

3.汇编成功后,分别将光标移至标记①~⑨所在行,通过伟福V3.2版仿真软件的“执行

(R)→设置/取消断点(B)”菜单对标记①~⑨所在行设置断点。如图1.2.2所示。

4.选择伟福V3.2版仿真软件的“执行(R)→复位(E) 菜单。使程序从第一条指令开始执行。

图1.2.2

5.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第一个断点处暂停。

6.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。如图1.2.3和图1.2.4所示。

图1.2.3

地址数据

断点

起点

图1.2.4

7

8.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第二个断点处暂停。

9.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。10

11.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第三个断点处暂停。

12.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

13.填写下表。体会第一组寄存器组与片内RAM地址的关系。

14.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第四个断点处暂停。

15.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

16.填写下表。体会第三组寄存器组与片内RAM地址的关系。

17.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第五个断点处暂停。

18.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

19.填写下表。体会位寻址空间。

20.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第六个断点处暂停。

21.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

22.填写下表。体会位地址与字节地址的关系。

23.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第七个断点处暂停。

24.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

25.填写下表。

26.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第八个断点处暂停。

27.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

28

29.(R)(R)”菜单, 执行到第九个断点处暂停。

30.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

31

32.通过伟福V3.2版仿真软件的“执行(R)→全速执行(R)”菜单, 执行到第十个断点处暂停。

33.通过伟福V3.2版仿真软件的“窗口(W)→数据窗口(D)→DATA”菜单,观察指令运行结果。

34.填写下表。体会利用堆栈进行数据传递

实验二、51单片机资源认识及51单片机编程设计

——中断方式的编程应用

2.1 认识51系列单片机的片内特殊功能寄存器

第一部分教学要求

一、实验目的

1、认识51系列单片机片内特殊功能寄存器的地址空间范围;

2、掌握51系列单片机片内特殊功能寄存器的字节地址;

3、掌握51系列单片机片内特殊功能寄存器的位地址。

4、了解51系列单片机片内特殊功能寄存器的用途;

二、实训平台

1、PC机,台/人;

2、伟福V3.2版仿真软件或其它51系列单片机仿真软件

三、实验报告内容

第二部分教学内容

一、预备知识

1、51系列单片机片内特殊功能寄存器(SFR)的地址空间是与片内随机存储器统一编址的,其地址空间范围是80H~FFH。如图1.3.1所示。

图2.1.1

3.51系列单片机根据芯片型号的不同,其片内特殊功能寄存器的数量有所不同。以典型芯片8031为例,片内特殊功能寄存器有21个。它们离散地分布在80H~FFH地址(字节地址)空间上。

值得注意的是:那些分布在字节地址能被8整除的(即16进制的地址码尾数为0或8的)单元的特殊功能寄存器不但有字节地址而且还具有位地址,其位地址的空间范围也是80H~FFH,但不连续编址。编址的原则是具有位地址的特殊功能寄存器,其字节地址亦是

项目形式成绩评定

1 常用单片机特殊功能寄存器的功能描述书面

2 单片机片内随机存储器的空间使用情况观察填表

3 总成绩教师签名

特殊功能寄存器第0位的位地址。例如:作为特殊功能寄存器之一的累加器A,字节地址为E0H,则累加器A第0位的位地址也是E0H,累加器A第0位至第7位的位地址是E0H~E7H。见表2.1.1。

3.51系列单片机片内的特殊功能寄存器有着特殊的地位。从某种意义上讲使用51系列单片机就是使用单片机片内的特殊功能寄存器,因此,正确地理解和使用51系列单片机片内的特殊功能寄存器对使用51系列单片机而言是具有决定性作用的。

51系列单片机片内的特殊功能寄存器几乎包括了在微型计算机原理中叙述的所有基本功能单元。这些基本功能单元是:计算、寻址、计算机及程序状态、并行和串行I/O操作、定时/计数器操作和中断控制等。简单罗列如下:

·累加器A,8位。它是8051单片机中最繁忙的寄存器,用于向ALU提供操作数,许多运算的结果也存放在累加器中。

·B寄存器,8位。主要用于乘、除法运算。也可以作为RAM的一个单元使用。

·PSW是程序状态字寄存器,8位。起标志寄存器的作用。其中CY是进位、借位标志,有进位、借位时CY=1,否则CY=0;AC是辅助进位、借位标志(高四位与低四位间的进位、借位),有辅助进位、借位时AC=1,否则AC=0;FO是用户标志位,由用户自己定义;RSl、RS0为工作寄存器组选择位;OV为溢出标志位,有溢出时OV=l,否则OV=0;P是奇偶标志位,运算结果中有奇数个“1”时P=l,否则P=0。

·SP栈指针寄存器,8位。用于指示当前栈顶地址。栈操作遵循“后进先出”的原则。入栈操作时,SP先加1,数据再压人SP指向的单元。出栈操作时,先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。

·DPTR是16位的数据指针寄存器。它由两个8位的寄存器DPH和DPL组成,用来存放16位的地址,采用间接寻址或变址寻址方式可对片外的RAM或ROM作64KB范围的数据进行操作。

·P0、P1、P2、P3是4个并行I/O端口寄存器。通过对这几个寄存器的读/写,可以实现数据从相应端口的并行输入/输出。

·SBUF是串行端口数据缓冲器,通过SBUF可以实现全双工串行数据通信。

·SCON是串行端口控制寄存器,用于控制和设置串行数据通信。

·PCON是串行通信波特率倍增寄存器,用于设置串行数据通信的波特率。

·THO、TL0是定时/计数器TO的两个8位计数初值寄存器,可以构成16位的计数器,其中,TH0存放高8位,TL0存放低8位。

·TH1、TL1是定时/计数器T1的两个8位计数初值寄存器,可以构成16位的计数器,其中,TH1存放高8位,TL1存放低8位。

·TMOD是定时/计数器的工作模式寄存器,用于设置定时/计数器的工作模式

·TCON是定时/计数器的控制寄存器,用于控制定时/计数器和中断的操作。

·IE是中断允许控制寄存器, 用于允许/屏蔽中断源的中断请求。

·IP是中断优先级控制寄存器,用于设置中断源的中断优先级。

表2.1.1

二、实训程序

ORG 0000H

AJMP BEGIN

ORG 0030H

BEGIN: MOV A, #0FH ; 0F=>A

MOV 0E0H, #0F0H ; F0H=>E0H单元

SETB 0E0H ; 将位地址E0H置1

CLR 0E7H ; 将位地址E7H清零

CLR C ; 清进位位

ADD A, #0FFH ;(A)+FFH=>A

ADDC A, #00H ;(A)+00H+CY=>A

SETB 0EAH ;将位地址EAH置1

MOV P1, #0FH ;0FH=>P1

SETB P1.7 ;将位地址97H置1

CLR P1.0 ;将位地址90H清零

MOV DPL, #00H

MOV DPH, #20H ;DPTR=2000H

MOV TL0, #00H

MOV TH0, #10H ;TH0TL0=1000H

AJMP $

三、实训

4.阅读以上程序,正确理解每一条指令功能。

5.将以上实训用程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到

计算机中,并以*.ASM 文件名保存,然后进行汇编。

3.选择伟福V3.2版仿真软件的“执行(R)→复位(E) 菜单。使程序从第一条指令开始执行。4.选择伟福V3.2版仿真软件的“执行(R)→单步(S) 菜单或按F8键,如图1.3.2所示。单步执行实训用程序。

图2.1.2

5.选择伟福V3.2版仿真软件的“窗口(W)→CPU窗口菜单,如图2.1.3所示。并根据表1.3.1,填表下列表格。

寄存器名

图2.1.3

2.2 认识51系列单片机的片外数据存储器(片外RAM)及全部存储空间访问

第一部分教学要求

一、目的要求

1、认识51系列单片机的片外数据存储器(片外RAM)的地址空间范围;

2、认识51系列单片机的片外数据存储器的用途;

3、掌握51系列单片机全部存储空间(ROM、片外RAM和片内RAM)的访问方法。

二、实训平台

4、PC机,台/人;

5、伟福V3.2版仿真软件或其它51系列单片机仿真软件

三、实验报告内容

(注:成绩评定等级:优、良、中、及格、不及格)

第二部分教学内容

一、预备知识

1. 片外RAM存储器

由于51系列单片机片外的地址总线为16位,所以能寻址的片外RAM空间为64K。

与片内的RAM存储器一样,片外RAM存储器也是一种既可读又可写的易失性存储器,故片外RAM存储器通常被用来暂存程序运行时所采集的数据。

2.51系列单片机三类存储器空间

51系列单片机的存储器空间按访问途径分,可分为三类(ROM、片内RAM和片外RAM)。如图1.4.1所示。这三类存储器空间在使用上有着明确地分工,ROM用来存储程序和数据表,由于ROM存储器需使用专用的编程器进行写入,并且是非易失性的,所以人们形象地称写入ROM中的程序和数据为固化。片内RAM存储器的使用最为丰富,除了有非常重要的特殊功能寄存器外,还有工作寄存器组、堆栈、位地址和用户数据缓存等用途。片外RAM存储器的用途最为单一,仅被用作暂存程序运行时所采集的数据,通常I/O接口会占用一些片外RAM存储器的地址(这部分内容将在后面的章节介绍)。

图2.2.1

项目形式成绩评定

1 51系列单片机全部存储空间描述书面

2 单片机三类存储器空间的使用情况观察填表

3 总成绩教师签名

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 口,如图所示:

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

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

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交流电源线插入主板后,打开电源开关,主板

2014版51单片机实验开发板焊接和调试资料

2014版51单片机实验开发板焊接调试指南 一、焊接指南: 1、先矮后高(先焊接低矮的器件如飞线、卧式电阻等,再焊比较高的器件)。 2、先小后大(先焊接体积比较小巧的器件,再焊体积比较大的器件)。 3、注意有极性元器件的安装和焊接(普通二极管、发光二极管、三极管、电解电容的极性,以及接插件的缺口方向、芯片插座方向等)。 4、建议不要一次性的把很多元件都放好才焊,应该是先放几个,焊好后剪掉元件引脚线,再接着放和焊。元件插入电路板后,为了防止电路板翻转焊接时掉落,可以适当把元件脚掰过两边,但是千万不要把元件脚全部掰平到电路板上! 5、建议一个类型一个类型地焊接,比如先统一把所有电阻焊完,再统一焊接二极管,然后再统一焊电容,等等。这样就不会搞漏。 6、所有元器件,包括电容、发光二极管等,都应该尽可能压低到电路板表面后再在反面焊接,不要让元件歪歪扭扭的“站”在电路板上。 7、注意发光二极管、排针、排座芯片插座不要长久焊接,防止这些塑料件被烫坏而报废! 8、芯片插座,尤其是单片机插座,要认真检查所有针脚从电路板洞中全部露出来后再焊接,否则贸然焊接后才发现有脚没过来时,整个芯片插座可能得拆出来才能解决问题,不仅费工而且极可能使芯片插座报废! 二、调试指南: 把元件清单后半部分的元器件焊接完毕后,绝对不可以马上把清单的前部分器件如芯片等插入电路板通电测试,这样做会因为焊接等原因导致元器件大面积损坏!应按以下步骤一步步按顺序进行调试: 1、不要插入任何芯片、液晶显示模块、电池,先用万用表测量单片机芯片插座的第20脚(地线脚)和第40脚之间(电源脚)是否短路。如有一定要先排除,否则可能会导致电脑USB口和下载线的损坏!重点检查电路板的电源线有否与地线之间有毛刺粘连,尤其是左下角可调电阻的一个脚所在电源线与地线之间是否粘连。 2、板子正确接好下载线,然后插到电脑USB口,反复按动板子上的电源开关,这时左上角的电源指示灯应该可以亮灭。如果灯不亮,断电检查开关是否可以通断,电源指示灯是否焊反或烫坏。 3、接着用一根杜邦线一头接在地线上,一头顺序接通P2.0、P2.1……P2.7的引出脚,以及右边的十个LED灯的引出脚,此时对应的灯应该点亮,不亮的不是烫坏了就是焊反了。揭开蜂鸣器上的盖纸,地线接P2.0时,除灯亮外,应可听到蜂鸣器发出响声,不响的,检查所接三极管和蜂鸣器是不是接反。地线接P2.1时,应可听到继电器“滴答”的吸合声。 4、上述步骤检查通过的,则说明板子基本没问题了,可以进行下一步调试。没通过的绝对不可以继续下去! 5、断电,插上51单片机,注意芯片方向。运行下载软件,看看是否可以进行正常下载!注意最好使用STC的V481下载软件,并确保下载线驱动装好、串口号设对。如果电脑端无问题但还是不能下载的,重点检查下载线的收发两根线是否正确接到单片机收发口上(收发接反、收发线相互粘连或与别的线粘连)。能正常下载,说明板子基本可以正常使用了。 6、强烈建议,板子使用中,用到什么芯片再插入相应的芯片,不要一股脑儿全插上,避免不知不觉中未用到的芯片误连接或操作而损坏。尤其是纽扣电池,没用到时钟的坚决不能放到板上,它造成的DS1302芯片损坏率和板子不正常的几率奇高(芯片出厂或编程时没有进入电池不充电保护状态)!

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/c818954272.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/c818954272.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单片机实验课题集

51单片机实验课题设计要求 1.1课程设计的总体要求 本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。 (1)基本要求: 根据课题要求,研究51单片机实验(如AT89S51_V1.4等)开发板或其它实验开发板的功能和实验样例,学习和掌握keil集成开发环境或Medwin集成开发环境,在此基础上仔细研究课题功能,重新设计实验所需要的电气原理图,编写相对应的应用程序,实现其功能,学生课题实验的优劣可以从以下几个标准衡量: 1.只会使用标准测试程序和资源实现课题部分功能; 2.使用标准测试程序及其他资源实现部分功能; 3.通过修改标准程序实验全部课题基本要求者; 4.完全自主编程实现全部课题基本要求者; 5.软硬件技术应用自如,超越课题要求者。 (2)发挥要求: 在完成本人选题的基本要求前题下,完成发挥部分要求,并具有新内容的自主 发挥和创新,并取得良好效果。 (3)分类标准: 1.完成了实验(1)的全部要求,并熟练运用开发工具。 2.在完成实验(2)的部分要求,并具有创新内容。 1.2分组和实验注意事项 本实验提供的实验课题根据教学要求组成设计小组,进行分工合作,实验工作要细心认真、防止意外,有问题及时向指导老师反映,同学间可以通过研讨、互相学习解决实验中的问题。 每组同学实验过程包括: (1)听课,了解实验方法 (2)调研和了解课题,进行课题的方案选择 (3)学习开发工具,包括实验板,编程软件,仿真软件等 (4)学习汇编语言以及C语言在51编程上的使用 (5)学习系统测试、调试和故障排除,功能实现 (6)自主实验,包括课题实现和相关资料整理提交 1.3报告要求 (3)基本要求:写明实验内容和方法,画出所用部分资源的原理图等。 (4)提高要求:说明选题依据,资源的选择和该资源在设计中的功能说明,原理图设计,程序结构框图和说明,操作使用说明。 (5)发挥部分:提出设计思想,设计原理图,提供源程序,说明创新点。提供程序

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所示

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单片机实验报告

实验一 点亮流水灯 实验现象 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)

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单片机的开发板

江西工业学院 课程设计报告书 题目:基于STC89C52RD单片机实验板的制作 与程序设计 系别: 专业: 姓名:学号: 指导老师: 2016 年12 月

目录 第1节引言 (3) 1.2 基于89C51单片机系统实验板概述 (3) 1.2.1stc89C51单片机开发板硬件配置情况 (4) 1.2.2、stc89C51单片机实验板配套实验 (4) 第2节系统主要硬件电路设计 (5) 2.1 STC89C51单片机简介 (5) 2.2电源转换芯片MAX232 (6) 2.3 四位一体共阳LED数显 (7) 2.4 LED 灯电路 (8) 2.5 按键电路 (9) 2.6蜂鸣器 (9) 2.7 8*8点阵 (9) 第3节实验系统软件设计 (10) 3.1 花样流水灯程序设计: (10) 3.2.简易时钟程序设计: (11) 3.3 8*8点阵屏显示程序设计 (13) 第4节结束语 (14) 参考文献 (14) 附录 (14) 课程设计指导教师评语 (17)

基于STC89C52RD单片机系统实验板的制作与程序设计 第1节引言 单片微型计算机简称单片机,又称微控制器(MCU),它的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。本次课设采用的STC89C51单片机是51系列单片机的一种代表,目前51系列单片机是国内目前应用最广泛的一种单片机之一。单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计的基础课。 1.1本设计任务和主要内容 本设计以单片机STC89C52RD为控制核心,由八路LED模块、八路按钮模块、四位一体共阳数显模块、语音模块等部分组成。可实现花样流水灯、简易电子琴、外部中断控制、时间显示等功能。要求在将硬件电路准确无误地安装后进行软件调试,至少完成以下三个程序设计及调试任务 1 .1.1花样流水灯:程序循环输出到单片机P1口,从左到右依次点亮,每次增加一个,直至全亮;从左到右依次暗灭,每次减少一个,直至全灭;从右向左依次点亮,每次亮一个;从左到右依次点亮,每次亮一个;8个发光二极管闪烁三次;两个二极管前后追逐循环三次;两个按键控制,K1按下停止循环,K2按下继续循环。 1.1.2.简易时钟电路:采用动态扫描技术,四位数显实现数字时钟,要求显示时、分,K0调时、K1调分;整点报时。 1.1.3 8*8点阵屏显示程序设计:动态轮流显示数字0-9,字母A-Z 1.2基于89C51单片机系统实验板概述 本次课设所使用的单片机最小系统板包括以下器件:电源端子(DC +5V),可以USB供电,也可独立电源供电。通用异步串口,采用MAX232做电平转换。STC89C51单片机。各种颜色的LED发光二极管共9个,其中8个接于P1口做LED显示,还有一个做电源灯显示。四位一体共阳数码管可以实现时钟电路及动态扫描显示。还有其他电阻电容若干,系统板一个,大按键开关两个,用于中断控制和通信开关。

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单片机20个实验-代码详细

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)实验系统电源 实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。

基于51单片机多功能实验板设计

毕业设计说明书 设计题目:基于51单片机多功能实验板设计作者姓名: 班级学号: 系部:机电工程系 专业:机电一体化 指导教师: 2012年4月15 日

摘要 设计一种基于51单片机的实验板,实验板具有成本低、体积小、可靠性能高,功能多、低功耗设计、操作方便等特点。本设计介绍了该开发板的开发过程及相关硬件设计。实验板以STC89C52以单片机为核心控制器,板上资源主要包括通信模块、数码管模块、LED模块、蜂鸣器模块、键盘模块等。 实验板可以作为主控制模块安装于控制系统中执行控制任务,也可以用于高校教学,实验板能够完成多数通用实验,操作简单,控制结果可见,性价比高,具有一定的实用价值和现实意义。 关键词: STC89C52 MAX232 键盘LED灯数码管蜂鸣器 目录 第1章绪论 1.1单片机基本概念及引脚说明 (1) 1.2STC89C芯片介绍………………………………………………………………。3 1.3MAX2芯片介绍...........................................................................。3 第2章方案介绍 (5) 2.1系统原理框图 (5) 第3章硬件电路设计 (6) 3.1 键盘模 (6) 3.2 发光二极管模块 (6) 3.3 数码管模块 (8) 3.4 蜂鸣器模块 (8) 3.5 串行通信模块 (8) 3.6 中断模块 (9)

3.7 电源模块 (10) 3.8 复位模块 (10) 第4章实验板实用方法 (11) 4.1 KEIL 软件介绍 (11) 4.2 STC-ISP下载 (13) 附A单片机引脚分配 (15) 致谢 (16) 参考文献。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。.17 第一章绪论 1.1单片机基本概念及引脚说明

心率计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); }

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单片机实验开发板设计

东 北 石 油 大 学 课 程 设 计 2012年 7 月 8日 课 程 单片机课程设计 题 目 51单片机实验开发板设计 院 系 电气信息工程学院测控系 专业班级 测控09 学生姓名 学生学号 指导教师

东北石油大学课程设计任务书 课程单片机课程设计 题目51单片机实验开发板设计 专业测控技术与仪器姓名学号 一、任务 设计一款基于仿真软件实现的51单片机实验开发板。 二、设计要求 [1] 该实验开发板力求单片机IO口分配合理,实验板硬件资源丰富。 [2] 外围电路设计合理,程序例程正确。 [3] 基本电路包括:单片机最小系统、8位流水灯电路、LED显示电路、蜂鸣 器电路、键盘电路、1602及12864液晶显示电路。 [4] 提交设计报告、电路图及程序源码。 三、参考资料 [1] 潘永雄.新编单片机原理与应用[M].西安电子科技大学出版社,2003. [2] 丁元杰.单片微机原理与应用[M].机械工业出版社,2006. [3] 朱定华.单片微机原理及接口技术实验[M].北方交通大学出版社,2002. [4] 付家才.单片机控制工程实践技术[M].化学工业出版社,2004. [5] 杨丽凤,王艳秋,张军.单片机原理与接口技术[M].清华大学、北方交通大学 出版社,2004. 完成期限至 指导教师 专业负责人曹广华 2012年6月29 日

目录 第1章绪论 (2) 单片机现状与发展 (2) 单片机的性能特点 (2) 本设计任务 (3) 第2 章总体方案论证与设计 (4) 电源 (4) 显示功能方案 (4) 电位指示选择 (4) 总体硬件组成框图 (4) 第3章系统硬件设计 (6) 单片机最小系统 (6) 键盘模块设计 (7) LED显示模块设计 (7) 流水灯显示模块设计 (8) 发声模块设计 (9) 串口通信模块设计 (9) 第4章系统的软件设计 (10) LED模块的程序设计 (10) 键盘模块的软件设计 (11) 第5章系统调试与测试结果分析 (12) 使用的仪器仪表 (12) 系统调试 (12) 测试结果 (13) 结论 (14) 参考文献 (15) 附录1 程序 (16)

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

51单片机信号发生器实验报告

微控制器技术创新设计实验报告姓名:学号:班级: 一、项目背景 信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 二、项目整体方案设计 可以利用单片机编程的方法来实现波形的输出。可选用AT89C51作为控制器,输出相应波形的数字信号,再用D/A 转换器输出相应波形的模拟信号。用DAC0832作为D/A转换器,再经过两级放大后输出,最终在示波器上显示。可以使用按键扫描来实现波形的变化

三、硬件设计 四、软件设计 #include #define uchar unsigned char #define uint unsigned int Const tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(void) { uchar i; for(i=230;i>0;i--); }

void main() { uchar i; while(1) { for(i=0;i<18;i++) { P1=tab[i]; delay(); } } } 五、实验结果

六、项目总结 通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。我认为掌握单片机的应用及开发技术是最基本的也是必要的。单片机是以后从事相关嵌入式研发最为基本的入门芯片。所以学好单片机是我们电子类的必要任务。通过这次单片机课程设计的顺利完成,离不开付老师指导,也离不开班上同学的耐心帮助。在此,我对所有帮助过我的老师和同学表示我真挚的感谢!

51系列单片机实验系统指导书

51系列单片机实验系统指导书 目录 前言 第1章下载式实验系统的使用方法 1.1 软件安装与启动 1.1.1 1.1.2 文件操作 1.1.3 建立工程项目(汇编) 1.1.4 调试程序 第2章软件实验 2.1 数据传送实验 2.2 清0实验 2.3 数据转换实验 2.4 拆字、拼字实验 2.5 散转程序实验 2.6 时钟实验 2.7 计数器实验 2.8 无符号十进制数加法实验 2.9 数据排序实验 2.10 单字节BCD码除法实验 2.11 查找相同个数实验 第3章硬件实验 3.1 P1口彩灯控制实验 3.2 数码管显示实验 3.3 顺序控制实验 3.4 8031和8155接口扩展与数码管显示实验 3.5 键盘、数码管显示综合实验 3.6 A/D转换实验 3.7 D/A转换实验 3.8 A/D与D/A转换综合实验 第4章89C51系列实验 4.1 顺序控制实验 4.2 数码管显示实验 4.3 键盘、数码管显示综合实验

4.4 A/D转换实验 4.5 D/A转换实验 前言 目前,51系列单片机在我国的各行各业得到了广泛应用,各大专院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。为了适应这一学习上的要求,国外厂家开发了多种实验、开发系统,但普遍存在集成度高,严重脱离实际的情况。作者集多年理论教学、实验教学、产品开发的经验,完全摒弃了以前各种实验设备的那种思维模式,重新开发出一种实验、开发系统,专从产品开发角度出发,安排各种硬件实验,并且做到每一个实验就是一个小产品,每个实验就是一个产品开发的过程,从单片机最小系统开始,逐步扩展功能,从单一功能到功能多样,从小到大,从简单到复杂,自成系统给人一种完整的学习思路,让学习者概念清晰、直观明了、易学易懂,特别是加强了硬件故障排除方法的指导,解决了学习者中普遍对硬件故障排除难的问题;其次是加强了软件调试的指导,提供了一些软件调试方法和步骤,帮助初学者很快入门,帮助熟练者更加深化。 本实验系统采用模块式设计,为各学校单片机的课程设计、学生的毕业设计、提供了硬件设备,该模块可反复使用、任意组合、方便经济,解决了各单位研究与实验经费不足的问题。特别在开发产品中更加适用,一个产品谈妥后厂家往往要求几天之拿出产品样机,你可用此系统很快拼装成一个产品样机,供编程人员仿真,同时进行印制板设计。若出现问题,硬件可及时修改、添加,一切开发成功后,再作印制板,一次成功,减少经费损失,缩短了开发周期,为产品开发提供了方便。 本实验指导书分四章:第1章,下载式实验系统的使用;第2章,软件实验;第3章,硬件实验;第4章,89C51单片机实验,特别第4章完全讲解的是一个产品开发的全过程,力求使学习者获得更大的收益。

相关文档
最新文档