当前位置:文档之家› 单片机实验报告书

单片机实验报告书

单片机实验报告书
单片机实验报告书

软件实验

实验一拆字程序实验

一、实验目的:

掌握汇编语言设计方法。

二、实验内容:

把8000H地址上的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把数据送显示缓冲区时使用。

三、实验器材:

计算机 1台

四、实验步骤:

1、按流程图编写程序,以下是通过计算机交叉汇编得到的.LST文件清单,供参考。

2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。

3、设置观察窗口:

(1)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000];

(2)在8000H中写入数据(任意);

(3)单步执行观察寄存器和8000H—8002H的变化。

五、程序框图:

七、实验程序(51asm\A8051.ASM)

;把指定字节的高低位拆开分别存放,多用于显示子程序

ORG 0000H

MOV DPTR,#8000H ;指定的字节

MOVX A,@DPTR

MOV B,A ;暂存

SWAP A ;交换

ANL A,#0FH ;屏敝高位

INC DPTR

MOVX @DPTR,A

INC DPTR

MOV A,B

ANL A,#0FH ;指定字节的内容屏敝高位

MOVX @DPTR,A

LOOP: SJMP LOOP

END

实验二拼字程序实验

一、实验目的:

1、进一步掌握汇编语言设计;

2、熟悉软件调试方法。

二、实验内容:

把8000H、8001H两个字节的低位分别送入8002H的高位和低位。本程序一般用于把显示缓冲区数据取出拼装成一个字节。

三、实验器材:

计算机 1台

四、实验步骤:

1、编写程序并编译成机器代码。

2、用断点或单步方式运行程序,检查8000H-8002H,A,B中內容变化情况。查看内部RAM、外部RAM、断点运行方式、单步操作等请参阅有关章节。

3、打开AP6264.asm程序

(1)文件、编译、连接、装载:点击[项目/重建所有目标文件],系统进行自动编译,并弹出信息窗口,点击[调试/启动/停止调试]进入调试状态。

(2)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000],将地址定位于8000H。

(3)在8000H中写入任意数据,单步执行观察寄存器和数据存储区的变化。

五、程序框图:

六、思考问题:

修改8000H、8001H内容重复上述实验。

七、实验程序:(51asm\Ap6264.ASM)

;把两字节的低位合拼成一个字节,多用于显示子程序ORG 0000h

MOV DPTR,#8000H

MOVX A,@DPTR

ANL A,#0FH ;屏敝高位

SWAP A

MOV B,A ;保存

INC DPTR

MOVX A,@DPTR

ANL A,#0FH

ORL A,B ;合拼

INC DPTR

MOVX @DPTR,A ;送8002H存放

LOOP: SJMP LOOP

END

硬件基础性实验

实验一八段数码管显示实验

一、实验目的:

1、了解数码管动态显示的原理。

2、了解74LS164扩展端口的方法。

二、实验要求:

利用实验仪提供的显示电路,动态显示一行数据。

三、实验器材:

1、超想-3000TB综合实验仪 1 台

2、KEIL仿真器 1 台

3、计算机 1 台

四、实验说明:

1、本实验仪提供了8段码数码管LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,采用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为 0e101H。本实验涉

及到了

2

五、程序框图:

六、实验步骤:

1、将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。

2、进入KEIL软件界面,点击项目/打开项目

在C:\KEIL\UV2\3000TB51配套实验例程中选择实验一,内有ASM和C51两种程序,进入ASM文件夹打开LED项目文件

进入如图所示界面

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F

七、实验程序:

OUTBIT equ 0e101h ; 位控制口

返回

开始

初始化显示参数

关所有位显示

取显示数据

数据移位输出到164

输出时钟脉冲到164

8段码完成

输出位选通信号

延时

位选通信号移位

指向下一个显示数据

6位完成

CLK164 equ 0e102h ; 段控制口(接164时钟位)

DAT164 equ 0e102h ; 段控制口(接164数据位)

IN equ 0e103h ; 键盘读入口

LEDBuf equ 60h ; 显示缓冲

Num equ 70h ; 显示的数据

DelayT equ 75h ;

org 0000h

ljmp Start

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序

mov r7, #0

DelayLoop:

djnz r7, DelayLoop

djnz r6, DelayLoop

ret

DisplayLED:

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管

mov r2, #00100000b ; 从左边开始显示Loop:

mov dptr, #OUTBIT

mov a, #00h

movx @dptr, a ; 关所有八段管

mov a, @r0

mov B, #8 ; 送164

DLP:

rlc a

mov r3, a

mov acc.0, c

ANL A, #0FDH

mov dptr, #DAT164

movx @dptr, a

mov dptr, #CLK164

orl a,#02h

movx @dptr, a

anl a,#0fDh

movx @dptr, a

mov a, r3

djnz B, DLP

mov dptr, #OUTBIT

mov a, r2

movx @dptr, a ; 显示一位八段管

mov r6, #1

call Delay

mov a, r2 ; 显示下一位

rr a

mov r2, a

inc r0

djnz r1, Loop

mov dptr, #OUTBIT

mov a, #0

movx @dptr, a ; 关所有八段管

ret

Start: mov dptr,#0e100h

mov a,#03h

movx @dptr,a

mov sp, #40h

mov Num, #0

MLoop:

inc Num

mov a, Num

mov b, a

mov r0, #LEDBuf

FillBuf:

mov a, b

anl a, #0fh

mov dptr, #LEDMap

movc a, @a+dptr ; 数字转换成显示码

mov @r0,a ; 显示在码填入显示缓冲

inc r0

inc b

cjne r0, #LEDBuf+6, FillBuf

mov DelayT,#30

DispAgain:

call DisplayLED ; 显示

djnz DelayT,DispAgain

ljmp MLoop

END

实验二键盘扫描显示实验

一、实验目的:

1、掌握键盘和显示器的接口方法和编程方法。

2、掌握键盘扫描和LED八段数码管显示器的工作原理。

二、实验要求:

在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

实验程序可分成三个模块。

1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

2、显示模块:将显示单元的内容在显示器上动态显示。

3、主程序:调用键输入模块和显示模块。 三、实验器材:

1、超想-3000TB 综合实验仪1台

2、KEIL 仿真器 1台

3、计算机1 台 四、实验电路:

这里只是键盘草图,详细原理参见“8155键显模块”。

五、实验说明:

本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。列扫描码还可以

分时用作LED 的位选通信号。 六、实验框图:

主程序框图

读键输入子程序框图

显示程序框图见上个实验

列码

(0e101H)

行码 (0e103H) 显示缓冲区初始化

LED 显示 读取键值

键值转换为显示数据

有键输入? 否

是 否

开始

输出列扫描信号

列扫描信号移位

该列有键输入?

读入行信号

6列扫描完?

初始化地址参数

按照行列计算键值

查表得键码

等待键盘释放

返回

七、实验程序:

;键盘扫描实验

OUTBIT equ 0e101h ; 位控制口

CLK164 equ 0e102h ; 段控制口(接164时钟位)

DAT164 equ 0e102h ; 段控制口(接164数据位)

IN equ 0e103h ; 键盘读入口

ORG 0000H

LJMP STAR

;========================================================================== KEY1: MOV 13H,#06H

MOV 12H,#20H

KEY2: MOV A,12H

CPL A

MOV R7,A

MOV DPTR,#0E101H

MOV A,R7

MOVX @DPTR,A

MOV A,12H

CLR C

RRC A

MOV 12H,A

MOV DPTR,#0E103H

MOVX A,@DPTR

MOV R7,A

MOV A,R7

CPL A

MOV R7,A

MOV A,R7

ANL A,#0FH

MOV 14H,A

DEC 13H

MOV R7,13H

MOV A,R7

JZ KEYDIS

MOV A,14H

JZ KEY2

KEYDIS: MOV A,14H

JZ TESTKEY5

MOV A,13H

ADD A,ACC

ADD A,ACC

MOV 13H,A

MOV A,14H

JNB ACC.1,TESTKEY

INC 13H

SJMP TESTKEY2

;;=================================================

;键盘扫描

TESTKEY: MOV A,14H

JNB ACC.2,TESTKEY1

INC 13H

INC 13H

SJMP TESTKEY2

TESTKEY1: MOV A,14H

JNB ACC.3,TESTKEY2

MOV A,#03H

ADD A,13H

MOV 13H,A

TESTKEY2: MOV DPTR,#0E101H

CLR A

MOVX @DPTR,A

TESTKEY3: MOV R7,#0AH

LCALL MLOOP

LCALL MLOOP4

