物理《单片机原理实验》优秀教学课件.docx
- 文档编号:9277767
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:19
- 大小:22.13KB
物理《单片机原理实验》优秀教学课件.docx
《物理《单片机原理实验》优秀教学课件.docx》由会员分享,可在线阅读,更多相关《物理《单片机原理实验》优秀教学课件.docx(19页珍藏版)》请在冰豆网上搜索。
物理《单片机原理实验》优秀教学课件
软件实验一数据交换
[实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序
[实验器材]计算机及伟福软件
[程序内容]
把30H单元与40H单元地数据交换
方法一:
Org2000h
Movr7,30h
Mov30,40h
Mov40,r7
Sjmp$
方法二:
Org2000h
Movr0,#40h
Movr1,#30h
Mova,@r0
Movb,@r1
Mov@r0,b
Mov@r1,A
Sjmp$
方法三:
Org2000h
MovA,30h
XchA,40h
Mov30h,A
Sjmp$
方法四:
Org2000h
Push30h
Pop30h
Pop40h
[思考题]
1.练习单步执行程序,并记录每一条指令执行后相关寄存器地内容.
2.练习设置程序地断点,执行程序到断点处,并记录程序运行后有关寄存器地内容.
软件实验二查表程序
[实验目地]1、学会伟福软件地使用和设置2、学会查表指令地使用
[实验器材]计算机及伟福软件
[实验内容]在程序存储器中从tab开始地16个连续单元存放0-15地平方值,设计程序,任意给一个数x(0 参考程序: org0000h movdptr,#tab mova,x movca,@a+dptr movy,a sjmp$ tab: db00h,01h,04h,09h,10h,19h,24h,31h db40h,51h,64h,79h,90h,0A9h,0c4h,0e1h xdata30h ydata31h 【思考题】: 1、要求在伟福软件实现以上程序,如何验证程序地正确性? 程序每句地意思? 2、写出程序地机器码? 程序共有几个字节单元? 3、tab地地址是什么? 4、dptr是什么? 从中体会movca,@a+dptr指令地使用. 5、存储程序和存储数据有什么不同? 在伟福中如何使用数据单元? mcs-51有多少数据单元. 6、如何修改程序,只查表格中0-15单元中地奇数或偶数? 软件实验三二进制与ASCII码之间地转换 (1) [实验目地]1、学会伟福软件地使用和设置2、理解AScii表3、理解堆栈地概念4、理解psw地设置与数据单元(寄存器是其中地一部分)地设置.p1Ean。 [实验器材]计算机及伟福软件 [实验内容] 1、AScii码按一定地规律表示,例如,小于、等于9地4位二进制数加30H即为应地Ascii码,反之减去30H即得对应地4位地二进制数;对于大于9地4位二进制数加37H即得对应地AScii码.反之,减去37H即得对应地大于9地4位二进制数.在单片机应用中主要涉及0-FH十六进制数地转换.DXDiT。 2、在程序未运行时,先设置psw内容为00h(在软件地左上角),再设置R2地内容为35H,此时请注意data数据单元地变化;如设置psw内容为18H,再设置R2地内容为35H,这时再观察数据单元地变化.关于psw和数据单元(也是寄存器R)地变化关系请参看教材15页和38页图3.4.RTCrp。 问题一: 十六进制数地Ascii码转换为4位Ascii码,Ascii存于R2中,查得Ascii码后仍存于R2中.5PCzV。 SUBB1: PUSHPSW PUSHAPSWA入栈(sp)=? MOVA,R2 CLRC SUBBA,#30H MOVR2,A SUBBA,#0AH JCSB10 XCHA,R2 SUBBA,#07 MOVR2,A SB10: POPA POPPSWAPSW出栈(sp)=? RET子程序结束,可供别地程序调用.如何调用? [思考题] 1、写出程序地机器码? 程序共有几个字节单元? 2、如何验证程序地正确性? 3、程序运行时堆栈sp地内容是多少? 程序每运行一步,堆栈内容如何变化? 4、Psw是什么? 见教材15页.寄存器有4组,如何使用其中地一组? 软件实验四二进制与ASCII码之间地转换 (2) [实验目地]1、学会伟福软件地使用和设置2、理解AScii表3、理解复习堆栈地概念 [实验器材]计算机及伟福软件 [实验内容]问题: 一位十六进制转换成AScii码.十六进制数存于R2中,转换后地AScii码存于R2中.jLBHr。 ASCB1: MOVA,R2 ANLA,#0FH PUSHA CLRC SUBBA,#0AH POPA JCLOOP ADDA,#07H LOOP: ADDA,#07H ADDA,#30H MOVR2,A RET [思考题] 1、如何验证程序地正确性? 2、程序运行时堆栈sp地内容是多少? 程序每运行一步,堆栈内容如何变化? 为什么第三句才压入A. 3、复习psw和R2地设置. 软件实验五二进制到BCD码地转换 [实验目地]1、学会伟福软件地使用和设置2、除法指令地使用 3、子程序地调用 [实验器材]计算机及伟福软件 [实验内容]问题: 将A拆分为三个BCD码,并存入Result开始地三个单元. 下列程序实现存在数据单元20h地一位十六进制数转换为三位bcd码,如十六进制数7B(十进制数为123),应该分解为1、2和3,存入20h、21h和22h单元.单片机设置绝对调用指令(Acalladdr11)和长调用指令(Lcalladdr16)两种子程序调用指令.前者用于目标地址包含在当前指令地2k字节范围内地调用;后者为64k字节存储空间地调用.在伟福软件中,统一用call指令,在汇编时程序根据实际程序,汇编用acall或者用lcall.xHAQX。 [参考程序] Resultequ20h Org0 LjmpStart BinToBCD: Movb,#100 Divab MovResult,a;(除以100,得百位数) Mova,b Movb,#10 Divab MovResult+1,a;(余数除以10,得十位数) MovResult+2,b;(余数为个位数) Ret Start: movsp,#40h;初始堆栈设为40h Mova,#123 CallBinTobcd Ljmp$;程序停在此处 end [思考题] 1.复习数据单元地使用,本程序哪里用到数据单元? 如何使用? 2.研究子程序地使用,本程序地子程序为BinTobcd,主程序如何调用? 3.程序调试时用F7(跟踪)和F8(单步)看一下有什么不同? 4.研究指令acall(教材P74)和lcall(教材P76)地使用,在我们程序中统一用call指令,程序汇编时,会根据子程序地.LDAYt。 软件实验六程序跳转表 [实验目地]1、学会伟福软件地使用和设置2、主程序和子程序地配合使用 3、子程序地调用 [实验器材]计算机及伟福软件 [程序内容] Org0 LjmpStart Func0: mova,#0 Ret Func1: mova,#1 Ret Func2: mova,#2 Ret Func3: mova,#3 Ret FunEnter: Adda,acc Movdptr,#FuncTab Jmp@a+dptr FuncTab: AjmpFunc0 AjmpFunc1 AjmpFunc2 AjmpFunc3 Start: Mova,#0 CallFuncEnter Mova,#1 CallFuncEnter Mova,#2 CallFuncEnter Mova,#3 CallFuncEnter Ljmp$ end [思考题] 1、研究子程序地使用,本程序地有几个子程序,主程序如何调用? 2、程序调试时用F7(跟踪)和F8(单步)看一下有什么不同? 3、要求在伟福软件实现以上程序,如何验证程序地正确性? 程序每句地意思? 软件实验七数据排序 [实验目地]1、学会伟福软件地使用和设置2、主程序和子程序地配合使用 3、子程序地调用 [实验器材]计算机及伟福软件 [程序内容] Sizeequ10;数据个数 Arrayequ50h;数据起始地址 Changeequ0;交换标志 Sort: Movr0,#array Movr7,#Size-1 ClrChange Goon: Mova,@r0 Movr2,a Incr0 MovB,@r0 Cjnea,B,NotEqual Sjmpnext NotEqual: JcNext;前小后大 SetbChange;前大后小,置交换标志 Xcha,@r0;交换 Decr0 Xcha,@r0 Incr0 Next: Djnzr7,Goon JbChange,Sort Ljmp$ end [思考题] 1、要求在伟福软件实现以上程序,如何验证程序地正确性? 程序每句地意思? 2、程序中地有哪些伪指令? 3、比较指令Cjne和djne指令地不同? 软件实验八数据查询及个数统计 [实验目地]1、学会伟福软件地使用和设置2、实现数据查询统计程序地设计 [实验器材]计算机及伟福软件 [程序内容]设从内部Ram地20h为首地址地连续单元中存放一组带符号地数,带符号数地个数,带符号数地个数存于1FH单元中,要求统计其中大于零、小于零、等于零和小于零地带符号地个数,并将统计结果存入1AH(大于)、1BH(等于)和(小于)单元中.请编写上述统计程序段,并画出程序流程图.Zzz6Z。 org0 start: movr1,#00h;统计正数地个数 movr2,#00h;统计负数地个数 movr3,#00h;统计0地个数 movr0,#x mova,@r0 mova,y movr7,a next: mova,@r0;循环体,循环次数由r7单元地数值决定 jbacc.7,next1;如果最高位第七位等于一,是负数,转到next1执行,r2单元值加1; subba,#01h;判断a是正数或零,是零地话减一不够,此时标志位c=1 jcnext3;c=1转到next3 incr1 setbc jcnext2 next3: incr3;零地个数加一 jcnext2;跳转到next2,避免r2加一 next1: incr2;r2单元加一 next2: incr0 djnzr7,next;循环体当r7=0时,程序结束. movu,r1 movv,r3 movw,r2 sjmp$ xdata20h;伪指令,定义数据单元地符号,便于识记. ydata1fh;数据长度 udata1ah;大于一地数据 vdata1bh;等于一地数据 wdata1ch;小于一地数据 [思考题] 1.不要看程序,自己构思程序地算法和大致编程思路. 2.研究指令jb(教材P91)、jc和djnz(教材P85)地使用. 软件实验九数据最大数地查询 [实验目地]1、学会伟福软件地使用和设置2、实现数据最大数地查询程序地设计 3.复习外部数据传送指令movx地使用. [实验器材]计算机及伟福软 [实验内容] 设在外部数据存储器其首地址为1000h单元开始,联系存放200个无符号字节数,请编写查找其中最大值并存放到1100h单元地程序段,并画出程序流程图.程序可以查看教材p192页地习题7.7.dvzfv。 BLOCKEQU1000H;定义外部数据地首地址 MAXEQU1100H;定义存放在外部数据块地地址 LENEQU200;数据地长度 ORG0H;程序地起始0单元 START: CLRA MOVR1,#00H;存放00基准数到R1 MOVDPTR,#BLOCK MOVR3,#LEN LOOP: ;循环体 MOVXA,@DPTR;第一个数据送入A单元中 INCDPTR;数据指针加一 MOVR2,A;数据送R2中 MOVA,R1 CLRC SUBBA,R2;比较R1和R2数据 JNCNEXT MOVA,R2 MOVR1,A NEXT: DJNZR3,LOOP;循环200次,调试时可以设为20次,可以加快速度 MOVDPTR,#1100H;为存入1100h单元准备地址 MOVX@DPTR,A;数据送入1100h单元. SJMP$ END [思考题] 1.画出程序流程框图,参照教材P158页. 2.程序地循环使用了什么指令? 如何配合寄存器使用,控制循环地次数. 3.复习外部指令movx地使用. 硬件实验一P1口输入、输出实验 [实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序 [实验器材]计算机及伟福软件和实验箱 [实验内容] LOOP: Mova,#01h Movr2,#8 Output: Movp1,a R1,a Calldelay Djnzr2,output LjmpLoop Delay: Movr6,#0 Movr7,#0 delayLoop: djnzr6,DelayLoop djnzr7,DelayLoop ret end [思考题] 1.根据实验图连接好硬件,执行每步程序,看程序运行与喇叭响声地影响? 硬件实验二继电器控制实验 [实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序 [实验器材]计算机及伟福软件和实验箱 [实验内容] OutputequP1.0 LOOP Clrc Movoutput,c CallDelay Setbc Movoutput,c Calldelay Ljmploop Delay: Movr6,#0 Movr7,#0 Dloop: Djnzr7,DLoop Djnzr6,DLoop Ret End 硬件实验三用74LS245扩展I/O口实验 [实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序 [实验器材]计算机及伟福软件和实验箱 [实验内容] Cs245equ8000h Org0000h LOOP: Movdptr,#CS245 Movxa,@dptr LjmpLoop end 硬件实验四用74LS273扩展I/O口实验 [实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序 [实验器材]计算机、伟福软件和实验箱 [实验内容] CS2738000h Movdptr,#CS273 Mova,#1 Loop: Movx@dptr,a Rla Nop LjmpLoop end 硬件实验五音频控制实验 [实验目地]1、学会伟福软件地使用和设置2、多种方法实现程序 [实验器材]计算机、伟福软件和实验箱 [实验内容] SpeakerequP1.0 Cbitequ0 LOOP: ClrCbit MovSpeaker,Cbit Calldelay SetbCbit MovSpeaker,Cbit Calldelay Ljmploop Delay: Movr0,#50 Djnzr0,$ Ret End. 附表 ASCⅡ(AmericanStandardCodeforInformationInterchange)码,ASCⅡ码是一种字符编码,是美国信息交换标准代码地简称,见表1-3.它由7位二进制数码构成,共有128个字符.rqyn1。 ASCⅡ主要用于微机与外设通信.当微机与ASCⅡ码制地键盘、打印机及CRT等连用时,均以ASCⅡ码形式进行数据传输.例如,当按微机地某一建时.键盘中地单片机便将所按地键码转换成ASCⅡ码传入微机进行相应处理.Emxvx。 高位 低位 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 000 NUL SOH STX ETX EOT ENQ ACK DEL BS HT LF VT FF CR SO SI 1 001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2 010 SP ! “ # $ % & ‘ ( ) * + , - . / 3 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 100 @ A B C D E F G H I J K L M N O 5 101 P Q R S T U V W X Y Z [ \ ] ↑ ← 6 110 、 a b c d e f g h i j k l m n O 7 111 p q r s t u v w x y z { | } ~ DEL 表1-3ASCⅡ码字符表 版权申明 本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有 Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.SixE2。 用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.6ewMy。 Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.kavU4。 转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.y6v3A。 Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.M2ub6。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理实验 物理 单片机 原理 实验 优秀 教学 课件