《单片机原理及接口技术实验》由会员分享,可在线阅读,更多相关《单片机原理及接口技术实验(32页珍藏版)》请在金锄头文库上搜索。
1、单片机原理及接口技术实验单片机原理及接口技术实验n实验一实验一 熟悉实验系统及熟悉实验系统及51指令练习指令练习 n实验二实验二 汇编语言程序设计练习汇编语言程序设计练习 n实验三实验三 MCS-51内部接口实验内部接口实验 n实验四实验四 MCS-51外部接口实验外部接口实验 n实验五实验五 综合实验综合实验 实验一实验一 熟悉实验系统及熟悉实验系统及51指令练习指令练习n一一 实验要求实验要求 1. 指指定定存存储储器器中中某某块块的的起起始始地地址址和和长长度度,要要求求能能将将其其内内容置容置1。2. 将给定的一个二进制数转换成将给定的一个二进制数转换成BCD码。码。3. 给出一个十六
2、进制数,将其转换成给出一个十六进制数,将其转换成ASC码值。码值。 n二二 实验目的实验目的 1. 熟练运用熟练运用Keil开发软件调试汇编语言程序。开发软件调试汇编语言程序。2. 掌握存储器读写方法。掌握存储器读写方法。3. 掌握简单的数值转换算法。掌握简单的数值转换算法。4. 了解十六进制数和了解十六进制数和ASC码值的区别。码值的区别。 三三 程序框图程序框图 二进制数转换成二进制数转换成BCD码流程图码流程图存储单元清零流程图存储单元清零流程图十六进制数转换十六进制数转换ASC码流程图码流程图实验报告要求实验报告要求1. 写出写出51汇编程序运行过程汇编程序运行过程(简单些简单些)。2
3、. 写出在调试过程中出现的错误写出在调试过程中出现的错误(包括语法错误和逻辑错误,包括语法错误和逻辑错误,至少至少3条条)。3. 简单叙述三个程序运行结果的正确性。简单叙述三个程序运行结果的正确性。实验二实验二 汇编语言程序设计练习汇编语言程序设计练习 n一一 实验要求实验要求 1. 将指定源地址和长度的存储块移到指定目标位置。将指定源地址和长度的存储块移到指定目标位置。2. 在在多多分分支支结结构构的的程程序序中中,能能够够按按调调用用号号执执行行相相应应的的功功能,完成指定操作。能,完成指定操作。3. 给给出出一一组组随随机机数数,将将此此组组数数据据排排序序,使使之之成成为为有有序序排排
4、列。列。n二二 实验目的实验目的 1掌握内存块的移动方法。掌握内存块的移动方法。2了了解解程程序序的的多多分分支支结结构构。掌掌握握多多分分支支结结构构程程序序的的编编程程 方法。方法。3了解数据排序的简单算法。了解数据排序的简单算法。n三程序框图三程序框图 内存块的移动流程图内存块的移动流程图 分支结构程序流程图分支结构程序流程图数据排序流程图数据排序流程图 排序程序排序程序1. 在程序运行前,在程序运行前, 在在20h单元开始随机存放单元开始随机存放10个数。个数。2. 程序运行后,查看程序运行后,查看20h开始的开始的10个单元的数据是否有序。个单元的数据是否有序。 ORG 0H LOO
5、P3: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个程序运行结果分析是否正确。个程序运行结果
6、分析是否正确。3. 写出第二个程序运行过程的写出第二个程序运行过程的pc值。若(值。若(20H)=8,结,结果如何?能不能实现多分支转移?果如何?能不能实现多分支转移?实验三实验三 MCS-51内部接口实验内部接口实验 n一实验要求一实验要求 (一)(一)P1口输入口输入/输出实验输出实验1. p1口口做做输输出出口口,接接八八只只发发光光二二极极管管,编编写写程程序序,使使发发光二极管循环点亮。光二极管循环点亮。2. P1口口既既做做输输入入又又做做输输出出,将将两两个个开开关关的的状状态态在在四四个个发发 光二极管上显示出来。光二极管上显示出来。n(二)外部中断实验(二)外部中断实验 用用
7、单单次次脉脉冲冲申申请请中中断断,在在中中断断处处理理程程序序中中对对输输出出信信号号进行反转。进行反转。n(三)定时器实验(三)定时器实验 用用8031内内部部定定时时器器,每每秒秒钟钟T1溢溢出出中中断断一一次次。P1口口的的分分别别接接发发光光二二极极管管的的L1L8。要要求求编编写写程程序序模模拟拟一循环彩灯。一循环彩灯。 二实验目的二实验目的1掌握掌握p1口的使用方法和延时子程序的编写及使用。口的使用方法和延时子程序的编写及使用。2进一步学习多分支结构程序的编程方法。进一步学习多分支结构程序的编程方法。3学学习习外外部部中中断断技技术术的的基基本本使使用用及及中中断断处处理理程程序序
8、的的编编程程方法。方法。4学学习习8031内内部部计计数数器器的的使使用用和和编编程程方方法法,掌掌握握中中断断处理程序的编写方法。处理程序的编写方法。n三三 实验说明实验说明 n1. P1口做输出口的实验说明口做输出口的实验说明n2. 延时程序编写延时程序编写n(1)软件延时)软件延时 本本 实实 验验 系系 统统 晶晶 振振 为为 , 则则 一一 个个 机机 器器 周周 期期 为为 即即10.512us=2us。现现要要写写一一个个延延时时的的程程序序,可可大大致致写出如下:写出如下:n MOV R7,#X 2usn DEL1:MOV R6,#200 2usn DEL2:DJNZ R6,D
9、EL2 4usn DJNZ R7,DEL1 4us n RET 4us n(2us+4us200+4us) X+2us+4us=0.1 106usn(2)硬件延时)硬件延时 3. P1口既做输入又做输出实验说明口既做输入又做输出实验说明程序运行后输入与输出的关系程序运行后输入与输出的关系 4. 中断程序实验说明中断程序实验说明5. 定时器实验说明定时器实验说明n由由8031内部定时器内部定时器1按方式按方式1工作,即作为工作,即作为16位定时位定时器使用,每秒钟器使用,每秒钟T1溢出中断一次。溢出中断一次。P1口的分别接发口的分别接发光二极管的光二极管的L1L8。要求编写程序模拟一循环彩灯。要
10、求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:彩灯变化花样可自行设计。例程给出的变化花样为:nL1、L2、L8依次点亮;依次点亮; nL1、L2、L8依次熄灭;依次熄灭;nL1、L2、L8全亮、全灭。全亮、全灭。n各时序间隔为秒。让发光二极管按以上规律循环显示各时序间隔为秒。让发光二极管按以上规律循环显示下去。学生可以任选一个变化花样。下去。学生可以任选一个变化花样。 四程序流程图四程序流程图 八只发光二极管循环点亮流程图八只发光二极管循环点亮流程图P1口既做输入又做输出流程图口既做输入又做输出流程图开始开始设置初始状态设置初始状态设置中断控制寄设置中断控制寄存器存器
11、中断允许中断允许等待中断等待中断中断入口中断入口保护现场保护现场状态位取反状态位取反状态位输出状态位输出恢复现场恢复现场中断返回中断返回INT0初始化流程图初始化流程图INT0中断服务程序流程图中断服务程序流程图开始开始设置设置T1工作方式工作方式设置设置T1计数初值计数初值开开T1中断中断等待中断等待中断00A或或01A1TR1启动计数启动计数中断入口中断入口保护现场保护现场调用小灯亮子程序调用小灯亮子程序小灯亮的方式送小灯亮的方式送P1口口重设设置重设设置T1计数初值计数初值中断返回中断返回定时器初始化流程图定时器初始化流程图定时器中断服务程序流程图定时器中断服务程序流程图实验四实验四 M
12、CS-51外部接口实验外部接口实验 n一实验要求一实验要求 (一一)利利用用74LS244做做为为输输入入口口,读读取取开开关关状状态态,并并将将此状态通过发光二极管显示出来。此状态通过发光二极管显示出来。(二二)利利用用8255A可可编编程程并并行行接接口口芯芯片片,重重复复(一一)的的内内容容。实实验验可可用用B通通道道作作为为开开关关量量输输入入口口,A通通道道作作为为显示输出口。显示输出口。 n二实验目的二实验目的 1. 学习在单片机系统中扩展简单学习在单片机系统中扩展简单I/O口的方法。口的方法。2. 学习数据输入,输出程序的编制方法。学习数据输入,输出程序的编制方法。3. 了解了解
13、8255A芯片的结构及编程方法。芯片的结构及编程方法。4. 掌握通过掌握通过8255A并行口读取开关数据的方法。并行口读取开关数据的方法。 三实验原理及说明三实验原理及说明 n1. 74LS244的的IN0IN7接开关的接开关的K1K8,片选信,片选信号号CS244接接CS1。n2. 74LS273的的O0O7接发光二极管的接发光二极管的L1L8,片,片选信号选信号CS273接接CS2。3. 8255A可编程并行接口芯片输入输出可编程并行接口芯片输入输出 四程序流程图四程序流程图 开始开始设置端口地址设置端口地址从从74LS24474LS244读读开关的状态开关的状态用用74LS27374LS
14、273显示显示开关的状态开关的状态延时延时0.01秒秒开始开始8255初始化初始化从从8255 B8255 B口口读读开关的状态开关的状态用用8255 A8255 A口口显示显示开关的状态开关的状态延时延时0.01秒秒74LS244做输出端口流程图做输出端口流程图 8255A做输出端口流程图做输出端口流程图 实验五实验五 综合实验综合实验 n一实验要求一实验要求 通通过过8255A 的的PA口口输输出出段段码码,PB口口输输出出位位码码。编编程程动态显示动态显示“012345”。 n二实验目的二实验目的 1复习巩固复习巩固8255接口芯片的应用。接口芯片的应用。2掌握八段数码管的使用方法,及动
15、态显示的编程方法。掌握八段数码管的使用方法,及动态显示的编程方法。 三实验原理及说明三实验原理及说明 PA0PA7接接ADP,PB0PB5接接SLED1SLED6,8255片选信号接片选信号接CS0 LED位控制LED段码控制四程序流程图四程序流程图 8255A 控制八段数码管显示流程图控制八段数码管显示流程图 相应程序:相应程序: MOV A,#80H MOV DPTR ,#0CFA3H MOVX DPTR ,ALOOP1: MOV R2, #6 MOV R0,#20H MOV R1,#0FEHLOOP: MOV A,R0 INC R0 ADD A,#25 MOVC A,A+PC MOV D
16、PTR,#0CFA0H MOVX DPTR,A MOV A,R1 INC DPTR MOVX DPTR,A RL A MOV R1,A LCALL DELAY DJNZ R2, LOOP SJMP LOOP1DELAY: 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的数。的数。实验报告要求:实验报告要求:1.修改程序,使显示由右到左显示。修改程序,使显示由右到左显示。2.修改延时程序,查看显示变化。修改延时程序,查看显示变化。写出变化的原因。写出变化的原因。3.如果希望程序能显示如果希望程序能显示0-F以外的以外的数值如何修改?数值如何修改?