单片机原理及接口技术实验.ppt
实验一 熟悉实验系统及51指令练习,一 实验要求 1.指定存储器中某块的起始地址和长度,要求能将其内容置1。2.将给定的一个二进制数转换成BCD码。3.给出一个十六进制数,将其转换成ASC码值。二 实验目的 1.熟练运用Keil开发软件调试汇编语言程序。2.掌握存储器读写方法。3.掌握简单的数值转换算法。4.了解十六进制数和ASC码值的区别。,三 程序框图,二进制数转换成BCD码流程图,存储单元清零流程图,十六进制数转换ASC码流程图,实验报告要求,1.写出51汇编程序运行过程(简单些)。2.写出在调试过程中出现的错误(包括语法错误和逻辑错误,至少3条)。3.简单叙述三个程序运行结果的正确性。,实验二 汇编语言程序设计练习,一 实验要求 1.将指定源地址和长度的存储块移到指定目标位置。2.在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。3.给出一组随机数,将此组数据排序,使之成为有序排列。二 实验目的 1掌握内存块的移动方法。2了解程序的多分支结构。掌握多分支结构程序的编程 方法。3了解数据排序的简单算法。,三程序框图,内存块的移动流程图,分支结构程序流程图,数据排序流程图,排序程序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,实验二报告要求:,在结果分析中:1.写出调试程序过程中出现的错误(3处)。2.对3个程序运行结果分析是否正确。3.写出第二个程序运行过程的pc值。若(20H)=8,结果如何?能不能实现多分支转移?,实验三 MCS-51内部接口实验,一实验要求(一)P1口输入/输出实验1.p1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2.P1口既做输入又做输出,将两个开关的状态在四个发 光二极管上显示出来。(二)外部中断实验 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。(三)定时器实验 用8031内部定时器,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。,二实验目的,1掌握p1口的使用方法和延时子程序的编写及使用。2进一步学习多分支结构程序的编程方法。3学习外部中断技术的基本使用及中断处理程序的编程方法。4学习8031内部计数器的使用和编程方法,掌握中断处理程序的编写方法。,三 实验说明 1.P1口做输出口的实验说明,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 106us(2)硬件延时,3.P1口既做输入又做输出实验说明,程序运行后输入与输出的关系,4.中断程序实验说明,5.定时器实验说明,由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:L1、L2、L8依次点亮;L1、L2、L8依次熄灭;L1、L2、L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。学生可以任选一个变化花样。,四程序流程图,八只发光二极管循环点亮流程图,P1口既做输入又做输出流程图,INT0初始化流程图,INT0中断服务程序流程图,定时器初始化流程图,定时器中断服务程序流程图,实验四 MCS-51外部接口实验,一实验要求(一)利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。(二)利用8255A可编程并行接口芯片,重复(一)的内容。实验可用B通道作为开关量输入口,A通道作为显示输出口。二实验目的 1.学习在单片机系统中扩展简单I/O口的方法。2.学习数据输入,输出程序的编制方法。3.了解8255A芯片的结构及编程方法。4.掌握通过8255A并行口读取开关数据的方法。,三实验原理及说明,1.74LS244的IN0IN7接开关的K1K8,片选信号CS244接CS1。,2.74LS273的O0O7接发光二极管的L1L8,片选信号CS273接CS2。,3.8255A可编程并行接口芯片输入输出,四程序流程图,74LS244做输出端口流程图,8255A做输出端口流程图,实验五 综合实验,一实验要求 通过8255A 的PA口输出段码,PB口输出位码。编程动态显示“012345”。二实验目的 1复习巩固8255接口芯片的应用。2掌握八段数码管的使用方法,及动态显示的编程方法。,三实验原理及说明,PA0PA7接ADP,PB0PB5接SLED1SLED6,8255片选信号接CS0,LED位控制,LED段码控制,四程序流程图,8255A 控制八段数码管显示流程图,谢谢你的阅读,知识就是财富丰富你的人生,