单片机实验书

单片机实验书
单片机实验书

实验一单片机I/O接口实验

【实验目的】

利用单片机的P1口作IO口,学会利用P1口作为输入和输出口。

【实验设备及器材】

笔记本电脑一台

HL-1单片机开发板一个

【实验内容】

编写一段程序,用P1口作为控制端口,使开发板上的LED轮流亮。

【实验要求】

学会使用单片机的P1口作IO口,如果有时间也可以利用P3口作IO口来做该实验。

【实验步骤】

1、实验原理如图1-1所示。

图1-1

2、用汇编语言编写好源程序。(在电脑上的编辑器软件中)

3、将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、

HEX文件)。

4、用下载软件将目标程序写入到单片机中。

5、写入后会自动运行目标程序。

如果程序运行不正常、可以用人工检查、软件仿真器等技术排除所编程序中存在的各种错误。错误排除后,再重复上面的3、4步骤。

【实验预习要求】

理解该实验单片机开发板的硬件结构,可以预先把程序编好,然后在Keil C51环境下进行软件仿真。

【实验参考程序】

;放置数据在0100地址以后

ORG 0100

TMP1: DB 01H,02H,04H,08H,10H,20H,40H,80H,81H,82H

DB 84H,88H,90H,0A0H,0C0H,0C1H,0C2H,0C4H,0C8H,0D0H

DB 0E0H,0E1H,0E2H,0E4H,0E8H,0F0H,0F1H,0F2H,0F4H,0F8H

DB 0F9H,0FAH,0FCH,0FDH,0FEH,0FFH,0FFH,00H,0FFH,00H

ORG 0000H ;程序的开始

LJMP MAIN ;转入主程序

ORG 0200H ;主程序的开始

MAIN: MOV DPTR,#TMP1 ;得到数据存放的地址

MOV R7,#50 ;设置循环40次

M1: CLR A

MOVC A,@A+DPTR ;读取相应地址的数据

CPL A ;因发光二极管采用共阳极,所以将数据取反再输出

MOV P1,A

INC DPTR ;进入下一个数据准备

LCALL DELAY ;转入延时子程序

DJNZ R7,M1 ;40次未完成继续

LJMP MAIN ;40次完成回到主程序循环

DELAY: MOV R5,#255 ;延时子程序

D1: MOV R6,#255

DJNZ R6,$

DJNZ R5,D1

RET

END ;程序体结束

【实验思考题】

想出几个实现以上功能的编程方法。

实验二定时/计数器实验

【实验目的】

1、掌握定时器/计数器的使用方法。

2、熟悉定时器/计数器的工作过程及编程。

3、掌握定时时间常数的确定方法。

【实验设备及器件】

笔记本电脑一台

HL-1单片机开发板一个

【实验原理及内容】

8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。

T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。

定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

计数器初值的计算:

设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下:

X=M-要求的计数值(十六进制数)

定时器初值的计算:

在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式:

X=M-(要求的定时值)/(12/fosc)

80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。

工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:

GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。

M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。

实验内容:

1、通过定时器延时实现P1口LED的闪亮。

2、对按键S2按下的次数进行计数,当计数记到3时,第一个发光二极管被点亮。

【实验步骤】

1.用汇编语言编写好源程序。(在电脑上的编辑器软件中)

2.将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、HEX文件)。

3.用下载软件将目标程序写入到单片机中。

4.写入后会自动运行目标程序。

如果程序运行不正常、可以用人工检查、软件仿真器等技术排除所编程序中存在的各种错误。错误排除后,再重复上面的2、3步骤。

【实验预习要求】

1、参阅MCS-51有关定时器/计数器部分章节。

2、弄清有关定时器/计数器控制寄存器的格式及设定方法。

3、弄清实验中定时时间常数是如何确定的。

【实验参考程序】

定时器延时实现LED点亮:

ORG 0000H

AJMP START

ORG 30H

START: MOV P1,#0FFH ;关闭所有的灯

MOV TMOD,#00000001B ;定时/计数器0工作于方式1

MOV TH0,#0fH

MOV TL0,#0A0H ;以上两行预置计数

SETB TR0 ;定时/计数器0开始运行

LOOP: JBC TF0,NEXT ;如果TF0等于1,则将TF0清0并转next处

AJMP LOOP ;否则跳转到LOOP处运行

NEXT: CPL P1.0 ;点亮P1.0灯

MOV TH0,#0fH ;

