ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:239.65KB ,
资源ID:16451407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16451407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机6个必做实验程序.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机6个必做实验程序.docx

1、单片机6个必做实验程序第一部分 软件实验实验一 二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。我们将给定的一个二进制数,转换成二十进制(BCD)码。将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真器的设置,选择使用伟福软件模拟器。2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30

2、H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给累加器A的赋值,重复实验,观察实验效果。3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。四、流程图及源程序1.源程序RESULT EQU 30H ORG 0000H LJMP STARTBINTOBCD: MOV B,#100 DIV AB MOV RESULT,A ;除以100得百位数 MOV A,B MOV B,#10 DIV

3、 AB MOV RESULT+1,A ;余数除以10得十位数 MOV RESULT+2,B ;余数为个位数 RETSTART: MOV SP,#40H MOV A,#123 CALL BINTOBCD LJMP $ END 2.流程图实验四 程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真器的设置,选择使用伟

4、福软件模拟器。2、打开TH4.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H、33H的数据变化,30H更新为0,31H更新为1,32H更新为2,33H更新为3。用键盘输入改变地址30H、31H、32H、33H的值,点击复位按钮后,可再次运行程序,观察其实验效果。修改源程序中给30H33H的赋值,重复实验,观察实验效果。3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。四、流程图及源程序1、流程图2.源程序ORG 0LJMP STARTFUNC0: M

5、OV 30H,#0 RETFUNC1: MOV 31H,#1 RETFUNC2: MOV 32H,#2 RETFUNC3: MOV 33H,#3 RETFUNCENTER: ADD A,ACC ;AJMP为二字节指令,调用号2 MOV DPTR,#FUNCTAB JMP A+DPTRFUNCTAB: AJMP FUNC0 AJMP FUNC1 AJMP FUNC2 AJMP FUNC3START: MOV A,#0 CALL FUNCENTER MOV A,#1 CALL FUNCENTER MOV A,#2 CALL FUNCENTER MOV A,#3 CALL FUNCENTER LJM

6、P $ END第二部分 硬件基础实验实验七 P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。1、使用单片机最小应用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中

7、,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型。选择通信端口,点击测试串行口,通信成功既可退出设置,进行仿真。4、打开TH7A.ASM源程序,进行编译。编译无误后,点击全速执行按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。5、把源程序编译成OBJ文件,再烧录到89C51芯片中。实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。1、用导线连接P1.0、P1.1到两个拨断开关,P1.2、P

8、1.3到两个发光二极管。2、打开TH7B.ASM源程序,编译无误后,全速运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为点亮,向下拨为熄灭。3、把源程序编译成OBJ文件,再烧录到89C51芯片中。四、流程图及源程序 1流程图 (A)P1口循环点灯程序框图(B)P1口输入输出程序框图2源程序:(一)实验一ORG 0Loop: mov a, #0FEh mov r2,#8Output: mov P1,a rl a Acall Delay djnz r2,Output Ljmp LoopDelay: mov r6,#0 mov r7,#0DelayLoop: ;延时程序 djnz r6,D

9、elayLoop djnz r7,DelayLoop ret end(二)实验二KeyLeft BIT P1.0 ;定义 KeyRight BIT P1.1Ledleft BIT P1.2LedRight BIT P1.3 ORG 0SETB KeyLeft ;欲读先置一 SETB KeyRightLoop: Mov c,keyleft Mov LEDLeft,c MOV C,KeyRight Mov LEDRIGHt,c LJMP Loop END五、思考题(1)对于本实验延时子程序Delay: MOV R6,0 MOV R7, 0DelayLoop:DJNZ R6,DelayLoop DJ

10、NZ R7,DelayLoop RET本模块使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验十 8255输入、输出实验一、实验目的1、了解8255芯片结构及接口方式2、掌握8255输入、输出的编程方法二、实验说明了解用到的芯片引脚及功能: 8255是可编程的并行输入/输出接口芯片,通用性强且使用灵活。8255按功能可分为三个部分,即:总线接口电路,口电路和控制逻辑电路。1、口电路:8255共有三个八位口,其中A口和B口是单纯的数据口,供数据I/O口使用。2、总线接口电路:它用于实现8255和单片机芯片的信号连接。(1)CS片选信号。(2)RD读信号。(3)WR写信号。(4)A

