资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,实验一 熟悉实验系统及,51,指令练习,一 实验要求,1.,指定存储器中某块的起始地址和长度,要求能将其内容置,1,。,2.,将给定的一个二进制数转换成,BCD,码。,3.,给出一个十六进制数,将其转换成,ASC,码值。,二 实验目的,1.,熟练运用,Keil,开发软件调试汇编语言程序。,2.,掌握存储器读写方法。,3.,掌握简单的数值转换算法。,4.,了解十六进制数和,ASC,码值的区别。,实验一 熟悉实验系统及51指令练习一 实验要求,1,三 程序框图,二进制数转换成,BCD,码流程图,存储单元清零流程图,三 程序框图 二进制数转换成BCD码流程图存储单元清零流程,2,十六进制数转换,ASC,码流程图,十六进制数转换ASC码流程图,3,实验报告要求,1.,写出,51,汇编程序运行过程,(,简单些,),。,2.,写出在调试过程中出现的错误,(,包括语法错误和逻辑错误,至少,3,条,),。,3.,简单叙述三个程序运行结果的正确性。,实验报告要求1.写出51汇编程序运行过程(简单些)。,4,实验二 汇编语言程序设计练习,一 实验要求,1.,将指定源地址和长度的存储块移到指定目标位置。,2.,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。,3.,给出一组随机数,将此组数据排序,使之成为有序排列。,二 实验目的,1,掌握内存块的移动方法。,2,了解程序的多分支结构。掌握多分支结构程序的编程 方法。,3,了解数据排序的简单算法。,实验二 汇编语言程序设计练习 一 实验要求,5,三程序框图,内存块的移动流程图,三程序框图 内存块的移动流程图,6,分支结构程序流程图,数据排序流程图,分支结构程序流程图数据排序流程图,7,排序程序,1.,在程序运行前,,在,20h,单元开始随机存放,10,个数。,2.,程序运行后,查看,20h,开始的,10,个单元的数据是否有序。,ORG 0H,LOOP3:MOV R0,#20H,MOV R2,#9,CLR 0F0H,LOOP:MOV A,R0,MOV 30H,A,INC R0,MOV A,R0,CJNE A,30H,LOOP1,LOOP1:JNC LOOP2,XCH A,30H,MOV R0,A,DEC R0,MOV R0,30H,INC R0,SETB 0F0H,LOOP2:DJNZ R2,LOOP,JB 0F0H,LOOP3,SJMP$,END,8,实验二报告要求,:,在结果分析中:,1.,写出调试程序过程中出现的错误(,3,处)。,2.,对,3,个程序运行结果分析是否正确。,3.,写出第二个程序运行过程的,pc,值。若(,20H,),=8,,结果如何?能不能实现多分支转移?,实验二报告要求:在结果分析中:,9,实验三,MCS-51,内部接口实验,一实验要求,(一),P1,口输入,/,输出实验,1.p1,口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。,2.P1,口既做输入又做输出,将两个开关的状态在四个发 光二极管上显示出来。,(二)外部中断实验,用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。,(三)定时器实验,用,8031,内部定时器,每,0.1,秒钟,T1,溢出中断一次。,P1,口的,P1.0,P1.7,分别接发光二极管的,L1,L8,。要求编写程序模拟一循环彩灯。,实验三 MCS-51内部接口实验 一实验要求,10,二实验目的,1,掌握,p1,口的使用方法和延时子程序的编写及使用。,2,进一步学习多分支结构程序的编程方法。,3,学习外部中断技术的基本使用及中断处理程序的编程方法。,4,学习,8031,内部计数器的使用和编程方法,掌握中断处理程序的编写方法。,二实验目的1掌握p1口的使用方法和延时子程序的编写及使用,11,三 实验说明,1.P1,口做输出口的实验说明,三 实验说明,12,2.,延时程序编写,(,1,)软件延时,本实验系统晶振为,6.144MHZ,,则一个机器周期为,126.144us,即,10.512us=2us,。现要写一个延时,0.1s,的程序,可大致写出如下:,MOV R7,,,#X 2us,DEL1,:,MOV R6,,,#200 2us,DEL2,:,DJNZ R6,,,DEL2 4us,DJNZ R7,,,DEL1 4us,RET 4us,(2us+4us200+4us)X+2us+4us=0.1 10,6,us,(,2,)硬件延时,2.延时程序编写,13,3.P1,口既做输入又做输出实验说明,3.P1口既做输入又做输出实验说明,14,程序运行后输入与输出的关系,程序运行后输入与输出的关系,15,4.,中断程序实验说明,4.中断程序实验说明,16,5.,定时器实验说明,由,8031,内部定时器,1,按方式,1,工作,即作为,16,位定时器使用,每,0.1,秒钟,T1,溢出中断一次。,P1,口的,P1.0,P1.7,分别接发光二极管的,L1,L8,。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:,L1,、,L2,、,L8,依次点亮;,L1,、,L2,、,L8,依次熄灭;,L1,、,L2,、,L8,全亮、全灭。,各时序间隔为,0.5,秒。让发光二极管按以上规律循环显示下去。学生可以任选一个变化花样。,5.定时器实验说明由8031内部定时器1按方式1工作,即作,17,四程序流程图,八只发光二极管循环点亮流程图,四程序流程图 八只发光二极管循环点亮流程图,18,P1,口既做输入又做输出流程图,P1口既做输入又做输出流程图,19,开始,设置初始状态,设置中断控制寄存器,中断允许,等待中断,中断入口,保护现场,状态位取反,状态位输出,恢复现场,中断返回,INT0,初始化流程图,INT0,中断服务程序流程图,开始设置初始状态设置中断控制寄存器中断允许等待中断中断入口保,20,开始,设置,T1,工作方式,设置,T1,计数初值,开,T1,中断,等待中断,00,A,或,01,A,1,TR1,启动计数,中断入口,保护现场,调用小灯亮子程序,小灯亮的方式送,P1,口,重设设置,T1,计数初值,中断返回,定时器初始化流程图,定时器中断服务程序流程图,开始设置T1工作方式设置T1计数初值开T1中断等待中断00,21,实验四,MCS-51,外部接口实验,一实验要求,(一)利用,74LS244,做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。,(二)利用,8255A,可编程并行接口芯片,重复(一)的内容。实验可用,B,通道作为开关量输入口,,A,通道作为显示输出口。,二实验目的,1.,学习在单片机系统中扩展简单,I/O,口的方法。,2.,学习数据输入,输出程序的编制方法。,3.,了解,8255A,芯片的结构及编程方法。,4.,掌握通过,8255A,并行口读取开关数据的方法。,实验四 MCS-51外部接口实验 一实验要求,22,三实验原理及说明,1.74LS244,的,IN0,IN7,接开关的,K1,K8,,片选信号,CS244,接,CS1,。,三实验原理及说明 1.74LS244的IN0IN7接开,23,2.74LS273,的,O0,O7,接发光二极管的,L1,L8,,片选信号,CS273,接,CS2,。,2.74LS273的O0O7接发光二极管的L1L8,片,24,3.8255A,可编程并行接口芯片输入输出,3.8255A可编程并行接口芯片输入输出,25,四程序流程图,开始,设置端口地址,从,74LS244,读,开关的状态,用,74LS273,显示,开关的状态,延时,0.01,秒,开始,8255,初始化,从,8255 B,口,读,开关的状态,用,8255 A,口,显示,开关的状态,延时,0.01,秒,74LS244,做输出端口流程图,8255A,做输出端口流程图,四程序流程图 开始设置端口地址从74LS244读开关的状态,26,实验五 综合实验,一实验要求,通过,8255A,的,PA,口输出段码,,PB,口输出位码。编程动态显示,“,012345,”,。,二实验目的,1,复习巩固,8255,接口芯片的应用。,2,掌握八段数码管的使用方法,及动态显示的编程方法。,实验五 综合实验 一实验要求,27,三实验原理及说明,PA0PA7,接,ADP,,,PB0PB5,接,SLED1SLED6,,,8255,片选信号接,CS0,三实验原理及说明 PA0PA7接ADP,PB0PB5,28,LED,位控制,LED,段码控制,LED位控制LED段码控制,29,四程序流程图,8255A,控制八段数码管显示流程图,四程序流程图 8255A 控制八段数码管显示流程图,30,相应程序:,MOV A,#80H,MOV DPTR,#0CFA3H,MOVX DPTR,A,LOOP1:MOV R2,#6,MOV R0,#20H,MOV R1,#0FEH,LOOP:MOV A,R0,INC R0,ADD A,#25,MOVC A,A+PC,MOV DPTR,#0CFA0H,MOVX DPTR,A,MOV A,R1,INC DPTR,MOVX DPTR,A,RL A,MOV R1,A,LCALL DELAY,DJNZ R2,LOOP,SJMP LOOP1,DELAY:MOV R6,#4,DEL:MOV R7,#200,DJNZ R7,$,DJNZ R6,DEL,RET,DB 3FH,06H,5BH,DB 4FH,66H,6DH,DB 7DH,07H,7FH,DB 6FH,77H,7CH,DB 39H,5EH,79H,71H,END,程序运行条件:,在内部,RAM20H,单元开始送,6,个,0-15,的数。,实验报告要求:,修改程序,使显示由右到左显示。,修改延时程序,查看显示变化。写出变化的原因。,如果希望程序能显示,0-F,以外的数值如何修改?,相应程序:DELAY:MOV R6,#4,31,
展开阅读全文