MOV TL0,#0A0H ;重置定时/计数器的初值

AJMP LOOP

END

计数器计数实现LED点亮程序:

#include

#define uint unsigned int

//uint pp;

sbit led=P1^0;

sbit s2=P3^4;

void main()

{

TMOD=0x05; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。

TR0=1; //打开计数器

ET0=1; //开计数器0中断

EA=1; //开总中断

while(1)

{

if(TL0==3) //当计数为3时,led被点亮。当然,由于有按键抖动,故有时未按三下S2,灯已经亮了。

led=0;

}

}

/*

void time0() interrupt 1

{

pp++;

} */

【实验思考题】

想出几个实现以上功能的编程方法。

实验三外部中断系统实验

【实验目的】

⒈掌握51单片机中断的原理及使用方法。

⒉掌握51单片机外部中断的基本用法。

【实验设备】

笔记本电脑一台

HL-1单片机开发板一个

【实验原理及内容】

⒈实验原理

外部中断:由I/O设备产生的中断,也称I/O中断。I/O中断产生的时间事先不可知,但一旦有I/O请求就会向微处理器发出电信号,微处理器便自动测试I/O的状态,省去了大量判断I/O请求是否发生的时间,因此可以提高微处理器的效率。

2.实验内容

利用低电平中断触发使S12键每按下一次,P1口所接发光二极管的亮灭状态就发生一次改变。

【实验步骤】

1.用汇编语言编写好源程序。(在电脑上的编辑器软件中)

2.将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、HEX文件)。

3.用下载软件将目标程序写入到单片机中。

4.写入后会自动运行目标程序。

如果程序运行不正常、可以用人工检查、软件仿真器等技术排除所编程序中存在的各种错误。错误排除后,再重复上面的2、3步骤。

【实验参考程序】

/**********************慧净电子51实验板例程************************

* 平台:HL-1 HJ-1G HJ-3G HJ-C52 + Keil U4英文版本 + STC89C52

* 名称:HJ-C52 按下K3产生中断信号,流水灯会加1 HL-1 HJ-3G 要用杜邦线一端接到GND上,另一端接到P3.2 IO口上,多次。

* 操作: HL-1 HJ-3G 要产生中断信号,记得用杜邦线多次接到GND 和P3.2 上。

******************************************************************/

ORG 0000H

LJMP MAIN

ORG 0003H ;中断入口

LJMP INT

ORG 0200H

MAIN: SETB EA ;首先开启总中断

SETB EX0 ;开启外部中断 0,即P32引脚

CLR IT0 ;设置成低电平触发方式

clr P3.7

M1: SJMP $ ;主程序只等待中断

INT: DEC P1 ;外部中断 0 中断响应,将P1口内容减1 LCALL DELAY

RETI ;中断结束返回

DELAY: MOV R5,#255 ;延时子程序

D1: MOV R6,#255

DJNZ R6,$

DJNZ R5,D1

RET

END

【实验思考题】

想出几个实现以上功能的编程方法。

实验四扳键,LED的接口与应用

【实验目的】

⒈掌握51单片微机实验装置;学会使用其功能电路,连成实验需要的系统。

⒉学习扳键与单片机接口、应用的技能。

3.学习LED与单片机接口、应用的技能。

4.研究延时程序。

5.学习键盘去抖方法。

【实验设备】

笔记本电脑一台

HL-1单片机开发板一个

【实验内容】

1.用P3.4口作为信号采集输入口,与扳键连接;用P1.0口作为输出口,与LED连接。

2.用扳键控制输入电路的电平,用LED反应电路的输出电平。

3.实验中要注意键盘的去抖。

【实验步骤】

1.用汇编语言编写好源程序。(在电脑上的编辑器软件中)

2.将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、HEX文件)。

3.用下载软件将目标程序写入到单片机中。

4.写入后会自动运行目标程序。

如果程序运行不正常、可以用人工检查、软件仿真器等技术排除所编程序中存在的各种错误。错误排除后,再重复上面的2、3步骤。

【实验参考程序】

ORG 0000H

LJMP LOOP3

ORG 0030H

LOOP3:

SETB P3.0

LOOP2:

JNB P3.4,DELAY

LJMP LOOP2

LOOP4:

CPL P1.0

LJMP LOOP2

DELAY: MOV R5,#255 ;延时子程序

D1: MOV R6,#255

DJNZ R6,$

DJNZ R5,D1

JB P3.4,LOOP4

