1 / 63

单片机原理

单片机原理. 实验教学 电子 教案. 实验一 数据传送实验. 实验目的 : ( 1 )学习使用伟福仿真软件 ( 2 )掌握 8031 内部 RAM 和外部 RAM 之间数据传送特点和应用。 ( 3 )复习数据传送指令。. 实验原理 :

signa
Download Presentation

单片机原理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 单片机原理 实验教学电子教案

  2. 实验一 数据传送实验 实验目的: (1)学习使用伟福仿真软件 (2)掌握8031内部RAM和外部RAM之间数据传送特点和应用。 (3)复习数据传送指令。

  3. 实验原理 : 图1.1为6264外部RAM的扩展原理图,8031的P0口为RAM的复式地址数据线,P2口的P2.5-P2.7用于对RAM进行片选(通过74LS138译码器)。在外部RAM读/写期间,CPU产生RD/WR信号。P2口输出外部8位地址,P0口分时传送低8位地址。

  4. 高8地址位 P2 ALE MCS-51 P0 PSEN EA 锁存器 外部程序存储器 图1.1 MCS-51与外部数据存储器的接口逻辑

  5. 实验仪器及器件 : 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源 实验内容与要求: 1、指定内部RAM中某块的起始地址和长度,要求将其内容清零 。 2、指定外部RAM中某块的起始地址和长度,要求将其内容清零。 3、指定外部RAM中某块的起始地址和长度,要求将其置为固定值。 4、根据MCS-51与外部数据存储器的接口逻辑原理,编写数据传送程序,使8031内部RAM30H-3FH置初值10H-1FH,然后传送到外部RAM2000H-200FH中,再将2000H-200FH中内容传送到8031内部RAM50H-5FH中。

  6. 实验步骤 : 1、开启稳压电源,将其输出调到+5V/-5V。 2、关闭稳压电源,将实验目标板电源线+5V端和接地端分别接到稳压电源的+5V端和接地端。 3、连接6264器件地址CS到译码器CS1端,使其地址为2000H。 4、检查无误,开启稳压电源。 5、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。

  7. 实验接线图

  8. 伟福WAVE6000使用方法: 1、双击桌面WAVE图标,打开WAVE仿真软件。 2、建立一个新的用户程序:点击工具条文件菜单——点击新建文件。在新建文件中编写程序。 3、保存文件:点击文件菜单下保存文件或快捷键F2,在保存文件对话框内输入文件名,将其存为ASM文件。 4、对保存的ASM文件进行汇编:点击项目菜单下编译或快捷键F9。 5、确定执行程序地址:将光标点击在要执行程序内,右键,在右键菜单中点击设置PC。 6、单步执行程序:快捷键F8。 7、断点连续运行程序:将光标点击在设置断电程序内,右键,在右键菜单中点击设置断点,然后连续运行程序,快捷键CTRL-F9。 8、在以下窗口观察运行结果。CPU窗口、信息窗口、数据窗口。

  9. 注意事项: 1、学生进行实验前必须进行预习,拟定程序设计方案。 2、连接线路时注意电源端和接地端,不要反接,线路检查无误时在开启稳压电源。 重点:能提出程序设计思路,对数值传送类指令进行复习。 难点:能设计出符合要求、结果正确的实验程序。

  10. 学生在实验中容易出现的困难及错误: 1、系统的程序设计无从下手,设计出的程序不符合题目要求。指令设计不符合格式规范。 2、对DJNZ和CJNE两条指令功能混淆。

  11. 思考题: 1、CPU对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式? MCS-51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址。我们必须掌握其表示的方法。 1)立即数与直接地址。ata表示八位立即数,#data16表示是十六位立即数,data或direct表示直接地址。2)Rn(n=0-7)、A、B、CY、DPTR寄存器寻址变量。3)@R0、@R1、@DPTR、SP表示寄存器间址变量。4)DPTR+A、PC+A表示变址寻址的变量。5)PC+rel(相对量)表示相对寻址变量。

  12. 2、为什么8031最适合于智能仪表和控制应用场合?2、为什么8031最适合于智能仪表和控制应用场合? 8031控制功能强、体积小、功耗低,具有一定的数据处理能力。能完成数据采集、处理、零位修正、误差补偿、数字显示、报警、数值计算以及各种逻辑判断和控制,使仪器仪表数字化、智能化。

  13. 参考程序: MOV R0,#30H MOV R2,#10H MOV A,#10H A1:MOV @R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#30H MOV DPTR,#2000H MOV R2,#10H A2:MOV A,2R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#50H MOV DPTR,#2000H MOV R2,#10H A3:MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R2,A3 SJMP $

  14. 实验二 数制转换运算实验 实验目的 : 1、学习二进制数转换为BCD码数的一般算法。 2、学习十进制数转换成ASCⅡ码的一般算法。

  15. 实验原理 : 单片机能识别和处理的是二进制码,而输入输出设备(LED显示器、微型打印机等)则使用ASCⅡ或BCD码。为此,在单片机应用系统中经常需要通过程序进行二进制码与BCD、ASCⅡ码转换。 ⑴十六进制数与ASCⅡ码之间的转换:当十六进制数在0-9之间时,其对应的ASCⅡ码值为该十六进制数加30H,当十六进制数在A-F之间时,其对应的ASCⅡ码值为该十六进制数加37H. ⑵BCD码是每四位二进制数表示一位十进制数。转换方法是将数制二进制数除以100、10,所得商即为百位、十位,余数为个位数。

  16. 实验仪器及器件 : 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源。 实验内容与要求 : 编写程序将R1中的十六进制数转换成相应的ASCⅡ码后,结果放在R3和R4中;把累加器A的二进制数转化为BCD码,将百、十、个位分别存放在内部RAM的50H/51H/52H中。

  17. 实验步骤: 1、开启电源。 2、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。 注意事项 : 1、学生进行实验前必须进行预习,拟定程序设计方案 。 2、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。

  18. 重点: 能提出程序设计思路,掌握转换程序设计。 难点: 能设计出符合要求、结果正确的实验程序。 学生在实验中容易出现的困难及错误 1、不清楚数值转换方法。 2、对51汇编语言指令不熟悉。

  19. 思考题: 1、十六进制数与ASCⅡ码之间的转换方法? 2、BCD码与十进制数之间的转换方法?

  20. 参考程序: MOV A,R0 ANL A,#0FH PUSH ACC CLR C SUBB A,#0AH POP ACC JC LOOP ADD A,#07H LOOP:ADD A,#30H MOV R2,A RET

  21. 扩展程序设计: BCD码转换为二进制数:将累加器A中的BCD码转换成二进制数,结果仍存放在A中。 分析:A中存放的BCD码数的范围是0-99。转换成二进制数后是00H-63H,仍然可以存放在A中,转换方法为A中的高半个字节(十位)乘以10,再加上A的低半个字节,计算公式为:A7-4×A3-0 PUSH ACC ANL A,#0FH SWAP A MOV B,310 MUL AB MOV B,A POP ACC ANL A,30FH ADD A,B RET

  22. 实验三 控制转移程序实验 实验目的 : 学习掌握控制转移指令程序设计方法。 实验原理 : 控制程序转移指令共有17条,不包括按布尔变量控制程序转移的指令。其中有全存储空间的长调用、长转移和按2KB分块的程序空间内的绝对调用和绝对转移;全空间的长相对转移及一页范围的短相对转移。这类指令用到的助记符有ACALL、AJMP、LCALL、LJMP、JMP、JZ、CJNE、DJNZ、JNZ等

  23. 实验仪器及器件 : 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源。 实验内容与要求: 编写程序:将20H-2FH中随机无符号数的最小值存放在1F中。 编写程序:设有16个无符号数,依次存放在30H-3FH中,将它们按由小到大排序。

  24. 实验步骤: 1、开启稳压电源。 2、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。 注意事项 : 1、学生进行实验前必须进行预习,拟定程序设计方案。 2、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。

  25. 重点: 能提出程序设计思路,对控制转移类指令进行复习。 难点: 能设计出符合要求、结果正确的实验程序。 学生在实验中容易出现的困难及错误: 1、对程序设计气泡排序算法无法掌握。 2、指令运用不灵活。

  26. 思考题: 简述气泡排序算法? 气泡排序法是依托比较相邻的一对数据,如不符合规定的递增(或递减)顺序,则交换两个数据的位置,第一对比较完毕后,接着比较第二对,直到清单中所有的数据依次比较完成,第一轮比较结束,这是最大(小)的数据降到清单的最低位置。第一轮排序需要进行N-1次比较。第二轮比较需要进行N-2次比较,第二轮结束后,次最大(小)的数据排底部第二位置上。重复上述过程,直到全部排完。

  27. 参考程序: 比较大小: MOV R0,#20H MOV 1FH,@R0 MOV R1,#09H LOOP: INC R0 MOV A,1FH CJNE A,1FH,LOOP LOOP1:JNC LOOP2 MOV 1FH,A LOOP2:DJNZ R1,LOOP LJMP $

  28. 求最小值: MOV 1FH,20H MOV R1,#21H MOV R0,#15 LOOP:MOV A,@R1 CJNE A,1FH,LOOP1 LOOP1:JNC NEXT MOV 1FH,A NEXT:INC R1 DJNZ R0,LOOP RET 另一种方法: MOV 1FH,20H MOV R1,#21H MOV R0,#15 LOOP:MOV A,@R1 PUSH A SUBB A,1FH JC LOOP1 LJMP NEXT LOOP1:POP A MOV 1FH,A NEXT:POP A INC R1 DJNZ R0,LOOP RET

  29. 排序(升序): T0: MOV R2,#30H MOV R3,#10H MOV A,R2 MOV R0,A INC A MOV R1,A MOV A,R3 DEC A MOV R3,A MOV R5,A T1:CLR C MOV A,@R0 SUBB A,@R1 JC T2 ………………..(1) MOV A,@R1 XCH A,@R0 XCH A,@R1 T2:INC R0 INC R1 DJNZ R5,T1 DJNZ R3,T0 RET 注:降序程序须将(1)指令改为JNC T2

  30. 实验四 定时器/计数器实验 实验目的 : 1、学习掌握利用中断、查询方法设计8031内部定时计数器程序。 2、进一步掌握中断处理程序的编程方法。

  31. 实验原理 : MCS-51系列单片机有两个16位定时器/计数器即T0、T1。有关寄存器有以下几个:TH0、TL0、TH1、TL1、TMOD、TCON。 TH0、TL0、为T0的16位计数器的高8位和低8位,TH1、TL为T1的16位计数器的高8位和低8位;TMOD为T0、T1的方式控制寄存器,TCON为T0、T1的状态和控制寄存器,存放T0、T1的运行控制位和溢出位中断标志位。定时器0溢出中断入口地址:000BH。

  32. 实验仪器及器件 : 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源,导线、发光二极管。 实验内容与要求: 定时器T0的定时中断控制溢出,因定时时间较长,13位计数器不够用,可选用方式1的16位计数器,输入运行程序,调节定时器常数或计数数值可以调节输出脉冲宽度。 系统晶振为6MHZ,利用定时器0方式1产生一个脉冲宽度可调的方波在P1.0管脚输出。首先设定时器每100MS产生一次溢出,然后利用软件计数器每10次改变一次P1.0管脚输出,就会得到脉冲宽度为1S的脉冲,实现与P1.0管脚连接的发光二极管 定时闪烁。

  33. 实验步骤 : 1、连接实验线路 。 2、开启稳压电源。 3、输入预习编写程序,汇编通过,连续运行程序,实现控制发光二极管定时闪烁。 注意事项 : 1、可以自己设计实验线路,连好后一定要请教师检查。 2、学生进行实验前必须进行预习,拟定程序设计方案。 3、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。

  34. 实验接线图

  35. 重点: 对8051单片机定时计数器各寄存器功能的掌握。 难点: 定时初值的计算方法。 学生在实验中容易出现的困难及错误 1、计数器循环次数、定时器初值计算错误。 2、中断程序设计不熟悉。

  36. 思考题: 晶振为6MHZ,选择定时器T0、工作方式1定时100MS,定时器初值应该是多少? 设定时器初值为N,则 (216-N)×12=6×105 N=15536 即3CB0H

  37. 参考程序: 查询方式: MOV TMOD,#01H SETB TR0 MOV R2,#10H LOOP: MOV TH0,#3CH MOV TL0,#0B0H JNB TF0,$ CLR TF0 DJNZ R2,LOOP MOV R2,#10 CPL P1.0 LJMP LOOP 中断方式: ORG 0000H LJMP MAIN ORG 000BH LJMP T_SER ORG 0020H MAIN: SETB EA SETB ET0 SETB TR0 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R3,#10H SJMP $ T_SER:CLR TF0 DJNZ R3,WAIT CPL P1.0 MOV R3,#10 WAIT:MOV TH0,#3CH MOV TL0,#0B0H RETI

  38. 实验结果

  39. 实验五 串行口扩展实验 实验目的 : 1、掌握串行口控制显示器硬件原理及软件设计方法。 2、掌握单片机与74LS164接口电路设计。

  40. 实验原理 : MCS-51单片机应用系统中,当串行口不用作串行通讯时,可用来扩展并行输入输出口(设定串行口工作在移位寄存器方式0状态下)。用于显示器时,使用串行输入,并行输出移位寄存器74LS164,每接一片74LS164可扩展一个8位并行输出口,用以连接一个LED段选口静态显示使用。 74LS164与8051接口电路:RXD(P3.0)做为串行输出与74LS164数据输入端(A、B)相连;TXD(P3.1)做为移位脉冲输出与74LS164的时钟输入端CP相连;由P1.0口线控制74LS164的清显示端(CR)。但要注意,由于74LS164的并行输出没有控制器,在串行输入过程中,其输出状态不断变化,一般在74LS164输出端加三态门控制,以保证串行输入结束后在输出数据。 74LS164与数码管连接:实验使用共阳极8段位数码管做为显示器,显示方式为静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定导通或截止。

  41. 实验仪器及器件: 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源,实验用双头导线。 实验内容与要求 : 1、读懂实验线路原理图。 2、编制程序:使显示器逐次显示0-F。 3、编制程序:使显示器逐屏显示每位学生的的班级学号。

  42. 实验步骤: 1、连接实验线路: 单片机-----74LS164 TXD-------- CP RXD--------DSab P1.0--------CR P1.1---------S/L CS----------CS2 2、开启稳压电源。 3、输入预习编写程序,汇编通过,连续运行程序,实现显示器显示要求。

  43. 实验接线图

  44. 注意事项: 1、连接好实验线路,一定要请教师检查后再上电。 2、学生进行实验前必须进行预习,拟定程序设计方案。 3、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。

  45. 重点: 对8051单片机串行口扩展显示器应用设计,查表程序设计方法。 难点: 实现逐屏显示程序设计。 学生在实验中容易出现的困难及错误: 1、线路连接不正确。 2、实现逐屏显示。

  46. 思考题: 74LS164芯片外部引脚功能? 74LS164是串行输入并行输出的移位寄存器,带有清除端,其外部引脚功能如下: Q0-Q7:并行输出端 DSA/DSB:串行输入端。 CR: 清除端,低电平时,使164输出清零。 CP: 时钟脉冲输入端,在PC脉冲的上升沿作用下实现移位。在CP=0。CR=1时164保持原来数据。

  47. 参考程序: MAIN: MOV DPTR,#TAB SETB 90H CLR 91H MOV R5,#10H DL0:MOV A,#00H MOVC A,@A+DPTR MOV SBUF,A WAIT:JNB TI,WAIT CLR TI INC DPTR ACALL D20MS DJNZ R5,DL0 CLR 90H ACALL D20MS SJMP MAIN D20MS:ACALL D10MS D10MS:MOV R7,#0FFH DL1:MOV R6,#0FFH DL2:DJNZ R6,,DL2 DJNZ R7,DL1 RET TAB:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82HH,0F8H DB 80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH

  48. 实验六 串行通信实验 实验目的: 学习单片机串行通信方式,熟悉串行通信程序设计。

  49. 实验原理: 串行通信的数据传送是一位一位依次进行,而在计算机内部数据是并行传送的。因此,发送端在发送前要把并行数据转换为串行数据,然后在传送,而接受端接受时又要把串行数据转换为并行数据。 MCS-51系列单片机有两个串行数据缓冲器,使用同一标号SBUF,共用一个地址99H。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,根据读写指令来确定访问其中哪一个。

  50. 实验仪器及器件: 伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源,实验用双头导线。 实验内容与要求: 两个8031单片机间的数据传输。两单片机异步通信,设串行口为工作方式1,波特率为2400波特,振荡频率11.0592MHZ。利用串行口将甲机内部RAM30H-3FH单元内容送乙机的内部RAM30H-3FH。

More Related