11、0、A1端口选择信号。8255共有四个可寻址的端口,用二位编码可以实现。3、 控制逻辑电路:它是控制寄存器,用于存放各口的工作方式控制字。本实验是利用8255可编程并行口芯片,实现数据的输入、输出。可编程通用接口芯片8255A有三个八位的并行的I/O口,它有三种工作方式。本实验采用的方式为0:PA口输出,PB口输入。工作方式0是一种基本的输入输出方式。在这种方式下,三个端口都可以由程序设置为输入或输出,其基本功能可概括如下:1、可具有两个八位端口(A、B)和两个4位端口(C口的上半部分和下半部)。2、数据输出时可以锁存,输入时不需锁存。 本实验中,8255的端口地址由单片机的P2.0、P2.1

12、和P2.7决定。控制口的地址为7FFFH;A口的地址为7CFFH;B口的地址为7DFFH;C口的地址为7CFFH。三、内容及步骤本实验分两种情况来进行:(一) PA口作为输出口。 (二) PA口作为输出口,PB口作为输入口。(一)PA口作为输出口,接8位发光二极管,程序功能使发光二极管单只从右到左轮流循环点亮。1、单片机最小应用系统1的 P0口接8255的D0D7口,8255的PA0PA7接八位逻辑电平显示,单片机最小应用系统1的P2.0、P2.1、P2.7、RD、WR分别接8255的A0、A1、CS、RD、WR,RESET接上复位电路。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把

13、仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、打开TH10A.ASM源程序,编译无误后,全速运行程序。发光二极管单只从右到左轮流循环点亮。5、可把源程序编译成OBJ文件,烧录到89C51芯片中。(二)PA口作为输出口,PB口作为输入口,PA口读入键信号送八位逻辑电平显示模块显示。1、8255的PA0PA7接八位逻辑电平显示,PB0PB7口接查询式键盘模块,单片机最小应用系统1的P2.0、P2.1、P2.7、RD、WR分别接8255的A0、A1、CS、RD、WR,R

14、ESET接上复位电路。2、打开TH10B.ASM源程序,编译无误后,全速运行程序。按查询式键盘各键,观察发光二极管的亮灭情况,发光二极管与按键相对应,按下为点亮,松开为熄灭。3、可把源程序编译成OBJ文件,烧录到89C51芯片中。四、流程图及源程序源程序如下:(一)PA口输出: org 0h porta equ 7CFFh ;A口 Portb equ 7DFFh ;B口 Portc equ 7EFFh ;C口 caddr equ 7FFFh ;控制字地址 mov a,#80h ;方式0 mov dptr, #caddr movx dptr, aLoop: mov a, #0FEh mov r2

15、, #8Output:mov dptr, #porta movx dptr, a call Delay rl a djnz r2, Output ljmp LoopDelay: mov r6, #0 mov r7, #0DelayLoop: djnz r6, DelayLoop djnz r7, DelayLoop ret end(二)PA口输出,PB口输入 ORG 0 PortA equ 7CFFh ;A口 PortB equ 7DFFh ;B口 PortC equ 7EFFh ;C口 CAddr equ 7FFFh ;控制字地址 SJMP STARTSTART:org 30h mov a,

16、 #82h ;方式0,PA,PC输出,PB输入 mov dptr, #caddr movx dptr, a mov dptr, #PortB movx a, dptr ;读入B口 mov dptr, #PortA movx dptr, a ;输出到A口 call delay Sjmp START end 五、思考题试用8255PA口作为输出口,PB作为输入口,PC作为输入口完成8255的输入、输出实验(其中PA口LED数码显示,PB接拨断开关,PC接查询式键盘实验模块)。六、电路图实验十二 5LED静态串行显示一、实验目的1、掌握数字、字符转换成显示段码的软件译码方法2、静态显示的原理和相关程

17、序的编写二、实验电路1、静态显示,电路中图所示。显示器由5个LED数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。5个串/并移位寄存器芯片74LS164首尾相连。每片的并行输出作为LED数码管的段码。74LS164的引脚图如图所示;74LS164为8位串入并出移位寄存器,1、2为 串行输入端,Q0Q7为并行输出端,CLK为移位时钟脉冲,上升沿移入一位;MR为清零端,低电平时并行输出为零。三、实验内容及步骤 单片机的P3.0作数据串行输出,P3.1作移位脉冲输出,可参考实验十一串行数转换并行数。 1、使用单片机最小应用系统1模块,用导线连接RXD、TXD到串行静态显示模块的

18、DIN、CLK端。2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。4、打开TH12.ASM源程序,编译无误后,全速运行程序。5LED显示“89C51”。程序停止运行时,显示不变,说明静态显示模块具有数据锁存功能。5、可把源程序编译成OBJ文件,烧录到89C51芯片中。四、流程图及源程序1、 流程图2、源程序 DBUF0 EQU 30H ;置存储区首址 TEMP EQU 40H ;置缓冲区首址 DIN BIT 0B0