MOV A,R7

JNZ TESTKEY3

MOV R7,13H

MOV A,R7

MOV DPTR,#0134H

MOVC A,@A+DPTR

MOV R7,A

RET

;========================================================================== TESTKEY4: DB 22H ;"

;========================================================================== TESTKEY5: MOV R7,#0FFH

RET

;========================================================================== GETKEY: MOV 10H,#20H

MOV 0EH,#00H

GETKEY1: MOV A,0EH

CLR C

SUBB A,#06H

JNC GOON2

MOV DPTR,#0E101H

CLR A

MOVX @DPTR,A

MOV R7,0EH

MOV A,#08H

ADD A,R7

MOV R0,A

MOV A,@R0

MOV R7,A

MOV 11H,R7

MOV 0FH,#00H

GETKEY2: MOV A,0FH

JNC GOON1

MOV A,11H

JNB ACC.7,KLOOP

MOV DPTR,#0E102H

MOV A,#01H

MOVX @DPTR,A

SJMP KLOOP1

;;========================================== KLOOP: MOV DPTR,#0E102H

CLR A

MOVX @DPTR,A

KLOOP1: MOV DPTR,#0E102H

MOVX A,@DPTR

MOV R7,A

MOV A,R7

ORL A,#02H

MOV R7,A

MOV A,R7

MOVX @DPTR,A

MOV DPTR,#0E102H

MOVX A,@DPTR

MOV R7,A

MOV A,R7

ANL A,#0FDH

MOV R7,A

MOV A,R7

MOVX @DPTR,A

MOV A,11H

ADD A,ACC

MOV 11H,A

INC 0FH

SJMP GETKEY2

GOON1: MOV DPTR,#0E101H

MOV A,10H

MOVX @DPTR,A

MOV R7,#01H

LCALL MLOOP

MOV A,10H

CLR C

RRC A

MOV 10H,A

INC 0EH

SJMP GETKEY1

GOON2: RET

;========================================================================== WAIT: MOV DPTR,#0E100H

MOV 08H,#0FFH

MOV 09H,#0FFH

MOV 0AH,#0FFH

MOV 0BH,#0FFH

MOV 0CH,#00H

MOV 0DH,#00H

WAIT1: LCALL GETKEY

LCALL MLOOP4

MOV A,R7

JZ WAIT1

LCALL KEY1

MOV R6,#00H

MOV R6,#00H

MOV A,R7

ANL A,#0FH

MOV R7,A

MOV A,#24H

ADD A,R7

MOV DPL,A

MOV A,#01H

ADDC A,R6

MOV DPH,A

CLR A

MOVC A,@A+DPTR

MOV R7,A

MOV 0DH,R7

SJMP WAIT1

RET

;========================================================================== TAB:

Q0124: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H ;?.[Ofm}.

Q012C: DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;?ow|9^yq

Q0134: DB 00H, 01H, 04H, 07H, 0FH, 02H, 05H, 08H ;........

Q013C: DB 0EH, 03H, 06H, 09H, 0DH, 0CH, 0BH, 0AH ;........

Q0144: DB 10H, 11H, 12H, 13H, 14H, 15H, 16H ;.......

;========================================================================== MLOOP: MOV 15H,R7

MLOOP1: MOV R7,15H

DEC 15H

MOV A,R7

JZ MLOOP3

MOV 16H,#64H

MLOOP2: MOV A,16H

JZ MLOOP1

DEC 16H

SJMP MLOOP2

MLOOP3: RET

;==========================================================================

MLOOP4: MOV DPTR,#0E101H

CLR A

MOVX @DPTR,A

MOV DPTR,#0E103H

MOVX A,@DPTR

MOV R7,A

MOV A,R7

CPL A

MOV R7,A

MOV A,R7

ANL A,#0FH

MOV R7,A

RET

;==========================================================================

STAR: MOV R0,#7FH

CLR A

STAR1: MOV @R0,A

DJNZ R0,STAR1

MOV SP,#16H

LJMP WAIT

END

;==================================================================

实验三步进电机控制实验

一、实验目的:

了解步进电机工作原理,掌握用单片机的步进电机控制系统的硬件设计方法,熟悉步进电机驱动程序的设计与调试,提高单片机应用系统设计和调试水平。

二、实验内容:

编写并调试出一个实验程序按下图所示控制步进电机旋转:

三、工作原理:

步进电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杠把角度变为直线位移,也可以用步进电机带螺旋电位器,调节电压或电流,从而实现对执行机构的控制。步进电机可以直接接收数字信号,不必进行数模转换,用起来非常方便。步进电机还具有快速启停、精确步进和定位等特点,因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛的应用。

步进电机实际上是一个数字/角度转换器,三相步进电机的结构原理如图所示。从图中可以看出,电机的定

子上有六个等分磁极,A、A′、B、B′、C、C ′,相邻的两个磁极之间夹角为60o,相对的两个磁极组成一相(A-A′,B-B′,C-C′),当某一绕组有电流通过时,该绕组相应的两个磁极形成N极和S极,每个磁极上各有五个均匀分布矩形小齿,电机的转子上有40个矩形小齿均匀地分布的圆周上,相邻两个齿之间夹角为9°。

当某一相绕组通电时,对应的磁极就产生磁场,并与转子形成磁路,如果这时定子的小齿和转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子和定子的齿相互对齐。由此可见,错齿是促使步进电机旋转的原因。

三相步进电机结构示意图三相六拍环形脉搏冲分配器

例如在三相三拍控制方式中,若A相通电,B、C相都不通电,在磁场作用下使转子齿和A相的定子齿对齐,我们以此作为初始状态。设与A相磁极中心线对齐的转子的齿为0号齿,由于B相磁极与A相磁极相差120°,不是9°的整数倍(120÷9=40/3),所以此时转子齿没有与B相定子的齿对应,只是第13号小齿靠近B相磁极的中心线,与中心线相差3°,如果此时突然变为B相通电,A、C相不通电,则B相磁极迫使13号转子齿与之对齐,转子就转动3°,这样使电机转了一步。如果按照A→B→C的顺序轮流通电一周,则转子将动9°。

步进电机的运转是由脉冲信号控制的,传统方法是采用数字逻辑电路——环形脉冲分配器控制步进电机的步进。上图为环形脉搏冲分配器的简化框图。

1、运转方向控制。如图所示,步进电机以三相六拍方式工作,若按A→AB→B→BC→C→CA→A次序通电为正转,则当按A→AC→C→CB→B→BA→A次序通电为反转。

2、运转速度的控制。图中可以看出,当改变CP脉冲的周期时,ABC三相绕组高低电平的宽度将发生变化,这就导致通电和断电时速率发生了变化,使电机转速改变,所以调节CP脉冲的周期就可以控制步进电机的运转速度。

3、旋转的角度控制。因为每输入一个CP脉冲使步进电机三相绕组状态变化一次,并相应地旋转一个角度,所以步进电机旋转的角度由输入的CP脉冲数确定。

超想-3000TB实验仪选用的是20BY-0型4相步进电机,其工作电压为4.5V,在双四拍运行方式时,其步距角为18O ,相直流电阻为55Ω,最大静电流为80Ma。采用8031单片机控制步进电机的运转,按四相四拍方式在P1口输出控制代码,令其正转或反转。因此P1口输出代码的变化周期T控制了电机的运转速度:n=60/T.N

式中:n ——步进电机的转速(转/分);

N ——步进电机旋转一周需输出的字节数;

T ——代码字节的输出变化周期。

设N=360°/ 18°=20,T=1.43ms,则步进电机的转速为2100转/分。

控制P1口输出的代码字节个数即控制了步进电机的旋转角度。

正方向:

反方向:

四、实验步骤:

1、“总线插孔”区的P1.0-P1.3孔接步进

电机的BA-BD孔,“发光二极管组”的

L0-L3孔接步进电机A、B、C、D孔。

P1.7孔连L7。

2、编写程序、编译程序。用单步、全速断点、连续方式调试程序,观察数码管上数字变化,检查程序运行结果,

观察步进电机的转动状态,连续运行时用示波器测试P1口的输出波形,排除软件错误,直至达到本实验的设计要求。根据步进电机工作原理,使用8031的 P1.0-P1.3分别驱动步进电机

A、B、C、D相,用软件控制P1口输出一脉冲

序列,控制步进电机转速、方向、步距。同时为能观察步进电机旋转状态,在A、B、C、D

正反转步进子程序框图

七、实验程序:

ORG 0000H

STRT: MOV SP,#6FH ;初始化