实验五单片机串行通讯实验

【实验目的】

1、掌握串行口自发自收的原理及编程。

2、掌握串行口方式1的使用及其波特率的计算。

【实验设备】

笔记本电脑一台

HL-1单片机开发板一个

【实验内容及原理】

本实验为串行口自发自收实验,串行口设为工作方式2,发送数据块存放在RAM 50H ~ 5FH 中,通过串行口发出,再通过串行口接收,接收数据块存放在RAM 50H ~ 5FH中。实验中数据传输通过程序查询控制,主要查询数据有否收到,因只要数据收到,则该数据肯定已发送完毕。

本实验中将串行口波特率设置为2400 bps,具体计算如下( fosc=12MHZ ):

波特率=(2 SMOD /32)× fosc /(12 ×(256-X))

=( 2 SMOD /32)×12 ×10 6 /(12 ×(256-243))=2400bps

式中X取243(F3H),即T1的计数器TH1、TL1取值#0F3H。

【实验步骤】

1、下载安装串口软件。

2、用汇编语言编写好源程序。(在电脑上的编辑器软件中)

3、将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、HEX文件)。

4、用下载软件将目标程序写入到单片机中。

5、启动串口软件,串口软件与单片机进行数据传送与接收。

【参考程序】

/**********************慧净电子51实验板例程************************

* 平台:HL-1 HJ-1G HJ-3G HJ-C52 + Keil U4英文版本 + STC89C52

* 名称:串口调试程序,查询法接收数据

* 操作:运行本例子,打开本例子文件夹中的上位机软件,设置波特率2400,再进行发送数据,接收区返回接收内容

* 晶振:12MHZ 其中HJ-1G采用12M晶振

******************************************************************/

ORG 0000H

LJMP MAIN

;主程序的开始

ORG 0200H

MAIN: MOV TMOD,#20H ;设置定时器1为模式2,做为波特率发生器

MOV TL1,#0FDH ;9600波特率的初值,板子使用12M晶振MOV TH1,#0FDH ;

SETB TR1 ;启动波特率发生

MOV SCON,#50H ;串口的工作方式,设置为方式2

M1: JNB RI,M1 ;查询是否有数据接收

MOV A,SBUF ;数据暂存于A

CLR RI ;允许接收

MOV SBUF,A ;将接收到的数据发送出去

M2: JNB TI,M2 ;等待发送完成

CLR TI

SJMP M1 ;循环扫描串行通讯接口数据

END

【实验思考】

想出几个实现以上功能的编程方法。

实验六单片机系统综合应用实验

【实验目的】

1、掌握单片机51最小系统。

2、用单片机51最小系统制作交通灯。

【实验设备】

笔记本电脑一台

HL-1单片机开发板一个

【实验内容】

1.利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。

2.以AT89C51单片机为核心,设计一个十字路口交通灯控制系统。用单片机控制LED灯模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间为3秒,缓冲(黄灯)时间6秒,停止(红灯)时间9秒。

3.南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

【实验步骤】

1、用汇编语言编写好源程序。(在电脑上的编辑器软件中)

2、将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、目标文件、HEX文件)。

3、用下载软件将目标程序写入到单片机中。

4.写入后会自动运行目标程序。

如果程序运行不正常、可以用人工检查、软件仿真器等技术排除所编程序中存在的各种错误。错误排除后,再重复上面的2、3步骤。

【实验参考程序】

ORG 00H

RED:

MOV R4,#0BH

START1:

DEC R4

MOV DPTR,#200H

MOV A,R4

MOV B,#0AH

DIV AB

MOV 20H,B

MOV 21H,A

MOV P1,#11111100B

CALL DELAY

CJNE R4,#00H,START1

JMP GREEN

SCAN1:

MOV P0,#00H

MOV A,21H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

MOV P0,#01H

MOV A,20H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

RET

GREEN:

MOV R4,#07H

START2:

DEC R4

MOV DPTR,#200H

MOV A,R4

MOV B,#0AH

DIV AB

MOV 20H,B

MOV 21H,A

MOV P1,#11001111B

CALL DELAY

CJNE R4,#00H,START2

JMP YELLOW

SCAN2:

MOV P0,#00H

MOV A,21H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

MOV P0,#01H

MOV A,20H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

RET

YELLOW:

MOV R4,#04H

START3:

DEC R4

MOV DPTR,#200H

MOV A,R4

MOV B,#0AH

DIV AB

MOV 20H,B

