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

下载本文档

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

文档简介

实验一Keil C51软件的使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。下面介绍Keil C51软件的使用方法进入 Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界。启动Keil C51时的屏幕进入Keil C51后的编辑界面简单程序的调试1建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Project选项2然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。3这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。4完成上一步骤后,屏幕如下图所示5在下图中单击“File”菜单,再在下拉菜单中单击“New”选项 新建文件后屏幕如下图所示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”按钮。 6)回到编辑界面后,单击“Target 1”前面的“”号,然后在“Source Group 1”上单击右键,弹出如下菜单 然后单击“Add File to Group Source Group 1” 屏幕如下图所示 选中Test.c,然后单击“Add”屏幕好下图所示 注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同 7)现在,请输入如下的C语言源程序: #include /包含文件#include void main(void) /主函数P0=0x00;P1=0xff;P2=0xf0;P3=0x0f;while(1) 在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如下图所示 8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),屏幕如下所示 9)调试程序:在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“Serial Windows #1”选项,就可以看到程序运行后的结果其结果如下图所示 至此,我们在Keil C51上做了一个完整工程的全过程。但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?10)单击“Project”菜单,再在下拉菜单中单击“” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载器软件使用。把程序下载到AT89S51单片机中。实验二 储存器块清零一实验目的1 通过实验了解单片机的数据存储器写入与擦除的方法;2 学习使用伟福软件。二实验内容编程实现0030H0039H RAM的内容清零。三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3 在存储器窗口中输入D:30H,然后单步执行,查看30H39H单元值的变化四实验参考程序 ORG 0000H LJMP START ORG 0030HSTART: MOV 30H,#10H MOV 31H,#11H MOV 32H,#12H MOV 33H,#13H MOV 34H,#14H MOV 35H,#15H MOV 36H,#16H MOV 37H,#17H MOV 38H,#18H MOV 39H,#19H MOV R0,#30HLOOP1: CLR A MOV R0,A INC R0 CJNE R0,#3AH,LOOP1 END第 166 页 共 166 页实验三 二进制BCD码转换一实验目的1 通过实验了解十进制转二进制BCD码的方法;2 学习使用伟福软件。二实验内容把123转换成二进制BCD码再以16进制存于30H32H中。三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3在存储器窗口中输入D:30H,然后单步执行,查看30H32H单元值的变化内容的变化。四实验参考程序RESULT EQU 30HORG 00HLJMP STARTSTART:MOV SP,#40H MOV A,#123 LCALL BINTOBAC SJMP $BINTOBAC:MOV B,#100 DIV AB ;除以100得百位数 MOV RESULT,A MOV A,B MOV B,#10 DIV AB ;余数除以10得十位数 MOV RESULT+1,A MOV RESULT+2,B ;余数为个位数 RET END实验四 二进制ASCII码转换一实验目的1 通过实验了解数值转二进制ASCII码的方法;2 学习使用伟福软件。二实验内容把1AH转换成二进制ASCII码再存于30H31H中。常用ASCII码代码字符代码字符代码字符代码字符代码字符3252472H92112p33!53573I93113q3454674J94114r35#55775K95_115s36$56876L96116t37%57977M97a117u38&58:78N98b118v3959;79O99c119w40(6082R102f122z43+63?83S103g12344,6484T104h124|48-65A85U105i12546.66B86V106j12647/67C87W107k48068D88X108l49169E89Y109m50270F90Z110n51371G91111o三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3 在存储器窗口中输入D:30H,然后单步执行,查看30H31H单元值的变化四实验参考程序RESULT EQU 30HORG 00HSTART:MOV A,#1AH CALL BINTOHEX LJMP $BINTOHEX: MOV DPTR,#ASCIITAB MOV B,A ;暂存A SWAP A ANL A,#0FH ;取高四位 MOVC A,A+DPTR ;查ASCII表 MOV RESULT, A MOV A,B ;恢复A ANL A,#0FH ;取低四位 MOVC A,A+DPTR ;查ASCII表 MOV RESULT+1,A RETASCIITAB: DB 48,49,50,51,52,53,54,55 DB 56,57,65,66,67,68,69,70 ;定义数字对应的ASCII表 END实验五 程序跳转表一实验目的1 通过实验理解地址偏移量的概念和程序跳转表的使用方法;2 学习使用伟福软件。二实验内容以查表的方式执行跳转指令使30H33H显示不同的值。三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3 在存储器窗口中输入D:30H,然后单步执行,查看30H33H单元值的变化四实验参考程序ORG 0000HSTART:MOV A,#0 ;设置地址偏移量CALL FUNCENTERMOV A,#1 ;设置地址偏移量CALL FUNCENTERMOV A,#2 ;设置地址偏移量CALL FUNCENTERMOV A,#3 ;设置地址偏移量CALL FUNCENTERLJMP $FUNCENTER:ADD A,ACC ;AJMP为二字节指令,地址偏移量*2MOV DPTR,#FUNCTAB;设置基址JMP A+DPTR ;跳转到目标地址FUNCTAB:AJMP FUNC0AJMP FUNC1AJMP FUNC2AJMP FUNC3FUNC0:MOV 30H,#0 RETFUNC1:MOV 31H,#1 RETFUNC2:MOV 32H,#2 RETFUNC3:MOV 33H,#3 RETEND实验六 内存块移动一实验目的1 通过实验学习对存储器的操作2 学习使用伟福软件。二实验内容把内部RAM 50H59H中的数据移到60H69H中。三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3 在存储器窗口中输入D:50H,然后单步执行,查看50H59H和60H-69H单元值的变化四实验参考程序ORG 0000H AJMP START ORG 0100HSTART: MOV 50H,#00HMOV 51H,#01H MOV 52H,#02H MOV 53H,#03H MOV 54H,#04H MOV 55H,#05H MOV 56H,#06H MOV 57H,#07H MOV 58H,#08H MOV 59H,#09H MOV R0,#50H ;源地址 MOV R1,#60H ;目的地址 MOV R2,#10LOOP: MOV A,R0 MOV R1,A INC R0 INC R1 DJNZ R2,LOOP END实验七 数据排序一实验目的1 通过实验学习数据排序的编程方法;2 学习使用伟福软件。二实验内容把11个无序数据存于30H3AH中,然后以从小到大的顺序排列在30H3AH中。三实验步骤1 运行Keil C51软件,新建一个工程(如clr),新建一个文件CLR.asm。 将文件添加到工程中并编译,如有错,请更改直到编译成功2 点击按钮或单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入调试模式,在调试模式下,会出现以下窗口,其中中间的窗口为存储器窗口3 在存储器窗口中输入D:30H,然后单步执行,查看30H3AH单元值的变化四实验参考程序ORG 0000H LJMP START ORG 0100HSTART: MOV 50H,#30H MOV 51H,#11H MOV 52H,#18H MOV 53H,#09H MOV 54H,#01H MOV 55H,#2AH MOV 56H,#36H MOV 57H,#17H MOV 58H,#28H MOV 59H,#79H MOV 5AH,#0A9H MOV R3,#50HQUE1: MOV A,R3 ;指针送R0 MOV R0,A MOV R7,#0AH ;长度送R7 CLR 00H ;清标志位 MOV A,R0QL2 : INC R0 MOV R2,A CLR C MOV 22H,R0 CJNE A,22H,QL3 ;相等吗? SETB CQL3: MOV A,R2 JC QL1 ;大于交换位置 SETB 00H XCH A,R0 DEC R0 XCH A,R0 INC R0 ;大于交换位置QL1: MOV A,R0 DJNZ R7,QL2 JB 00H,QUE1 ;一次循环中有交换继续 END硬件实验部份实验一仿真器的使用一实验目的熟悉KEIL环境下仿真器的使用二实验内容掌握仿真器的使用方法三实验步骤1 按照实验一的方法建立工程文件并生成HEX文件2 将仿真头插入单片机插槽内,注意仿真头的方向缺口应该朝上3 单击“Project”菜单,在下拉菜单中单击“”在下图中,单击“Debug”选中“Use”,在“Use”右边的下拉框中选择“TKS-HOOKS”4 单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)进入硬件仿真模式。在硬件仿真模式下单击“Start/Stop Debug Session”可以退出仿真模式5 在硬件仿真模式下利用快捷键可以单步(F10),全速(F5)执行程序,在单步运行的情况下可以查看程序运行的结果6 以上只是KEIL的简单使用,KEIL的一些高级应用,请参考其他资料实验二 I/0口输入输出实验一实验目的通过实验学会使用51系列单片机I/O口的基本输入输出功能。二实验内容个拨动开关向P0口送数据,单片机从P0口输入的状态数据后,再从P1口将该数据输出至发光二极管显示。三实验原理图 四实验步骤1 把数据开关区的8P插座与单片机最小系统的P0口的8P插座相连接,单片机的EA脚接+5V2 把发光二极管显示单元区的8P插座与单片机最小系统的P1口的8P插座相连接;3 运行Keil C51软件,新建一个工程(如IO),新建一个文件IO.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功4 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。5 运行实验程序,拨动数据开关,观察发光二极管显示情况五实验参考程序ORG 0000HAJMP LOOPORG 0030HLOOP: MOV A,P0 MOV P1,AJMP LOOPEND实验三 广告灯实验一实验目的1以P1口为例,学会使用51系列单片机I/O口的基本输出功能;2学习循环指令的用法和软件延时的编程方法。二实验内容编写程序,使8个LED左循环闪亮,然后右循环闪亮。三实验原理图 四实验步骤1 把发光二极管显示单元区的8P插座与单片机最小系统的P1口的8P插座相连接,单片机的EA脚接+5V2 运行Keil C51软件,新建一个工程,新建一个工程文件。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功3 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。4 运行实验程序,观察发光二极管显示情况五实验参考程序ORG 0000HSTART:MOV R0,#8 MOV A,#0FEH SETB CLOOP:MOV P1,A LCALL DELAY RLC A DJNZ R0,LOOP MOV R0,#8LOOP1:MOV P1,A LCALL DELAY RRC A DJNZ R0,LOOP1 LJMP STARTDELAY:MOV R5,#20D1:MOV R6,#20D2:MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END实验四 定时器实验一实验目的1 通过实验学习单片机的定时器功能,学会编程实现单片机的定时功能;2 掌握中断处理程序的编程方法;3 掌握查表的编程方法。二实验内容由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟一时序控制装置。上电后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮.一直循环下去。三实验原理图四实验步骤1 发光二极管显示区的8P插槽连到单片机最小系统区P1端口的8P插槽,单片机的EA脚接+5V;2 运行Keil C51软件,新建一个工程,新建一个工程文件。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功3 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。4 运行实验程序,观察实验现象五实验参考程序 ORG 0000H AJMP START ORG 001BH AJMP INT_T1 ;T1中断入口地址 ORG 0100HSTART: MOV SP,#60H MOV TMOD,#10H ;置T1为方式1 MOV TL1,#0B0H ;延时50mS的时间常数 MOV TH1,#3CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA ;开中断 SJMP $INT_T1: ;T1中断服务子程序 PUSH ACC ;保护现场 PUSH PSW PUSH DPL PUSH DPH CLR TR1 ;关中断 MOV TL1,#0B0H MOV TH1,#3CH SETB TR1 ;开中断 DJNZ R1,EXIT MOV R1,#20 ;延时一秒的常数 MOV DPTR,#TABLE ;置常数表基址 MOV A,R0 ;置常数表偏移量 MOVC A,A+DPTR ;读表 MOV P1,A ;送P1口显示 INC R0 ANL R0,#07HEXIT: POP DPH ;恢复现场 POP DPL POP PSW POP ACC RETITABLE: DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH ;LED显示常数表END实验五 计时器实验一实验目的1 通过实验学习单片机的定时器功能,学会编程实现单片机的定时功能;2 了解动态显示的原理。二实验内容1 编写059的计时程序,每过1s自动加1,通过动态显示区右边的两个数码管动态显示数值,加到60数值变为0,继续从0加到59循环显示;2 对于秒计数单元中的数据要把它十位数和个位数分开,方法采用对10整除和对十求余。三实验原理图四实验步骤1 把动态显示区左边的8P插槽连到最小单片机系统区P0端口的8P插槽,右边的8P插槽连到P2端口的8P插槽,单片机的EA脚接+5V2 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功3 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。4 运行实验程序,观察数码管显示情况。五实验参考程序SECOND EQU 30HORG 0000HAJMP MAINORG 001BHAJMP INTORG 0030HMAIN:MOV SECOND,#00H MOV TMOD,#10H MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET1 SETB TR1NEXT: MOV A,SECOND MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR CLR P2.1 MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P2.1 MOV A,B MOVC A,A+DPTR CLR P2.0 MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P2.0 MOV A,SECOND CJNE A,#60,NEXT AJMP MAININT:PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#0B0H MOV TH1,#3CH SETB TR1 INC R1 MOV A,R1 CJNE A,#20,CBA INC SECOND MOV R1,#00HCBA:POP DPH POP DPL POP PSW POP ACC RETI DELAY:MOV R7,#2D1:MOV R6,#20 DJNZ R6,$ DJNZ R7,D1 RETTABLE:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H END实验六 计数器实验一实验目的1 通过实验掌握单片机计数编程的方法;2 了解查询式键盘的使用方法。二实验内容编写099的手动计数程序,按下加1键数值加1,通过动态显示区右边的两个数码管动态显示数值,加到100数值变为0,继续从0加到99重复显示,按下复位键显示为初值00,采用硬件消抖。三实验原理图四实验步骤1 把动态显示区左边的8P插槽连到最小单片机系统区P0端口的8P插槽,右边的8P插槽连到P2端口的8P插槽,单片机的EA脚接+5V;2 查询式键盘区8P插槽连到最小单片机系统P3端口的8P插槽;3 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功4 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。5 运行实验程序,观察数码管显示情况。五实验参考程序COUNT EQU 30HSP1 BIT P3.7ORG 0000HAJMP MAINORG 0030HMAIN:MOV COUNT,#00HNEXT:MOV A,COUNT MOV B,#10 DIV ABMOV DPTR,#TABLEMOVC A,A+DPTR CLR P2.1 MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P2.1 MOV A,B MOVC A,A+DPTR CLR P2.0 MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P2.0 JNB P3.6,FEIWEI JB SP1,NEXTWAIT:JNB SP1,WAIT LCALL DELAY1 JNB SP1,WAIT INC COUNT MOV A,COUNT CJNE A,#100,NEXT AJMP MAINFEIWEI:AJMP MAIN DELAY:MOV R7,#2D1:MOV R6,#100 DJNZ R6,$ DJNZ R7,D1 RETDELAY1:MOV R5,#20D2:MOV R4,#248 DJNZ R4,$ DJNZ R5,D1 RETTABLE:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H END实验七 外中断实验一实验目的通过实验掌握单片机外中断的原理及编程方法。二实验内容数码管循环显示0F,当端口即P3.2口有低电平时,数码管立即回到0重新循环显示。三实验原理图 四实验步骤1 把动态显示区左边的8P插槽连到最小单片机系统区P0端口的8P插槽,右边的8P插槽连到P2端口的8P插槽,单片机的EA脚接+5V2 查询式键盘区8P插槽连到最小单片机系统P3端口的8P插槽;3 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功4 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。5运行实验程序,观察实验现象。五实验参考程序ORG0000HAJMPSTARTORG0003HAJMPINTT0ORG000BHAJMPTIMER0ORG0030HSTART:MOV P2,#0FFHCLR P2.0MOVIE,#83HMOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBTR0SETBIT0MOVR0,#0MOVR1,#20MOVDPTR,#TAB MOVA,R0MOVCA,A+DPTRMOVP0,AAJMP$INTT0:MOVR0,#0MOVA,R0MOVCA,A+DPTRMOVP0,ARETITIMER0:MOVTL0,#0B0HMOVTH0,#3CHDJNZR1,EXITMOVR1,#20INCR0CJNER0,#10H,TOP0MOVR0,#0TOP0:MOVA,R0MOVCA,A+DPTRMOVP0,AEXIT: RETITAB:DB 03H,9FH,25H,0DHDB 99H,49H,41H,1FHDB 01H,09H,11H,0C1HDB 0E5H,85H,61H,71HEND实验八 静态串行显示实验一实验目的1 学习单片机串行口的工作方式0的工作原理及应用;2 学习静态串行显示的工作原理;3 学习静态串行显示的电路接口设计及程序设计。二实验内容1 51单片机的串行口的“工作方式0”为同步移位寄存器方式,串行数据都通过RXD输入输出,TXD则输出同步移位脉冲,可接收/发送8位数据(低位在前)。波特率(每秒传输的位数)固定在fosc/12。2 单片机与2片串入并出移位寄存器74HC164相连。其中,RXD作为164的数据输入,TXD作为164的同步时钟。程序运行时,单片机将2个数码管的段码连续发送出来,通过串行口送给164。2位字型码送完后,TXD保持高电平。此时每片164的并行输出口将送出保存在内部移位寄存器中的8位的段码给数码管,令数码管稳定地显示所需的字符。此实验显示字符“qs”。三实验原理图四实验步骤1 把静态显示区的RXD和TXD插口连到最小单片机系统的10和11脚引出插口,单片机的EA脚接+5V2 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功3 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。4 运行实验程序,观察实验现象五实验参考程序ORG 0000HAJMP STARTORG 0030HSTART: MOV SCON,#00H MOV R1,#02H MOV R0,#00H MOV DPTR,#TABLELOOP: MOV A,R0 MOVC A,A+DPTR MOV SBUF,AWAIT: JNB TI,WAIT CLR TI INC R0 DJNZ R1,LOOPTABLE: DB 0E7H,0B7HEND实验九 动态扫描显示实验一实验目的 通过实验掌握动态扫描显示的原理和编程方法。二实验内容1 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的占留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的点亮(数位选择)。2 对于显示的字形码数据此实验采用查表的方法来完成。3 此实验现象是在八个数码管中显示0,1,2,3,4,5,6,7。三实验原理图 四实验步骤1 把动态显示区左边的8P插槽连到最小单片机系统区P0端口的8P插槽,右边的8P插槽连到P2端口的8P插槽,单片机的EA脚接+5V2 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功3 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。4 运行实验程序,观察实验现象五实验参考程序ORG 0000HAJMP STARTORG 0030HSTART:CLR P2.0 MOV P0,#01H LCALL DELAY MOV P0,#0FFH SETB P2.0 CLR P2.1 MOV P0,#1FH LCALL DELAY MOV P0,#0FFH SETB P2.1 CLR P2.2 MOV P0,#41H LCALL DELAY MOV P0,#0FFH SETB P2.2 CLR P2.3 MOV P0,#49H LCALL DELAY MOV P0,#0FFH SETB P2.3 CLR P2.4 MOV P0,#99H LCALL DELAY MOV P0,#0FFH SETB P2.4 CLR P2.5 MOV P0,#0DH LCALL DELAY MOV P0,#0FFH SETB P2.5 CLR P2.6 MOV P0,#25H LCALL DELAY MOV P0,#0FFH SETB P2.6 CLR P2.7 MOV P0,#9FH LCALL DELAY MOV P0,#0FFH SETB P2.7 AJMP STARTDELAY:MOV R7,#2D1:MOV R6,#10 DJNZ R6,$ DJNZ R7,D1 RET END实验十 查询式键盘实验一实验目的1 通过实验掌握查询式键盘的原理和编程方法2 理解按键防抖技术。二实验内容 当按键按下时,数码管显示相应的数字。三实验原理图 四实验步骤1 把动态显示区左边的8P插槽连到最小单片机系统区P0端口的8P插槽,右边的8P插槽连到P2端口的8P插槽,单片机的EA脚接+5V2 查询式键盘区8P插槽连到最小单片机系统P3端口的8P插槽;3 运行Keil C51软件,新建一个工程(如93C46),新建一个文件93c46.asm。将文件添加到工程中并编译,如有错,请更改直到编译成功,如有错,请更改直到编译成功4 用编程器将生成的HEX文件烧写到单片机中,或用仿真器来执行程序,将程序下载到仿真器中,具体方法请参考仿真器的使用一节。用编程器将生成的HEX文件烧写到单片机中。5 运行实验程序,观察实验现象。五实验参考程序ORG 0000HAJMP STARTORG 0030HSTART:MOV P3,#0FFH MOV P2,#0FFH CLR P2.0 MOV P0,#03HL0:JNB P3.0,L1 JNB P3.1,L2 JNB P3.2,L3 JNB P3.3,L4 JNB P3.4,L5 JNB P3.5,L6 JNB

温馨提示

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

最新文档

评论

0/150

提交评论