MOV 20H,#0 ;状态寄存器清零

MOV P1,#0F1H ;正转A相通电

MLP: MOV R7,#64H ;R7为步计数器,正转100步

MOV 42H,#0C8H ;42H为延时计数器

MLP0: MOV R6,42H ;调用延时200MS子程序

MLP9: LCALL DEL

DJNZ R6,MLP9

DEC 42H

LCALL STEPS ;调用步进子程序

DJNZ R7,MLP0 ;以上为加速程序

MOV R7,#64H ;以下为恒速程序

MLP1: MOV R6,42H

MLPX: LCALL DEL

DJNZ R6,MLPX

LCALL STEPS

DJNZ R7,MLP1

MOV R7,#64H ;以下为减速程序

MLP2: MOV R6,42H

MLPY: LCALL DEL

DJNZ R6,MLPY

LCALL STEPS

INC 42H

DJNZ R7,MLP2

CPL 7

LJMP MLP

STEPS:INC 20H ;正反转步进子程序

ANL 20H,#83H

MOV A,20H

ANL A,#3

JB 7,STPSC

MOV DPTR,#FTAB

SJMP STPW

STPSC:MOV DPTR,#CTAB

STPW: MOVC A,@A+DPTR

MOV P1,A

RET

FTAB: DB 0F3H,0F6H,0FCH,0F9H

CTAB: DB 79H,7cH,76H,73H

DEL: MOV R5,#0 ;延时子程序

DEL0: DJNZ R5,DEL0

RET

END ; “验证式”实验七* * 步进电控制机 ORG 0000H

STRT: MOV SP,#6FH ;初始化

MOV 20H,#0 ;状态寄存器清零

MOV P1,#0F1H ;正转A相通电

MLP: MOV R7,#64H ;R7为步计数器,正转100步

MOV 42H,#0C8H ;42H为延时计数器

MLP0: MOV R6,42H ;调用延时200MS子程序

MLP9: LCALL DEL

DJNZ R6,MLP9

DEC 42H

LCALL STEPS ;调用步进子程序

DJNZ R7,MLP0 ;以上为加速程序

MOV R7,#64H ;以下为恒速程序

MLP1: MOV R6,42H

MLPX: LCALL DEL

DJNZ R6,MLPX

LCALL STEPS

DJNZ R7,MLP1

MOV R7,#64H ;以下为减速程序

MLP2: MOV R6,42H

MLPY: LCALL DEL

DJNZ R6,MLPY

LCALL STEPS

INC 42H

DJNZ R7,MLP2

CPL 7

LJMP MLP

STEPS:INC 20H ;正反转步进子程序

ANL 20H,#83H

MOV A,20H

ANL A,#3

JB 7,STPSC

MOV DPTR,#FTAB

SJMP STPW

STPSC:MOV DPTR,#CTAB

STPW: MOVC A,@A+DPTR

MOV P1,A

RET

FTAB: DB 0F3H,0F6H,0FCH,0F9H

CTAB: DB 79H,7cH,76H,73H

DEL: MOV R5,#0 ;延时子程序

DEL0: DJNZ R5,DEL0

RET

END

实验四工业顺序控制(INTO、INTI)综合实验一、实验目的:

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

二、实验内容:

8031 P1.0-P1.6控制注塑机七道工序,现模拟控制七只发光二极管的点亮,高电平点亮。设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出。设定7道工序只有一位输出。

三、实验器材:

1、超想3000TB综合实验仪1台

2、KEIL仿真器1台

3、计算机1台

4、连线若干根

四、实验步骤:

按图接好连线。执行程序,把K1和K0接到高电平,观察发光二极管点亮情况,确定工序执行是否正常,然后把K0置为低电平,看是否有声音报警。恢复中断1,报警停,又从刚才报警时一道程序执行下去。

五、思考问题:

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

六、程序框图:七、接线图案:

八、实验程序:

;掌握工业顺序控制的简单编程,中断的使用 ORG 0000H

SJMP MAIN

ORG 0013H

LJMP INTO

MAIN: MOV P1,#00H

ORL P3,#00H

PO11: JNB P3.4,PO11 ;开工吗?

ORL IE,#84H

ORL IP,#04H

MOV PSW,#00H ;初始化

MOV SP,#53H

PO12: MOV P1,#01H ;第一道工序 ACALL PO1BH 中断服务子程序