MOV 21H,A

CALL SCAN3

MOV P1,#11110011B

CALL DELAY2

MOV P1,#11111111B

CALL DELAY2

CJNE R4,#00H,START3 JMP RED

SCAN3:

MOV P0,#00H

MOV A,21H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

MOV P0,#01H

MOV A,20H

MOVC A,@A+DPTR

MOV P0,A

CALL DELAY1

RET

DELAY: MOV R0,#5

D1: MOV R1,#40

D2: MOV R2,#248

CALL SCAN3

DJNZ R2,$

DJNZ R1,D2

DJNZ R0,D1

RET

DELAY1: MOV R3,#2

D3: MOV R5,#248

DJNZ R5,$

DJNZ R3,D3

RET

DELAY2: MOV R6,#100

D0: MOV R7,#248

CALL SCAN3

DJNZ R7,$

DJNZ R6,D0

RET

ORG 0200H

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

【实验思考】

当有救护车经过时,怎样让交通灯全部变为红色,当救护车经过后,恢复正常。

单片机考试题库

单片机原理及应用试题一 一、填空题(每空1分,共20分) 1、计算机的系统总线有地址总线、控制总线和数据总线。 2、通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。 3、JZ e 的操作码地址为1000H,e=20H,它转移的目标地址为1022H。 4、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。 5、假定累加器A的内容30H,执行指令: 1000H:MOVC A,@A+PC 后,把程序存储器1031H单元的内容送累加器A中。 6、MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。 7、MCS-51单片机8031中有2 个16 位的定时/计数器,可以被设定的工作方式有四种。 8、MCS-51单片机有 5 个中断源,可分为 2 个中断优先级。上电复位时外部中断0 中断源的最高。 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、半导体存储器的最重要的两个指标是存储容量和存储速度。 11、若某8位D/A转换器的输出满刻度电压为+5V,则D/A转换器的分辨率为5/255=0.0196V。 12、写8255A控制字时,需将A1、A0置为11。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1分,共10分) 1、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是(B ) (A)PC (B)PSW (C)A (D)SP 2、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(B )

单片机实验报告书

并行I/O 接口实验 一、 实验目的 熟悉掌握单片机并行I/O 接口输入和输出的应用方法。 二、 实验设备及器件 个人计算机1台,装载了 Keil C51集成开发环境软件。 机仿真器、编程器、实验仪三合一综合开发平台 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 、 LED1 P1.0 VCC T a LED2 r 1k P1.1 .LED8 1k P1. 7 U1 DP-51PRO.NE 单片

RL A

DJNZ R2,L00P 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 集成开发环境软件。 DP-51PR0.NE 单片机仿真器、编程器、实验仪三合一综合开发平台 1台 三、实验内容 AT eK 1 -LJIU1L AUDIOZ20H A^-: M02NP01[EF L^D-GR^NI LEDRSP ■艮 A 4 - i i H - 330 -T I P H T H rs&oRJEtw F 轉-3 BEEN ■jHEEFl U1 30. Pt B -4 PUjfl PO(WO PO.WAtH FQ.27AIE FO3W3 Robert FO.57AW POBWe POJAW F2.1TO F2^fA10 PSjUAH P2 剤MZ F2.5fA13 F2.afAM P2.MM6 P3J0URXD 啊1XW FJ- ZflUTD pa.anHTi FM 4T 「| P3.0>T1 P3JWM PSJ^D 33C> 33P 町E 4 阿5REEF4 XTAL2 RST PSEH ALE

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

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

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

单片机实验指导书

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

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

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

单片机上机操作考试题部分答案

1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时 间为。 #include<> #include<> #define uchar unsigned char uchar T_count=0; 成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态 #include<> #define uint unsigned int #define uchar unsigned char sbit k1=P3^2; sbit k2=P3^3; 一个数码管上循环显示“H”“E”“L”“L”“O” ,循环的时间为1s。

#include<> #define uchar unsigned char #define uint unsigned int uchar code tab[]={0xf6,0xf9,0xb8,0xb8,0xbf}; uchar T_count=0; uchar i=1; void t0Proc() interrupt 1 { TH0=0x3c; TL0=0xb0; if(++T_count==10) { P0=tab[i]; i=(i+1)%5; T_count=0; } } void main() { TMOD=1; TH0=0x3c; TL0=0xb0; EA=1;

TR0=1; ET0=1; P0=tab[0]; 6个数码管上分别显示自己学号的后六位数字。 #include<> #include<> #define uchar unsigned char #define uint unsigned int uchar code tab[]={};一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。 #include<> #define uchar unsigned char void delay1s() { uchar i; for(i=0;i<10;i++) { TH1=0x3c; TL1=0xb0; TR1=1; 用外中断0来控制,去实现下列功能。 其中K1为按键,P1口对应8个发光二极管的状态

单片机实验报告

实验报告 专业:计算机科学与技术班级: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

单片机实验指导书

实验一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所示。

单片机上机操作考试题部分答案

单片机上机操作考试题 部分答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的 时间为0.5s。 #include #include #define uchar unsigned char uchar T_count=0; //定时中断 void toProc() interrupt 1 { TH0=(8192-5000)/32; //恢复初值 TL0=(8192-5000)%32; if(++T_count==100) //0.5s移动一位 { P0=_crol_(P0,1); T_count=0; } } //主函数 void main() { TMOD=0; TH0=(8192-5000)/32; //5ms定时

TL0=(8192-5000)%32; EA=1; ET0=1; TR0=1; P0=0xfe; while(1); } 2.完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态 #include #define uint unsigned int #define uchar unsigned char sbit k1=P3^2; sbit k2=P3^3; //延时 void delay(uint x) { uchar i;

while(--x) { for(i=0;i<120;i++); } } //主函数 void main() { while(1) { if((k1==0)&&(k2==0)) //K1、K2同时按下{ P1=0x00; delay(10); } else if((k1==0)&&(k2==1)) //K1按下,K2不按 { P1=0xcc; delay(10); } else if((k1==1)&&(k2==0)) //K2按下,K1不按 { P1=0xf0;

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级: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)

