当前位置:文档之家› 单片机6个必做实验程序

单片机6个必做实验程序

第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。

掌握各种数制之间的转换是一种基本功。

我们将给定的一个二进制数,转换成二十进制(BCD)码。

将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A 赋值#123。

三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择使用伟福软件模拟器。

2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。

用键盘输入改变地址30H、31H、32H 的值,点击复位按钮后,可再次运行程序,观察其实验效果。

修改源程序中给累加器A的赋值,重复实验,观察实验效果。

3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数 MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数 MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。

若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。

三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择使用伟福软件模拟器。

2、打开TH4.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H、33H的数据变化,30H更新为0,31H更新为1,32H更新为2,33H更新为3。

用键盘输入改变地址30H、31H、32H、33H的值,点击复位按钮后,可再次运行程序,观察其实验效果。

修改源程序中给30H~33H的赋值,重复实验,观察实验效果。

3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序1、流程图2.源程序ORG 0LJMP STARTFUNC0: MOV 30H,#0RETFUNC1: MOV 31H,#1RETFUNC2: MOV 32H,#2RETFUNC3: MOV 33H,#3RETFUNCENTER:ADD A,ACC ;AJMP为二字节指令,调用号×2 MOV DPTR,#FUNCTABJMP @A+DPTRFUNCTAB:AJMP FUNC0AJMP FUNC1AJMP FUNC2AJMP FUNC3START:MOV A,#0CALL FUNCENTERMOV A,#1CALL FUNCENTERMOV A,#2CALL FUNCENTERMOV A,#3CALL FUNCENTERLJMP $END第二部分硬件基础实验实验七P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。

3、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型。

选择通信端口,点击测试串行口,通信成功既可退出设置,进行仿真。

4、打开TH7A.ASM源程序,进行编译。

编译无误后,点击全速执行按钮运行程序,观察发光二极管显示情况。

发光二极管单只从右到左轮流循环点亮。

5、把源程序编译成OBJ文件,再烧录到89C51芯片中。

实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。

程序读取开关状态,并在发光二极管上显示出来。

1、用导线连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。

2、打开TH7B.ASM源程序,编译无误后,全速运行程序,拨动拨断开关,观察发光二极管的亮灭情况。

向上拨为点亮,向下拨为熄灭。

3、把源程序编译成OBJ文件,再烧录到89C51芯片中。

四、流程图及源程序1.流程图2.源程序:(一)实验一ORG 0 LOOP: MOV A, #0FEHMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP LOOPDELAY: MOV R6,#0MOV R7,#0DELAYLOOP: ;延时程序 DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0SETB KEYLEFT ;欲读先置一SETB KEYRIGHTLOOP: MOV C,KEYLEFTMOV LEDLEFT,CMOV C,KEYRIGHTMOV LEDRIGHT,CLJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET本模块使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验十 8255输入、输出实验一、实验目的1、了解8255芯片结构及接口方式2、掌握8255输入、输出的编程方法 二、实验说明了解用到的芯片引脚及功能:8255是可编程的并行输入/输出接口芯片,通用性强且使用灵活。

8255按功能可分为三个部分,即:总线接口电路,口电路和控制逻辑电路。

1、口电路:8255共有三个八位口,其中A 口和B 口是单纯的数据口,供数据I/O 口使用。

2、总线接口电路:它用于实现8255和单片机芯片的信号连接。

(1)CS ——片选信号。

(2)RD ——读信号。

(3)WR ——写信号。

(4)A 0、A 1——端口选择信号。

8255共有四个可寻址的端口,用二位编码可以实现。

3、控制逻辑电路:它是控制寄存器,用于存放各口的工作方式控制字。

本实验是利用8255可编程并行口芯片,实现数据的输入、输出。

可编程8255的引脚图 74LS373的引脚图通用接口芯片8255A有三个八位的并行的I/O口,它有三种工作方式。

本实验采用的方式为0:PA口输出,PB口输入。

工作方式0是一种基本的输入输出方式。

在这种方式下,三个端口都可以由程序设置为输入或输出,其基本功能可概括如下:1、可具有两个八位端口(A、B)和两个4位端口(C口的上半部分和下半部)。

2、数据输出时可以锁存,输入时不需锁存。

本实验中,8255的端口地址由单片机的P2.0、P2.1和P2.7决定。

控制口的地址为7FFFH;A口的地址为7CFFH;B口的地址为7DFFH;C口的地址为7CFFH。

三、内容及步骤本实验分两种情况来进行:(一) PA口作为输出口。

(二) PA口作为输出口,PB口作为输入口。

(一)PA口作为输出口,接8位发光二极管,程序功能使发光二极管单只从右到左轮流循环点亮。

1、单片机最小应用系统1的 P0口接8255的D0~D7口,8255的PA0~PA7接八位逻辑电平显示,单片机最小应用系统1的P2.0、P2.1、P2.7、RD、WR分别接8255的A0、A1、CS、RD、WR,RESET接上复位电路。

2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。

3、启动计算机,打开伟福仿真软件,进入仿真环境。

选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。

4、打开TH10A.ASM源程序,编译无误后,全速运行程序。

发光二极管单只从右到左轮流循环点亮。

5、可把源程序编译成OBJ文件,烧录到89C51芯片中。

(二)PA口作为输出口,PB口作为输入口,PA口读入键信号送八位逻辑电平显示模块显示。

1、8255的PA0~PA7接八位逻辑电平显示,PB0~PB7口接查询式键盘模块,单片机最小应用系统1的P2.0、P2.1、P2.7、RD 、WR 分别接8255的A0、A1、CS 、RD 、WR ,RESET 接上复位电路。

2、打开TH10B.ASM 源程序,编译无误后,全速运行程序。

按查询式键盘各键,观察发光二极管的亮灭情况,发光二极管与按键相对应,按下为点亮,松开为熄灭。

3、可把源程序编译成OBJ 文件,烧录到89C51芯片中。

四、流程图及源程序源程序如下: (一)PA 口输出: ORG 0HPORTA EQU 7CFFH ;A 口 PORTB EQU 7DFFH ;B 口 PORTC EQU 7EFFH ;C 口 CADDR EQU 7FFFH ;控制字地址 MOV A,#80H ;方式0 MOV DPTR, #CADDRMOVX @DPTR, ALOOP: MOV A, #0FEHMOV R2, #8OUTPUT:MOV DPTR, #PORTAMOVX @DPTR, ACALL DELAYRL ADJNZ R2, OUTPUTLJMP LOOPDELAY: MOV R6, #0MOV R7, #0DELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAYLOOPRETEND(二)PA口输出,PB口输入ORG 0PORTA EQU 7CFFH ;A口PORTB EQU 7DFFH ;B口PORTC EQU 7EFFH ;C口CADDR EQU 7FFFH ;控制字地址SJMP STARTSTART:ORG 30HMOV A, #82H ;方式0,PA,PC输出,PB输入 MOV DPTR, #CADDRMOVX @DPTR, AMOV DPTR, #PORTBMOVX A, @DPTR ;读入B口MOV DPTR, #PORTAMOVX @DPTR, A ;输出到A口CALL DELAYSJMP STARTEND五、思考题试用8255PA口作为输出口,PB作为输入口,PC作为输入口完成8255的输入、输出实验(其中PA口LED数码显示,PB接拨断开关,PC接查询式键盘实验模块)。

相关主题