开始

开中断,P1、P3口初始化

等开工

工序1延时

工序2延时

工序7延时

主程序流程图

关输出

保护现场

报警

故障清除了

恢复现场

返回

N

MOV P1,#02H ;第二道工序

ACALL PO1BH

MOV P1,#04H ;第三道工序

ACALL PO1BH

MOV P1,#08H ;第四道工序

ACALL PO1BH

MOV P1,#10H ;第五道工序

ACALL PO1BH

MOV P1,#20H ;第六道工序

ACALL PO1BH

MOV P1,#40H ;第七道工序

ACALL PO1BH

SJMP PO12

INTO: MOV B,R2 ;保护现场

PO17: MOV P1,#00H ;关输出

MOV 20H,#0A0H ;振荡次数PO18: SETB P1.7 ;振荡

ACALL PO1A ;延时

CLR P1.7 ;停止

ACALL PO1A ;延时

DJNZ 20H,PO18 ;不为零转

CLR P1.7

ACALL PO1A

JNB P3.3,PO17 ;故障消除吗?

MOV R2,B ;恢复现场

RETI

PO19: MOV R2,#10H ;延时1

ACALL DELY

RET

PO1A: MOV R2,#06H ;延时2

ACALL DELY

RET

PO1BH: MOV R2,#30H ;延时3

ACALL DELY

RET

DELY: PUSH 02H ;延时子程序

DEL2: PUSH 02H

DEL3: PUSH 02H

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DELY

单片机考试题库

单片机原理及应用试题一 一、填空题(每空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 )

4毕业设计成果报告书

毕业设计成果报告书题目高升公司财务报表分析 二级学院经济贸易学院 专业会计电算化 班级会计1303 学生姓名欧阳整 学号201320131577 指导教师唐昌明 2015年 11月

高升财务报表分析设计方案 课题名称 成果报告(2500字左右) 一、毕业设计过程 第一阶段:选题 回想大学三年学过的专业课程屈指数来有:《基础会计》、《财务会计》、《财经法规与会计职业道德》、《初级会计电算化》、《成本会计》、《会计电算化(用友)》、《成本会计》、《税法》、《税务会计》、《审计》、《财务管理》等等,怎样才能将我所学知识综合运用起来解决实际问题能?冥思苦想,查阅资料:“会计的基本职能是核算和监督”、“核算的环节有确认、计量和报告”、“会计的目标是:(1)提供关于一定时期内企业财务状况及其经营活动的可靠资料。利用这一资料,企业的管理者可以直观地了解企业的经营状况,寻找不足,分清责任,从而对企业未来的发展做出决策。(2)提供有助于信息使用者预测、比较、评估企业经营业绩和存在问题的资料。可以使管理者及时发现企业经营中的弱点,正确地评估企业的经营能力,从而尽早发现不足,扭转局面。(3)提供有助于指挥、调节和监督企业生产经营活动的财务资料。指挥、调节、监督是会计的控制职能,通过对企业的控制,来达到预期的目标,为企业获得更多的利润,这是会计在企业中不可缺少的一个重要原因。”会计职能和目标的实现,都需要分析企业的财务报表。“做好财务报表分析工作,可以正确评价企业的财务状况、经营成果和现金流量情况,揭示企业未来的报酬和风险;可以检查企业预算完成情况,考核经营管理人员的业绩,为建立合理的激励机制提供帮助。” 基于上面分析,我选择将财务报表分析作为自己毕业设计的选题方向。 第二阶段:查阅和收集毕业设计相关资料,拟定毕业设计提纲,撰写开题报告 要完成选题,还面临着许多难题。一是公司背景资料的完善;二是设计的思路和需要用到的技术方法,脑海一片空白。正在自己一筹莫展之际,指导老师给我下达了任务书。任务书里有明确的“课题目标与任务”,有具体的“实施步骤和方法”,还提供了大量的参考文献。 课题目标与任务:本设计以高升公司为会计主体,基于财务分析相关的理论知识,结合高升公司财务报表,首先运用财务分析的基本方法,详细的分析了高升公司的偿债能力,营运能力、盈利能力,然后根据分析得出相应的结论,最后结合上述的具体分析指出该公司存在的问题和不足之处,并给出合理的建议。 实施步骤和方法:1.选择将高升公司的财务报表分析作为毕业设计的研究方向;2.明确分析的目的,制定分析工作计划;3.收集有关的信息资料;4.根据分析目的,运用科学的分析方法,深入比较、研究所收集的资料;5.作出分析结论,提出分析报告。运用“财务分析的基本方法:比率分析法、比较分析法、趋势分析法等;综合分析法:杜邦分析法” 老师提到的方法,我基本没有什么概念啦,还好,有图书馆、有网络。接下来就是查阅资料,整理思路,拟定提纲:“一、收集整理财务报表分析相关的基础理论;二、针对高升公司的报表综合运用财务分析方法,对公司的财务状况及营运能力、偿债能力、盈利能力进行分析,同时利用杜邦分析法对公司的财务状况和经营状况作出综合评价。三、通过分析发现高升公司在经营、管理方面存在的一些问题,并提出相应的建议。 第三阶段:结合企业工作实际,完成毕业设计初稿 在撰写初稿的过程中也遇到一些问题:一是公司基本情况的设计;二是财务分析指标比较的方法的理解、杜邦分析体系。 设计公司基本情况时,我开始设的是公司成立于1990年,而且是上市公司,指导老师一看,太不符合实情,因为这样资历和规模的公司,以我们目前的知识,很多问题是发现不了的,也是

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

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

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

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

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

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个发光二极管的状态