单片机实验指导书

单片机实验指导书 适用专业:计算机控制、网络、物联网等 学时: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单片机练习题

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

如图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 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求秒=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所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发

单片机实训报告

单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩:

一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; sbit S1=P1^4; sbit S2=P1^7; unsigned char i,j; delay(unsigned int x) { for(j=0;j

for(i=0;i<10;i++); } void main() { uchar i,b,d; while(1) {if (S1==0) {delay(50); if(S1==0); S1=b; b=0; {for(i=0;i<8;i++) { P2=tab[i]; delay(50); {if (S2==0) {delay(50); if(S2==0); S1=d; d=1; P2=0xff; }} } } } } } 设计思想总结 用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极

管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM 进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include #include int lamp = 0xfe ; int cnt = 0; main() {P2 = 0xfe; TMOD = 0x01; TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ; ET0 = 1;

单片机实验报告

单片机实验报告 【实验一】 一、实验名称 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

单片机实验指导书

实验一8051简单编程与调试实验目的 通过简单小程序的输入和调试,熟悉并掌握Keil 的使用。学会Proteus与Keil的整合调试。 实验基本要求 建立三个项目,分别输入存储块清零、二进制BCD码及二进制ASCII码转换的汇编源程序,并进行仿真调试。画出实验程序的流程框图。 实验步骤 采用Keil Cx51 开发8051单片机应用程序一般需要经过下面几个步骤: 1、在 Vision2集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件。 在菜单栏中选择“Project”→“New Project”,弹出“Create New Project”对话框,选择目标路径,在“文件名”栏中输入项目名后,单击“保存(S)”按钮,弹出“Selecte Device for Target”对话窗口。在此对话窗口的“Data base”栏中,单击“Atmel”前面的“+”号,或者直接双击“Atmel”,在其子类中选择“AT89C51”,确定CPU类型。如图所示。 点击“确定”按钮后,弹出如下的对话框

如果是进行汇编语言编程选择“否”。 2、利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 在μVision2的菜单栏中选择“File”→“New”命令,新建文档,然后在菜单栏中选择“File”→“Save”命令,保存此文档,这时会弹出“Save As”对话窗口,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.asm”。单击“保存(S)”按钮,这样在编写汇编代码时,Keil会自动识别汇编语言的关键字,并以不同的颜色显示,以减少输入代码时出现的语法错误。程序编写完后,再次保存。 在Keil中“Project Workspace”子窗口中,单击“Target 1”前面的“+”号,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to ‘Group Source 1’”,弹出“Add File to Group”对话窗口,在此对话窗口的“文件类型”栏中,选择“Asm Source File”,并找到刚才编写的.asm文件,双击此文件,将其添加到Source Group 中,此时“Project Workspace”子窗口如图所示。

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

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

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

单片机实验指导书

单片机实验 实 验 指 导 书 2017年2月

单片机实验报告 (自动化XX级) 实验名称 学生 联系方式 学号 院系工学院电气与信息工程系专业自动化 指导教师 填写日期

实验一数据传送 一、实验目的 1.进一步熟悉仿真器的使用方法。 2.练习设计简单的程序。 3.掌握8051片RAM和片外RAM的数据传送方法,从而了解这两部分存贮器的特点。 二、实验容 将8051部RAM 40H~4FH置初值00H~0FH,然后将40H~4FH容传送到外部RAM的4800H~480FH,再将4800H~480FH传回部RAM的50H~5FH。设置断点B1、B2、B3每运行到断点时检查相应的CPU现场和存贮单元的容。 三、实验准备 1、认真阅读本实验指导。 2、读懂下面的程序: #include #include char data *p40 ,*p50 ; char xdata *p4800; char i, j, k; void main( ) { p40=0x40; p50=0x50; p4800=0x4800; for(i=0;i<16;i++) { *p40=i; p40=p40+1; } //B1 p40=0x40; for(j=0;j<16;j++) { *p4800=*p40; p40=p40+1; p4800=p4800+1; } // B2 p4800=0x4800; for(k=0;k<16;k++) { *p50=*p4800; p50=p50+1;

p4800=p4800+1; } } //B3 3、画出如下要测的数据表格: 四、实验步骤 1、向机器输入程序。 2、运行程序至第一个断点B1,检查40H~0FH单元容及指针p40的容。 3、运行程序至第二个断点B2,检查4800H~480FH单元容及指针p40,p4800的容。 4、运行程序至第三个断点B3,检查50H~5FH单元容及累加器及指针p50的容。 五、实验报告要求 1、写出C语言源程序和对应的汇编语言指令及注解的程序清单。 2、将测得的数据填入表格,并和理论分析的结果相比较。 3、说明8031CPU对部存贮器和外部扩展RAM存贮器各有哪些寻址方式? 4、如果要读外部程序存储器0x4800中的容,该如何访问? 5.实验心得。(必须)