19、H; ;置串行输出口 CLK BIT 0B1H; ;置时钟输出口 ORG 0 MOV 30H, #8 ;存入显示数据 MOV 31H, #9 MOV 32H, #C MOV 33H, #5 MOV 34H, #1DISP: MOV R0, #DBUF0 MOV R1, #TEMP MOV R2, #5 DP10: MOV DPTR, #SEGTAB ;表头地址 MOV A, R0 MOVC A, A+DPTR ;查表指令 MOV R1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP ;段码地址指针 MOV R1, #5 ;段码字节数DP12: MOV

20、R2, #8 ;输出子程序 MOV A, R0 ;取段码DP13: RLC A ;段码左移 MOV DIN, C ;输出一位段码 CLR CLK ;发送移位脉冲一位 SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12 SJMP $SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,71H,00H,40H ;C,D,E,F, ,-DELAY: MOV R4, #03H ;延时子程序AA1: MOV R5, #0

21、FFHAA: DJNZ R5, AA DJNZ R4, AA1 RET END五、电路图实验十四 查询式键盘一、实验目的1、掌握键盘和显示器的接口方法和编程方法2、掌握键盘和八段码显示器的工作原理3、静态显示的原理和相关程序的编写二、实验说明 本实验提供了8个按钮的小键盘,落如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。通过这样可以判断按下什么键。在有键按下后,要有一定的延时,防止键盘抖动。三、实验步骤及内容1、用一根扁平数据线插头连接查询式键盘实验模块与八位逻辑电平显示模块,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。此种电路的程序要判断是否

22、有2个或2个以上的键盘同时按下,以免键盘分析错误。阵列式键盘的编程同样也有这样的问题要注意。2、一根扁平8线插头连接查询式键盘实验模块与扫描显示实验模块。无键按下时,LED数码显示八段全部熄灭,有键按下时,则对应LED段点亮。3、使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接查询式键盘输出口,RXD接静态数码显示DIN,TXD接CLK。4、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。5、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。6、打开

23、TH14.ASM源程序,编译无误后运行程序,在键盘上按下某个键,观察数显是否与按键值一致,键值从左至右为07。7、可把源程序编译成OBJ文件,烧录到89C51芯片中。五、流程图及源程序 1、流程图2、源程序 ORG 0000HDBUF EQU 30HTEMP EQU 40H MOV 30H,#16MAIN: ACALL DISPACALL KEY AJMP MAINKEY: MOV P1,#0FFH ;输入前,锁存器置“1” MOV A,P1 ;读取键盘状况 CJNE A, #0FFH,K00 ;有键按下 AJMP KEY ;无键按下K00: ACALL DELAY ;延时去抖动 MOV A,

24、P1 CJNE A,#0FFH,K01 ;确有键按下 AJMP KEYK01: MOV R3, #8 ;8个键 MOV R2,#0 ;键码 MOV B,A ;暂存键值 MOV DPTR,#K0TABK02: MOV A,R2 MOVC A,A+DPTR ;从键值表中取键值 CJNE A,B,K04 ;键值比较K03: MOV A,P1 ;相等 CJNE A #0FFH,K03 ;等键释放 ACALL DELAY ;延时去抖动 MOV A,R2 ;得键码 RETK04: INC R2 ;不相等,到继续访问键值表 DJNZ R3,K02 MOV A,#0FFH ;键值不在键值中,即多键同时按下 A

25、JMP KEYK0TAB:DB 0FEH,0FDH,0FBH, 0F7H ;键值表 DB 0EFH,0DFH,0BFH, 07FHDISP: MOV DBUF,A MOV DBUF+1,#16 MOV DBUF+2,#16 MOV DBUF+3,#16 MOV DBUF+4,#16 MOV R0, #DBUF MOV R1, #TEMP MOV R2, #5 DP10: MOV DPTR,#SEGTAB MOV A, R0 MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP MOV R1, #5 DP12: MOV R2, #8 MOV A, R0 DP13: RLC A MOV 0B0H,C CLR 0B1H SETB 0B1H DJNZ R2, DP13 INC R0 DJNZ R1, DP12 RETSEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 58H, 5EH,79H,71H,00H,40HDELAY: MOV R4, #02HAA1: MOV R5,#0F8HAA: DJNZ R5,AA DJNZ R4,AA1 RETEND五、思考题1、程序如何确保每按一次键,只处理一次。六、原理图左移一位开始

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2