单片机实验报告书.doc_第1页
单片机实验报告书.doc_第2页
单片机实验报告书.doc_第3页
单片机实验报告书.doc_第4页
单片机实验报告书.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验报告书 软 件 实 验实验一 拆字程序实验一、实验目的:掌握汇编语言设计方法。二、实验内容:把8000H地址上的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把数据送显示缓冲区时使用。三、实验器材: 计算机 1台四、实验步骤: 1、按流程图编写程序,以下是通过计算机交叉汇编得到的.LST文件清单,供参考。2、文件编译连接、装载,用鼠标点击项目/重建所有目标文件,系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击调试/启动/停止调试后进入调试状态。3、设置观察窗口:(1)用鼠标点击视图/存储器窗口,在地址栏中输入0X8000;(2)在8000H中写入数据(任意);(3)单步执行观察寄存器和8000H8002H的变化。8000H内容送A高低位交换屏蔽高位后送8001H8000内容送A屏蔽高位后送8002H结 束五、程序框图:七、实验程序 (51asmA8051.ASM);把指定字节的高低位拆开分别存放,多用于显示子程序ORG 0000HMOV DPTR,#8000H;指定的字节MOVX A,DPTRMOV B,A;暂存SWAP A ;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字节的内容屏敝高位MOVX DPTR,ALOOP: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的内容送A,屏蔽高位交换高低位送B屏蔽高位后送200H8001H的内容送A,屏蔽高位A和B或后送8002H结 束五、程序框图:六、思考问题:修改8000H、8001H内容重复上述实验。七、实验程序:(51asmAp6264.ASM);把两字节的低位合拼成一个字节,多用于显示子程序ORG 0000hMOV DPTR,#8000HMOVX A,DPTRANL A,#0FH;屏敝高位SWAP AMOV B,A ;保存INC DPTRMOVX A,DPTRANL A,#0FHORL A,B ;合拼INC DPTRMOVX DPTR,A;送8002H存放LOOP:SJMP LOOPEND硬 件 基 础 性 实 验实验一 八段数码管显示实验一、实验目的: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中,向显示位选通地址输出高电平就可以点亮相应的显示位。 a f b g e c d 。dp本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为 0e101H。本实验涉及到了8155 I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。2、七段数码管的字型代码表如下表:显示字形gfedcba段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fhA111011177hB11111007chC011100139hD10111105ehE111100179hF111000171h是返回否开始初始化显示参数关所有位显示取显示数据数据移位输出到164输出时钟脉冲到164 8段码完成输出位选通信号延时位选通信号移位指向下一个显示数据6位完成否五、程序框图: 是 六、实验步骤:1、将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。2、进入KEIL软件界面,点击项目/打开项目在C:KEILUV23000TB51配套实验例程中选择实验一,内有ASM和C51两种程序,进入ASM文件夹打开LED项目文件进入如图所示界面点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0F七、实验程序: OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ; org 0000h ljmp StartLEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序 mov r7, #0DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED: 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 ; 送164DLP: 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 ; 关所有八段管 retStart: mov dptr,#0e100h mov a,#03h movx dptr,a mov sp, #40h mov Num, #0MLoop: inc Num mov a, Num mov b, a mov r0, #LEDBufFillBuf: 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,#30DispAgain: call DisplayLED ; 显示 djnz DelayT,DispAgain ljmp MLoop END实验二 键盘扫描显示实验一、实验目的:1、掌握键盘和显示器的接口方法和编程方法。2、掌握键盘扫描和LED八段数码管显示器的工作原理。二、实验要求:在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块。1、键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。2、显示模块:将显示单元的内容在显示器上动态显示。3、主程序:调用键输入模块和显示模块。三、实验器材:1、超想-3000TB综合实验仪1台 2、KEIL仿真器 1台 3、计算机1 台 四、实验电路:这里只是键盘草图,详细原理参见“8155键显模块”。 列码(0e101H) 行码(0e103H)五、实验说明:开始本实验仪提供了一个64的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。列扫描码还可以分时用作LED的位选通信号。六、实验框图:初始化地址参数显示缓冲区初始化输出列扫描信号 LED显示否有键输入?列扫描信号移位 读入行信号是是读取键值 该列有键输入?键值转换为显示数据按照行列计算键值否否主程序框图查表得键码6列扫描完?等待键盘释放S待按键释放读键输入子程序框返回图显示程序框图见上个实验七、实验程序: ;键盘扫描实验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 CLR C SUBB A,#08H 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 A,#03H MOVX DPTR,A 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|9yqQ0134: 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 SJMP MLOOP1 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论