1、单片机原理 实验教学电子教案实验一实验一 数据传送实验数据传送实验实验目的实验目的:(1)学习使用伟福仿真软件(2)掌握8031内部RAM和外部RAM之间数据传送特点和应用。(3)复习数据传送指令。实验原理实验原理:图1.1为6264外部RAM的扩展原理图,8031的P0口为RAM的复式地址数据线,P2口的P2.5-P2.7用于对RAM进行片选(通过74LS138译码器)。在外部RAM读/写期间,CPU产生RD/WR信号。P2口输出外部8位地址,P0口分时传送低8位地址。P2ALEMCS-51P0PSENEA锁存器外部程序存储器高8地址位图1.1 MCS-51与外部数据存储器的接口逻辑实验仪器
2、及器件实验仪器及器件:伟福系列仿真器、CPU586计算机、实验目标板、WD-4微机稳压电源实验内容与要求实验内容与要求:1、指定内部RAM中某块的起始地址和长度,要求将其内容清零。2、指定外部RAM中某块的起始地址和长度,要求将其内容清零。3、指定外部RAM中某块的起始地址和长度,要求将其置为固定值。4、根据MCS-51与外部数据存储器的接口逻辑原理,编写数据传送程序,使8031内部RAM30H-3FH置初值10H-1FH,然后传送到外部RAM2000H-200FH中,再将2000H-200FH中内容传送到8031内部RAM50H-5FH中。实验步骤实验步骤:1、开启稳压电源,将其输出调到+5
3、V/-5V。2、关闭稳压电源,将实验目标板电源线+5V端和接地端分别接到稳压电源的+5V端和接地端。3、连接6264器件地址CS到译码器CS1端,使其地址为2000H。4、检查无误,开启稳压电源。5、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。实验接线图伟福伟福WAVE6000使用方法使用方法:1、双击桌面WAVE图标,打开WAVE仿真软件。2、建立一个新的用户程序:点击工具条文件菜单点击新建文件。在新建文件中编写程序。3、保存文件:点击文件菜单下保存文件或快捷键F2,在保存文件对话框内输入文件名,将其存为ASM文件。4、对保存的ASM文件进行汇编:点击项目菜单下编
4、译或快捷键F9。5、确定执行程序地址:将光标点击在要执行程序内,右键,在右键菜单中点击设置PC。6、单步执行程序:快捷键F8。7、断点连续运行程序:将光标点击在设置断电程序内,右键,在右键菜单中点击设置断点,然后连续运行程序,快捷键CTRL-F9。8、在以下窗口观察运行结果。CPU窗口、信息窗口、数据窗口。注意事项:注意事项:1、学生进行实验前必须进行预习,拟定程序设、学生进行实验前必须进行预习,拟定程序设计方案。计方案。2、连接线路时注意电源端和接地端,不要反接,、连接线路时注意电源端和接地端,不要反接,线路检查无误时在开启稳压电源。线路检查无误时在开启稳压电源。重点:能提出程序设计思路,对
5、数值传送类指重点:能提出程序设计思路,对数值传送类指令进行复习。令进行复习。难点:能设计出符合要求、结果正确的实验程难点:能设计出符合要求、结果正确的实验程序。序。学生在实验中容易出现的困难及错误:学生在实验中容易出现的困难及错误:1、系统的程序设计无从下手,设计出的程序、系统的程序设计无从下手,设计出的程序不符合题目要求。指令设计不符合格式规范。不符合题目要求。指令设计不符合格式规范。2、对、对DJNZ和和CJNE两条指令功能混淆。两条指令功能混淆。思考题思考题:1、CPU对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式?MCS51的寻址方式共有六种:立即数寻址、直接寻址、寄存器
6、寻址、寄存器间址、变址寻址、相对寻址。我们必须掌握其表示的方法。1)立即数与直接地址。ata表示八位立即数,data16表示是十六位立即数,data或direct表示直接地址。2)Rn(n=07)、A、B、CY、DPTR寄存器寻址变量。3)R0、R1、DPTR、SP表示寄存器间址变量。4)DPTRA、PCA表示变址寻址的变量。5)PCrel(相对量)表示相对寻址变量。2、为什么8031最适合于智能仪表和控制应用场合?8031控制功能强、体积小、功耗低,具有一定的数据处理能力。能完成数据采集、处理、零位修正、误差补偿、数字显示、报警、数值计算以及各种逻辑判断和控制,使仪器仪表数字化、智能化。参考
7、程序:参考程序:MOV R0,#30HMOV R2,#10HMOV A,#10H A1:MOV R0,AINC R0INC ADJNZ R2,A1MOV R0,#30HMOV DPTR,#2000HMOV R2,#10H A2:MOV A,2R0MOVX DPTR,AINC R0INC DPTRDJNZ R2,A2MOV R0,#50HMOV DPTR,#2000HMOV R2,#10H A3:MOVX A,DPTRMOV R0,AINC R0INC DPTRDJNZ R2,A3SJMP$实验二实验二 数制转换运算实验数制转换运算实验 实验目的实验目的:1、学习二进制数转换为BCD码数的一般算
8、法。2、学习十进制数转换成ASC码的一般算法。实验原理实验原理:单片机能识别和处理的是二进制码,而输入输出设备(LED显示器、微型打印机等)则使用ASC或BCD码。为此,在单片机应用系统中经常需要通过程序进行二进制码与BCD、ASC码转换。十六进制数与ASC码之间的转换:当十六进制数在09之间时,其对应的ASC码值为该十六进制数加30H,当十六进制数在A-F之间时,其对应的ASC码值为该十六进制数加37H.BCD码是每四位二进制数表示一位十进制数。转换方法是将数制二进制数除以100、10,所得商即为百位、十位,余数为个位数。实验仪器及器件实验仪器及器件:伟福系列仿真器、CPU586计算机、实验
9、目标板、WD4微机稳压电源。实验内容与要求实验内容与要求:编写程序将R1中的十六进制数转换成相应的ASC码后,结果放在R3和R4中;把累加器A的二进制数转化为BCD码,将百、十、个位分别存放在内部RAM的50H/51H/52H中。实验步骤:实验步骤:1、开启电源。2、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。注意事项注意事项:1、学生进行实验前必须进行预习,拟定程序设计方案。2、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。重点:重点:能提出程序设计思路,掌握转换程序设计。难点:难点:能设计出符合要求、结果正确的实验程序。学生在实验中容易出
10、现的困难及错误学生在实验中容易出现的困难及错误1、不清楚数值转换方法。2、对51汇编语言指令不熟悉。思考题:思考题:1、十六进制数与ASC码之间的转换方法?2、BCD码与十进制数之间的转换方法?参考程序:MOV A,R0ANL A,#0FHPUSH ACCCLR CSUBB A,#0AHPOP ACCJC LOOPADD A,#07HLOOP:ADD A,#30HMOV R2,ARET 扩展程序设计:扩展程序设计:BCD码转换为二进制数:将累加器A中的BCD码转换成二进制数,结果仍存放在A中。分析:A中存放的BCD码数的范围是099。转换成二进制数后是00H-63H,仍然可以存放在A中,转换方
11、法为A中的高半个字节(十位)乘以10,再加上A的低半个字节,计算公式为:A7-4A3-0PUSH ACCANL A,#0FHSWAP AMOV B,310MUL ABMOV B,APOP ACCANL A,30FHADD A,BRET 实验三实验三 控制转移程序实验控制转移程序实验 实验目的实验目的:学习掌握控制转移指令程序设计方法。实验原理实验原理:控制程序转移指令共有17条,不包括按布尔变量控制程序转移的指令。其中有全存储空间的长调用、长转移和按2KB分块的程序空间内的绝对调用和绝对转移;全空间的长相对转移及一页范围的短相对转移。这类指令用到的助记符有ACALL、AJMP、LCALL、LJ
12、MP、JMP、JZ、CJNE、DJNZ、JNZ等实验仪器及器件实验仪器及器件:伟福系列仿真器、CPU586计算机、实验目标板、WD4微机稳压电源。实验内容与要求:实验内容与要求:编写程序:将20H-2FH中随机无符号数的最小值存放在1F中。编写程序:设有16个无符号数,依次存放在30H-3FH中,将它们按由小到大排序。实验步骤:实验步骤:1、开启稳压电源。2、输入预习编写程序,汇编通过后单步、断点连续运行程序,检查相应存储器结果。注意事项注意事项:1、学生进行实验前必须进行预习,拟定程序设计方案。2、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。重点:重点:能提出程序设
13、计思路,对控制转移类指令进行复习。难点:难点:能设计出符合要求、结果正确的实验程序。学生在实验中容易出现的困难及错误:学生在实验中容易出现的困难及错误:1、对程序设计气泡排序算法无法掌握。2、指令运用不灵活。思考题:思考题:简述气泡排序算法?气泡排序法是依托比较相邻的一对数据,如不符合规定的递增(或递减)顺序,则交换两个数据的位置,第一对比较完毕后,接着比较第二对,直到清单中所有的数据依次比较完成,第一轮比较结束,这是最大(小)的数据降到清单的最低位置。第一轮排序需要进行N-1次比较。第二轮比较需要进行N-2次比较,第二轮结束后,次最大(小)的数据排底部第二位置上。重复上述过程,直到全部排完。
14、参考程序:参考程序:比较大小:比较大小:MOV R0,#20HMOV 1FH,R0MOV R1,#09HLOOP:INC R0MOV A,1FHCJNE A,1FH,LOOPLOOP1:JNC LOOP2MOV 1FH,ALOOP2:DJNZ R1,LOOPLJMP$求最小值:求最小值:MOV 1FH,20HMOV R1,#21HMOV R0,#15LOOP:MOV A,R1CJNE A,1FH,LOOP1LOOP1:JNC NEXTMOV 1FH,ANEXT:INC R1DJNZ R0,LOOPRET另一种方法:另一种方法:MOV 1FH,20HMOV R1,#21HMOV R0,#15LO
15、OP:MOV A,R1PUSH ASUBB A,1FHJC LOOP1LJMP NEXTLOOP1:POP AMOV 1FH,ANEXT:POP AINC R1DJNZ R0,LOOPRET 排序(升序):排序(升序):T0:MOV R2,#30HMOV R3,#10HMOV A,R2MOV R0,AINC AMOV R1,AMOV A,R3DEC AMOV R3,AMOV R5,AT1:CLR CMOV A,R0SUBB A,R1JC T2 .(1)MOV A,R1XCH A,R0XCH A,R1T2:INC R0INC R1DJNZ R5,T1DJNZ R3,T0RET 注:降序程序须将(
16、1)指令改为JNC T2实验四实验四 定时器定时器/计数器实验计数器实验实验目的实验目的:1、学习掌握利用中断、查询方法设计8031内部定时计数器程序。2、进一步掌握中断处理程序的编程方法。实验原理实验原理: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溢出中断入口地址:0
17、00BH。实验仪器及器件实验仪器及器件:伟福系列仿真器、CPU586计算机、实验目标板、WD4微机稳压电源,导线、发光二极管。实验内容与要求:实验内容与要求:定时器定时器T0的定时中断控制溢出,因定时时间较长,的定时中断控制溢出,因定时时间较长,13位计数器不够用,可选用方式位计数器不够用,可选用方式1的的16位计数器,位计数器,输入运行程序,调节定时器常数或计数数值可以调输入运行程序,调节定时器常数或计数数值可以调节输出脉冲宽度。节输出脉冲宽度。系统晶振为系统晶振为6MHZ,利用定时器,利用定时器0方式方式1产生一个脉产生一个脉冲宽度可调的方波在冲宽度可调的方波在P1.0管脚输出。首先设定时
18、器管脚输出。首先设定时器每每100MS产生一次溢出,然后利用软件计数器每产生一次溢出,然后利用软件计数器每10次改变一次次改变一次P1.0管脚输出,就会得到脉冲宽度为管脚输出,就会得到脉冲宽度为1S的脉冲,实现与的脉冲,实现与P1.0管脚连接的发光二极管管脚连接的发光二极管 定时闪定时闪烁。烁。实验步骤实验步骤:1、连接实验线路。2、开启稳压电源。3、输入预习编写程序,汇编通过,连续运行程序,实现控制发光二极管定时闪烁。注意事项注意事项:1、可以自己设计实验线路,连好后一定要请教师检查。2、学生进行实验前必须进行预习,拟定程序设计方案。3、连接线路时注意电源端和接地端,不要反接,线路检查无误时
19、再开启稳压电源。实验接线图重点:重点:对8051单片机定时计数器各寄存器功能的掌握。难点:难点:定时初值的计算方法。学生在实验中容易出现的困难及错误学生在实验中容易出现的困难及错误1、计数器循环次数、定时器初值计算错误。2、中断程序设计不熟悉。思考题思考题:晶振为6MHZ,选择定时器T0、工作方式1定时100MS,定时器初值应该是多少?设定时器初值为N,则(216N)126105N15536 即3CB0H参考程序:参考程序:查询方式:MOV TMOD,#01HSETB TR0MOV R2,#10HLOOP:MOV TH0,#3CHMOV TL0,#0B0HJNB TF0,$CLR TF0DJN
20、Z R2,LOOPMOV R2,#10CPL P1.0LJMP LOOP 中断方式:ORG 0000HLJMP MAINORG 000BHLJMP T_SERORG 0020HMAIN:SETB EASETB ET0SETB TR0MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV R3,#10HSJMP$T_SER:CLR TF0DJNZ R3,WAITCPL P1.0MOV R3,#10WAIT:MOV TH0,#3CHMOV TL0,#0B0HRETI实验结果实验五实验五 串行口扩展实验串行口扩展实验实验目的实验目的:1、掌握串行口控制显示器硬件原理及软件
21、设计方法。2、掌握单片机与74LS164接口电路设计。实验原理实验原理:MCS51单片机应用系统中,当串行口不用作串行通讯时,可用来扩展并行输入输出口(设定串行口工作在移位寄存器方式0状态下)。用于显示器时,使用串行输入,并行输出移位寄存器74LS164,每接一片74LS164可扩展一个8位并行输出口,用以连接一个LED段选口静态显示使用。74LS164与8051接口电路:RXD(P3.0)做为串行输出与74LS164数据输入端(A、B)相连;TXD(P3.1)做为移位脉冲输出与74LS164的时钟输入端CP相连;由P1.0口线控制74LS164的清显示端(CR)。但要注意,由于74LS164
22、的并行输出没有控制器,在串行输入过程中,其输出状态不断变化,一般在74LS164输出端加三态门控制,以保证串行输入结束后在输出数据。74LS164与数码管连接:实验使用共阳极8段位数码管做为显示器,显示方式为静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定导通或截止。实验仪器及器件:实验仪器及器件:伟福系列仿真器、伟福系列仿真器、CPU586计算机、实验目计算机、实验目标板、标板、WD4微机稳压电源,实验用双头微机稳压电源,实验用双头导线。导线。实验内容与要求实验内容与要求:1、读懂实验线路原理图。2、编制程序:使显示器逐次显示0F。3、编制程序:使显示器逐屏显示每位学
23、生的的班级学号。实验步骤:实验步骤:1、连接实验线路:单片机-74LS164TXD-CPRXD-DSabP1.0-CRP1.1-S/LCS-CS22、开启稳压电源。3、输入预习编写程序,汇编通过,连续运行程序,实现显示器显示要求。实验接线图注意事项:注意事项:1、连接好实验线路,一定要请教师检查后再上电。2、学生进行实验前必须进行预习,拟定程序设计方案。3、连接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。重点:重点:对8051单片机串行口扩展显示器应用设计,查表程序设计方法。难点:难点:实现逐屏显示程序设计。学生在实验中容易出现的困难及错误:学生在实验中容易出现的困难及错
24、误:1、线路连接不正确。2、实现逐屏显示。思考题思考题:74LS164芯片外部引脚功能?74LS164是串行输入并行输出的移位寄存器,带有清除端,其外部引脚功能如下:Q0-Q7:并行输出端DSA/DSB:串行输入端。CR:清除端,低电平时,使164输出清零。CP:时钟脉冲输入端,在PC脉冲的上升沿作用下实现移位。在CP0。CR1时164保持原来数据。参考程序:参考程序:MAIN:MOV DPTR,#TABSETB 90HCLR 91HMOV R5,#10HDL0:MOV A,#00HMOVC A,A+DPTRMOV SBUF,AWAIT:JNB TI,WAITCLR TIINC DPTRACA
25、LL D20MSDJNZ R5,DL0CLR 90HACALL D20MSSJMP MAIND20MS:ACALL D10MSD10MS:MOV R7,#0FFHDL1:MOV R6,#0FFHDL2:DJNZ R6,DL2DJNZ R7,DL1RETTAB:DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82HH,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EH 实验六实验六 串行通信实验串行通信实验实验目的:实验目的:学习单片机串行通信方式,熟悉串行通信程序设计。实验原理:实验原理:串行通信的数据传送是一位一位依次进行,而在计算机内部数
26、据是并行传送的。因此,发送端在发送前要把并行数据转换为串行数据,然后在传送,而接受端接受时又要把串行数据转换为并行数据。MCS-51系列单片机有两个串行数据缓冲器,使用同一标号SBUF,共用一个地址99H。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,根据读写指令来确定访问其中哪一个。实验仪器及器件:实验仪器及器件:伟福系列仿真器、CPU586计算机、实验目标板、WD4微机稳压电源,实验用双头导线。实验内容与要求:实验内容与要求:两个8031单片机间的数据传输。两单片机异步通信,设串行口为工作方式1,波特率为2400波特,振荡频率11.0592MHZ。利用串行口将甲机内部RAM30H
27、-3FH单元内容送乙机的内部RAM30H-3FH。实验步骤实验步骤:1、连接实验线路。2、开启稳压电源。3、输入预习编写程序,汇编通过,连续运行程序,实现显示器显示要求。注意事项:注意事项:1、学生进行实验前必须进行预习,拟定程序设计方案。2、接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。重点:重点:熟悉51单片机串行口寄存器SBUF读写程序方法,串行通信程序设计方法。难点:难点:实现通信程序设计学生在实验中容易出现的困难及错误:学生在实验中容易出现的困难及错误:程序设计不正确,不能实现数据收发。思考题思考题:1、串行通信与并行通信有何异同?串行通信通过串行接口实现。在并
28、行通信中,信息传输的位数和数据位数相等。全双工的串行通信仅需要一根发送线。并行通信速度快,传输线多,适合于近距离的数据通信,串行通信速度慢,传输线少,适合于长距离数据输送。2、如何在通信中引入奇偶校验?串行通信有两种形式:同步和异步通信。异步通信在发送字符时,数据位和停止位之间可以有1位奇偶校验位。同步通信通过字符顺序连接,每个数据块前加12个同步字符,内部分为若干段,尾部是错误校验字符。参考程序:参考程序:发送部分:MOV TMOD,#20H;定时器1置为方式2MOV TH1,#0F4H;装载定时器初值MOV TL1,#0F4HMOV PCON,#00HSETB TR1MOV SCON,38
29、0HMOV R0,#30HMOV R2,#0FHLP1:MOV A,2R0MOV SBUF,ALP2:JBC TI,LP3SJMP LP2LP3:INC R0DJNZ R2,LP1SJMP$接收部分(先运行):MOV TMOD,#20H;定时器1置为方式2MOV TH1,#0F4H;装载定时器初值MOV TL1,#0F4HMOV PCON,#00HSETB TR1MOV SCON,#50HMOV R0,#30HMOV R2,#0FHSETB RENLP1:JBC RI,LP2SJMP LP1LP2:CLR RIMOV A,SBUFMOV R0,AINC R0DJNZ R2,LP1SJMP$实验
30、七实验七 流水灯实验流水灯实验 实验目的:实验目的:掌握8051单片机输入、输出端口程序设计方法。实验原理:实验原理:P1口是8051惟一的单功能口,仅能用作通用的数据输入/输出口。P1口是通用的准双向口,由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,内部设有上拉电阻。其输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当口用作输入时,须向口锁存器写入1。实验仪器及器件:实验仪器及器件:伟福系列仿真器、CPU586计算机、实验目标板、WD4微机稳压电源,实验用双头导线。实验内容与要求:实验内容与要求:P1口做输出输出口,接八只发光二极管(其输入端为高电平时发光二极管点亮),编写程
31、序,使发光二极管循环点亮。实验接线图注意事项:注意事项:1、学生进行实验前必须进行预习,拟定程序设计方案。2、接线路时注意电源端和接地端,不要反接,线路检查无误时再开启稳压电源。重点:重点:掌握Pl口的使用方法及延时子程序的编写和使用。难点:难点:实现复杂点亮顺序程序设计.学生在实验中容易出现的困难及错误:学生在实验中容易出现的困难及错误:程序设计不正确,点亮顺序与设计要求不符。参考程序:MAIN:MOV A,#0FEHMOV R0,#8MAIN1:MOV P1,ARL AACALL TIMEDJNZ R0,MAIN1MOV R0,#8MOV A,#7FH MAIN2:MOV P1,ARR AACALL TIMEDJNZ R0,MAIN2LJMP MAINTIME:MOV R1,#0FFHLOOP1:MOV R2,#0FFHLOOP:DJNZ R2,LOOPDJNZ R1,LOOP1RET实验结果谢谢!欢迎指教!