工程造价毕业设计成果报告书范文

工程造价毕业设计成果报告书范文 篇一:工程造价实习报告范文 工程造价实习报告范文 篇一、工程造价实习报告 20xx年3月至6月三个月期间,我在xxx工程公司实习。公司主要承担勘察,施工,设计等工作是拥有甲级资质的国有单位。这是第一次正式与社会接轨踏上工作岗位,开始与以往完全不一样的生活。每天在规定的时间上下班,上班期间要认真准时地完成自己的工作任务,绝不草率敷衍了事。对自己,对工作,对学校的声誉负责。成为一名能为社会做出贡献的热血青年,我们的肩上开始扛着责任。在此期间四川发生了特大地震,多少楼房倒塌,多少人掩埋,一切瞬间化为乌有。黑色的五月,沉痛的心情,迷茫的川人。作为一名建筑工作者,我们不仅仅是悲痛,还有更大的责任。我以生命的名义承诺,我一定做一名诚信,负责的建设者,绝不建“豆腐渣”工程。 我在实习过程中有不少的收获,实习结束后有必要好好总结一下。在工程部领导的教育和培养下,在同事们的关心和帮助下,自己的工作、学习等方面都取得了一定的成绩,个人综合素质也得到了一定的提高。在实习期间,我时刻严格要求自己,吃苦耐劳,努力工作,在完成领导交办的工作同时,积极主动地协助其他同事开展工作,并在工作过程中提高自身各方面的能力。使自己得到更多的锻炼 实习中我主要做了看图纸、熟悉规范·定额,做简单的造价,预算,标书和在施工现场做材料员等实践。现在回头看,我还是做了很多工作。首先我简单的汇报一下,刚进公司我对规范,定额做了再次温故,详细的看了几个工程的投标

过程,编写了一份标书。为了能更明白的了解设计者的设计原理,我将办公室里的图集看了个遍,对图纸进行了深入的研究,争取把每处不明白的地方都弄明白。看不懂图就不能做出合理的造价,所以看图确非常重要。然后我算了某个工程一部分的工程量,又对现行的工程进行了核量,虽然没有被采用只是试算。但我发现随着新的定额的推出、新价目的推出、新计算建筑面积规则的出现等,自己所学的专业知识用上的并不多,让我不得不重新学习新的计算方法。在这个信息爆炸的时代,知识更新的速度太快了,靠原有的一点知识肯定是不行的。我们必须时时刻刻在工作中勤于动手慢慢琢磨,不断学习不断积累。遇到不懂的地方,自己先想方设法解决,实在不行可以虚心请教他人,而没有自学能力的人迟早要被企业和社会所淘汰。但也是有很大收获。 之后我也下工地进行了实践,在书本上学过的理论知识,似乎通俗易懂,但从未付诸实践过,等到真正做出一套大楼的造价时,才会体会到难度有多大;也许亲临其境或亲自上阵才能意识到自己能力的欠缺和知识的匮乏。有时我空出一部分时间观察施工过程。该工程是框架剪力墙结构,目前在基础施工中。我对其钢筋和基础桩做了深入了解。如切割,坡口加工,断桩情况等。为防治断桩的主要措施是混凝土浇注过程中,应随时控制混凝土面的标高,提升要准确可靠,并严格遵守操作规程。严格确定混凝土的配合比,混凝土应有良好的和易性和流动性,坍落度损失应满足灌注要求。我在工地还做了材料员。不过我只是简单负责结构材料领发,根据工长签发的领料单,在额度范围内发料,并做及时记录。这次实习对我来说是受益非浅的.我就快毕业走向社会了,相信这次 实习对我日后参加工作有帮助.