单片机考试试题带答案

单片机原理及应用试卷A 一、填空题(每空1分,共20分) 1、单片微型计算机由CPU、存储器和I/O 三部分组成。 PSEN信号有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51系统中,当 3、访问8031片外数据存储器采用的是寄存器间接寻址方式。 4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。 5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。 6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。 7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。 8、中断请求信号有电平触发和脉冲触发两种触发方式 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对并行I/O口内的锁存器进行的。 12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分) 1、计算机能识别的语言是( C )。 (A)汇编语言(B)自然语言(C)机器语言(C)高级语言 2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 3、在中断服务程序中,至少应有一条( D )。 (A)传送指令(B)转移指令(C)加法指令(D)中断返回指令

单片机实验报告

课程实验报告 20 ——20 学年()学期 课程名称 专业班级 学生姓名 学号 任课教师 徐州工程学院

实验项目编号 1 实验项目名称I/O口操作实验 实验学时 3 实验日期12月14日成绩 实验地点教二522 指导老师陈卿一、实验目的:1、熟悉keil与proteus操作,掌握程序调试的方法;2、学习I/O口使用 方法 二、实验设备:PC机、keil开发软件、proteus软件 三、实验内容: P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 四、实验原理图:

五、实验步骤:1.打开模拟电路图及其对应keil工程文件 2.编写程序并调试 六、程序流程图: 七、思考:1.如果当P0.7为0时P1口状态才改变,程序应该如何改动? 2.如果把表1.1中的0换成1,1换成0,程序该如何改动?注:本表填写不下,可附页

实验项目编号 2 实验项目名称定时器/计数器实验 实验学时 3 实验日期12月16日成绩 实验地点教二522 指导老师陈卿一、实验目的:通过对T0、T1的编程、学习,掌握定时器的初值计算、方式及模式设定等 初始化方法。学习使用“查询”和“中断”两种方式的编程。 二、实验设备:PC机、keil、proteus 三、实验原理: 四、实验内容: 1、输出方波实验: 实验电路图如下所示: 要求P3.0输出周期为2S的方波,同时P3.1输出周期为1S的方波。 输入程序如下:

2、对外部脉冲计数: 实验电路图如下所示: P3.4作为外部脉冲的输入端口,P1作为显示输出端口。 参考程序如下:

相关文档
最新文档