单片机实验报告书

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

单片机实验报告

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

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

单片机上机操作考试题 部分答案 集团文件发布号:(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;

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) {

单片机实验报告

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

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时,发

毕业设计成果报告书

湖南科技工业职业技术学院毕业设计成果报告书 系部:电气系届别: 2011届专业:电子商务姓名:小明在本次毕业设计中,我主要要完成的任务是一个图片的美化与网店的装修,让网店能够运作起来。任务分为两部分,第一,网店的装修环节,第二,网店的运营与推广环节。 这次的网店装修设计,符合产品的特色和销售群体的心理,简约时尚的同时又清晰明了,让人看起来就觉得很大气,很干净也很舒服,充分体现出了青春活力的动力和清新,而在推广运营中,我充分利用了目前我可以动用的所有的网络营销资源,精益求精,不断了解新的推广方法,对推广方案进行跟进与修改,不断完善和修改自己的方案,使得最终取得良好的效果。一、毕业设计的过程 此次毕业设计的过程分为两部分,分别为网店的装修与运营推广,两者相互关联,在装修过程中也必须贯穿运营的思路。 首先,在开始装修之前,进行一系列的准备工作,选择货源,确定装修风格,下载素材图片,设计装修的排版。素材从千图网、昵图网下载,在选择素材图片时要结合装修风格。装修的风格和排版如同设计建造房屋,排版就如同房屋布局,装修使得房子变得有生命力,感染顾客的购物情绪,同时促使交易达成,提高销售额。通过合理布局,用PS完成装修,并测试其装修前后效果的对比。 其次,店铺的运营与推广,在运营之初,我就制作了一系列的运营方案,包含时下最流行的推广手段与推广技巧,因为刚开始的销量和流量均不多,进行为期一个月的跟踪测试截取后台数据后,从后台查看流量与销量的来

源,根椐后台流量数据分析,得出流量质量,确定推广手段的有效性。初步方案经过一个月的推广,店铺在第一个月的流量达到了五百,销量达到了两天一件,在前期这样的销量是非常可观的。 通过后台的数据撇除掉无用的推广手段,对主要的流量和销量来源进行针对性的重点推广,并加入网络最新更新的推广手段,进行测试数据查看其效果,并重新修改方案,让方案更完善与实用,再次进行一个月的跟踪调查测试,本店的流量达到了一千,较上月而言是翻倍式的成长,销量正式达到了每天一件,结果是非常鼓舞人心。但是网络每天是在变化的,店铺走上了正轨,接下来在后期不定时修改并加入新的推广手段,保持让店铺一直运营下去,并创造较好的效益。 二、毕业设计的收获 不断的修改与完善,我的毕业论文终于完成了,通过写作与设计的过程,让我对目前最热门的网购网站有了深刻的认识,摆脱了在课本上单纯的理论知识的学习状态,与实际设计相结合锻炼了我综合运用所学的专业知识解决实际问题的能力,同时也提高了我查阅文献资料、专业手册等的水平,而且对整体的掌握,对局部的取舍,都使我的能力得到了锻炼,经验得到了丰富,意志力得到了提升。相信在以后的工作中如果遇到类似的问题,一定会迎刃而解。这对我今后的工作有着积极的影响。 三、毕业设计方案的特点 本次毕业设计店铺装修的特点是非常符合产品的特色和销售群体的心理,简约时尚的同时又清晰明了,让人看起来就觉得很大气,很干净也很舒服,充分体现出了青春活力的动力和清新;运营与推广的特点是针对本店的

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)

单片机实验报告

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

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

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

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

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

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

单片机考试试题带答案

单片机原理及应用试卷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)中断返回指令

相关主题
文本预览
相关文档 最新文档