单片机教案3.doc

上传人:叶*** 文档编号:40153791 上传时间:2022-09-08 格式:DOC 页数:17 大小:248.50KB
返回 下载 相关 举报
单片机教案3.doc_第1页
第1页 / 共17页
单片机教案3.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《单片机教案3.doc》由会员分享,可在线阅读,更多相关《单片机教案3.doc(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、常 州 轻 工 职 业 技 术 学 院 单片机原理及应用 课 程 授 课 教 案 NO 6 授课日期授课班级课题汇编语言程序设计基本概念、伪指令授课类型讲授授课时数 教学目的 重点难点指令助记符的概念和作用标号作用教具挂图微机、多媒体软件教学及过程分配主 要 教 学 内 容教学方法的运用15分钟5分钟10分钟15分钟15分钟10分钟20分钟复习上堂课内容第三章 汇编语言程序设计一、程序设计概述(一)程序设计语言1机器语言机器语言是用机器码编写程序。能被计算机直接识别和执行。2汇编语言汇编语言是用助记符编写程序。汇编:计算机不能直接识别和执行汇编语言程序,而要通过“翻译”把源程序译成机器语言程序

2、(目标程序)才能执行,这一“翻译”工作称为汇编。反汇编:有时需要根据已有的机器语言程序,将其转化为相应的汇编语言程序,这个过程称为反汇编。汇编语言是面向机器的,每一类计算机分别有自己的汇编语言。汇编语言占用的内存单元少,执行效率高,广泛应用于工业过程控制及检测等场合。3高级语言高级语言是一种面向算法和过程并独立于机器的通用程序设计语言。(二)MCS51单片机汇编语言语句格式标号: 操作符 操作数 ;注释START: MOV A, 30H ;A(30H)1标号标号用来标明语句地址,它代表该语句指令机器码的第一个字节的存储单元地址。标号一般规定由18个英文字母或数字组成,但第一个符号必须是英文字母

3、。2注释注释只是对语句或程序段的含义进行解释说明,以方便程序的编写、阅读和交流,简化软件的维护,一般只在关键处加注释。(三)伪指令伪指令:伪指令只用于汇编语言源程序中,对汇编过程起控制和指导的作用,不生成机器码。MCS51单片机主要有8条伪指令1定义起始地址伪指令ORGORG 16位地址或标号功能:定义以下程序段的起始地址。【 例3-1】地址 指令代码 源程序 ORG 0000H0000H 022000 LJMP MAIN ;上电转向主程序 ORG 0023H ;串行口中断入口地址0023H 02XXXX LJMP SERVE1 ;转中断服务程序 ORG 2000H ;主程序2000H 758

4、920 MAIN:MOV TMOD,#20H ;设T1作方式22003H 758DF3 MOV TH1,#0F3H ;赋计数初值2006H 758BF3 MOV TL1,0F3H2009H D28E SETB TR1 ;启动T12汇编语言结束伪指令ENDEND伪指令放在源程序的末尾,用来指示源程序到此全部结束。3赋值伪指令EQUEQU用于给它左边的“字符名称”赋值,其格式为:字符 EQU 操作数操作数可以是8位或16位二进制数,也可以是事先定义的标号或表达式。 【例3-2】 ORG 0500HAA EQU R1A10 EQU 10HMOV R0,A10 ;R0(10H)MOV A,AA ; A

5、(R1)注意:EQU伪指令中的字符必须先赋值后使用,故该语句通常放在源程序的开头。4数据地址赋值伪指令DATA 其格式为: 字符名称 DATA 表达式DATA伪指令功能和EQU相类似,它把右边“表达式”的值赋给左边的”字符名称”。这里的表达式可以是一个数据或地址,也可以是一个包含所定义字符名称在内的表达式。DATA伪指令和EQU伪指令的主要区别是:EQU定义的字符必须先定义后使用,而DATA伪指令没有这种限制,故DATA伪指令可用于源程序的开头或结尾。5定义字节伪指令DB 其格式为: 标号: DB 项或项表项或项表:可以是一个8位二进制数或一串8位二进制数(用逗号分开)。数据可以采用二、十、十

6、六进制和ASCll码等多种表示形式。标号:表格的起始地址(表头地址)。指令的功能是把“项或项表”的数据依次定义到程序存储器的单元中,形成一张数据表(只是一张定义表,数据并未真正存入这些单元)。6定义字伪指令DW 其格式为 标号: DW 项或项表DW伪指令的功能和DB伪指令相似,其区别在于DB定义的是一个字节,而DW定义的是一个字(即两个字节),因此DW伪指令主要用来定义16位地址(高8位在前,低8位在后)。7定义存储空间伪指令DS 其格式为: 标号: DS 表达式DS伪指令指示汇编程序从它的标号地址开始预留一定数量的存储单元作为备用,预留数量由DS语句中“表达式”的值决定。8位地址赋值伪指令B

7、IT其格式为: 字符名称 BIT 位地址将位地址赋值给指定的字符。 【例3-3】 K1 BIT P10 A2 BIT 20H(四)机器汇编试对如下源程序进行机器汇编:举例说明:ORG 1000H SUM DATA 1FH BLOCK DATA 20H START: MOV R0,#BLOCK MOV A,R0 CJNE A,#00H,LOOP HERE: SJMP HERE LOOP: CLR A NEXT: INC R0 ADD A,R0 DJNZ BLOCK,NEXT MOV SUM,A SJMP HERE END (五)汇编语言程序设计步骤和基本程序结构1汇编语言程序设计步骤(1) 分析

8、问题(2) 确定算法(3) 设计程序流程图标准的流程图符号见下图:流线程序执行顺序流向线表示处理功能端点符号程序的开始和结束符号表示判断功能判断符号处理符号连接符号用来实现流程图之间的连接(4)分配内存单元:分配内存工作单元,确定程序和数据区的起始地址。(5)编写汇编语言程序(6)调试程序:2基本程序结构包括顺序结构、分支结构、循环结构图32 三种基本程序结构流程图3程序质量的评判标准(1) 能可靠地实现系统所要求的各种功能(2) 本着节省存储单元,减少程序长度和加快运算时间的原则(3) 程序结构清晰、简捷,流程合理,各功能程序模块化、子程序化。提问讲解举例并讲解举例讲解教师演示讲解举例讲解教

9、师演示板书图示课后小记 授课教师 常 州 轻 工 职 业 技 术 学 院 单片机原理及应用 课 程 授 课 教 案 NO 7 授课日期授课班级课题二、顺序结构程序设计授课类型讲授授课时数 教学目的将教师实验室现场教学演示和学生练习结合起来,使学生更进一步掌握使用WAVE6000调试程序的方法;通过观察程序执行的顺序,更进一步掌握顺序程序的结构特点;通过教师的讲解,掌握顺序结构程序设计的要点重点难点顺序结构程序设计的要点教具挂图计算机,小哨兵软件,wave6000软件教学及过程分配主 要 教 学 内 容教学方法的运用10分钟20分钟10分钟20分钟10分钟20分钟1 顺序结构程序【例3-4】 编

10、写运算程序。设数a存放在R1中,数b存放在R2中,计算y=a2-b,并将结果放入R4和R5中。ORG 0000HMOV A,R1MOV B,AMUL ABCLR CSUBB A,R2MOV R4,AMOV A,BSUBB A,#00HMOV R5,ASJMP $END学生练习:计算y=(a-b)2【例3-5】编写拆字程序。将MCS51片内RAM中20H单元中的高半字节送21H单元的低半字节,低半字节送22H单元的低半字节,两个单元的高半字节为0。程序如下:MOV A,20HSWAP AANL A,#0FHMOV 21H,AMOV A,20HANL A,#0FHMOV 22H, A课堂练习:1、

11、将累加器A中的8位无符号数转换成3位压缩BCD数,百位数放20H单元,十位和个位数放21H单元,编写程序。【例3-6】编写查表程序。将十六进制数转换为ASCII码。设1位十六进制数存在R0寄存器的低4位,转换后的ASCII码仍送回R0中。解:待转换的十六进制数为0F。根据ASCII码表可知,09的ASCII码为30H39H,AF的ASCII码为41H46H。将以上ASCII码值列成表格。 ORG 0000H MOV DPTR,# ASCTAB MOV A, R0 ANL A,# 0FH MOVC A,ADPTR ;A中为表格中数据的序号,DPTR中放表头地址 MOV R0, A SJMP AS

12、CTAB:DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H END 课堂练习:要求学生改用MOVC A,A+PC指令进行查表讲解巡回指导巡回指导教师讲解巡回指导课后小记 授课教师 常 州 轻 工 业 学 校 单片机原理及应用 课 程 授 课 教 案 NO 8 授课日期授课班级课题实验二 顺序结构程序的调试授课类型讲授授课时数 教学目的1、掌握顺序结构程序设计2、掌握WAVE软件调试程序的方法重点难点掌握顺序结构程序设计调试程序教具挂图无教学及过程分配主 要 教 学 内 容教学方法的运用10分钟实验二

13、 顺序结构程序的调试一、 实验目的:1、掌握顺序结构程序设计2、掌握WAVE软件调试程序的方法二、实验内容:编写下列程序并调试:1、将片内RAM的70H单元的内容拆开,高4位送71H单元低4位,低4位送72H单元的低4位,71H、72H单元高4位清零。2、将工作寄存器R2中数据的高4位和R3中的低4位拼成一个数,并将该数存入30H单元。开始70H单元内容送A(A) 中高低4位交换屏蔽高4位后送71H70H单元内容送A屏蔽高4位后送72H结束三、实验程序框图程序1流程图讲解80分钟开始截取R2中的高4位截取R3中的低4位合并数据结束程序2流程图 四、 实验步骤:程序1启动WAVE软件,新建一个文

14、件,保存并取名为LX1.ASM。输入源程序1,正确进行机器汇编打开窗口菜单,选择数据窗口,检查70H、7lH和72H单元中的内容,并记录在下表左半边用全速执行命令开始执行程序检查7lH和72H单元中的内容,并记录在下表的右半边修改执行前70H、7lH和72H单元中的内容,重复执行-步骤,并记录程序执行后表格中的数据。执行前的单元内容执行后的单元内容70H71H72H71H72H程序2新建一个文件,保存并取名为LX2.ASM。输入源程序2,正确进行机器汇编打开窗口菜单,选择数据窗口,检查R2、R3和30H单元中的内容,并记录在下表左半边的格子中用全速执行命令开始执行程序检查30H单元中的内容,并

15、记录在下表的右半边格子中修改执行前R2、R3、30H单元中的内容,重复执行-步骤,并记录程序执行后的数据。执行前单元内容执行后单元内容R2R330H30H(3)思考:如何用断点方法调试本程序。实验指导课后小记 授课教师 常 州 轻 工 职 业 技 术 学 院 单片机原理及应用 课 程 授 课 教 案 NO 9 授课日期授课班级课题三、分支结构程序设计授课类型讲授授课时数 教学目的掌握程序设计基本方法和分支程序设计技巧重点难点1条件的建立及判断2分支的执行情况教具挂图无教学及过程分配主 要 教 学 内 容教学方法的运用10分钟10分钟25分钟10分钟25分钟10分钟三、分支结构程序设计在程序设计

16、中,经常需要计算机对某情况进行判断,然后根据判断的结果选择程序执行的流向,这就是分支程序。在汇编语言程序中,通常利用条件转移指令形成不同的程序分支。1单分支程序【例3-7】 在片内RAM 30H单元中存有一个带符号数,试判断该数的正负性,若为正数,将6EH位清0;若为负数,将6EH位置1。SUB1:MOV A, 30H ;30H单元中的数送AJB ACC.7,LOOP ;符号位等于1,是负数,转移CLR 6EH ;符号位等于0,是正数,清标志位RET ;返回LOOP::SETB 6EH ;标志位置1RET ;返回 【例3-8】比较片内RAM的50H和51H单元中两个8位无符号数的大小,把大数存

17、入60H单元,若两数相等则把标志位70H置1。SUB: MOV A,50HCJNE A,51H,LOOPSETB 70HRETLOOP: JC LOOP1 MOV 60H,A RETLOOP1:MOV 60H,51H RET学生练习:判断片内RAM的30H中的值在0100之间的一个数。(1)当它的值60时点亮P1.0控制的红灯。(2)当它的值90时点亮P1.1控制的绿灯。(3)否则红灯、绿灯均不亮2多分支程序【例3-9】 20H单元中存放加、减、乘、除的运算标志0、1、2、3。21H、22H存放两个数X、Y,运算结果存放在23H,24H单元中。试根据20H单元的值,分别转向2KB范围内的加、减

18、、乘、除处理子程序的入口处。解:210判分支转移植n=?PRG0PRG1PRG2kPRGk程序流程图如图58所示。图58 2KB范围内的散转移FLAG EQU 20HX EQU 21HY EQU 22HRESUL EQU 23HRESUH EQU 24HXYOP:MOV DPTR,#TAB ;取表首地址CLR C ;Cy清零MOV A ,FLAG ;分支转移值送ARLC A ;A A2JNC LP ;判是否有进位INC DPH ;有进位则DPH加1LP: JMP ADPTR ;散转到转移指令表TAB:AJMP ADDXY ;转移指令表AJMP SUBXY ;AJMP MULXYAJMP DIV

19、XYADDXY: MOV A,XADD A,YMOV RESUL,ARETSUBXY: MOV A,XCLR CSUBB A,YMOV RESUL,ARETMULXY: MOV A,XMOV B,YMUL ABMOV RESUL,AMOV RESUH,BRETDIVXY: MOV A,XMOV B,YDIV ABMOV RESUL,AMOV RESUH,BRET因散转指令JMP ADPTR中,A的内容为8位无符号数,故只能在DPTR地址后的256B范围内转移,而在该范围内是不可能容纳n个分支处理程序的,因此只能安排及之对应的n条转移指令表。由于各条AJMP指令的地址依次相差2个字节,程序设计时

20、应注意:(1)A中的变址值必须作乘2修正,当修正后有进位,应将进位加到DPH上,这样才能及分支序号对应;(2)分支处理程序的入口地址PRGi必须和AJMP指令处于同一个2KB区域:(3)256B范围内最多可安排AJMP指令128条,即最多可实现128个分支程序的转移。当分支范围较大,分支数目较多时,就不能满足第2条要求,为此可采用长转移指令LJMP,则分支程序可在64KB范围内分布。此时转移指令表中各条LJMP指令的地址依次相差3个字节,同理应对A中的变址值作乘3修正。可推算最多能实现85个分支程序的转移。讲解讲解教师指导讲解程序分析讲解课后小记 授课教师 常 州 轻 工 职 业 技 术 学

21、院 单片机原理及应用 课 程 授 课 教 案 NO 10 授课日期授课班级课题四、循环程序设计授课类型讲授授课时数 教学目的将教师实验室现场教学演示和学生练习结合起来,使学生更进一步掌握使用WAVE6000调试程序的方法;通过观察程序执行的顺序,更进一步掌握循环程序的结构特点;通过教师的讲解,掌握循环结构程序设计的要点重点难点循环结构程序设计的要点教具挂图计算机,小哨兵软件,wave6000软件 教学及过程分配主 要 教 学 内 容教学方法的运用10分钟20分钟20分钟20分钟20分钟图3-3循环程序结构四、循环程序设计循环程序设计不仅可以大大缩短所编程序的长度,使程序所占内存单元数最少,也能

22、使程序结构紧凑和可读性变好。(一)循环程序的基本结构1循环初始化2循环工作部分(是循环程序的主体,需要重复执行的程序段)3循环控制部分(完成对变量的修改)4循环终止判定部分(二)循环结构程序设计【例3-9】 试编写程序,求片内RAM的30H39H单元中数的和,将结果存放在R2和R3中。 ORG 0000H NSUN:MOV R1,#10 ;数据块长度送R1,(计数器置初值) MOV R2,#00H ;R2清零 MOV R3,#00H ;R3清零 MOV R0,#30H ;数据块首地址送R0 LOOP:MOV A,R3 ADD A,R0 MOV R3,A ;和数的低字节送R3 CLR A ADD

23、C A,R2 MOV R2,A ;和数的高字节送R2 INC R0 ;修改地址指针 DJNZ R1,LOOP;数据未加完继续执行 RET END课堂练习:试编程实现将内部RAM从2AH单元开始的6个字节的数据块送到外部RAM的0100H0105H单元。图3-4 找最大值程序流程图【例3-10】 求一组单字节无符号数中最大值。设内部RAM 20H单元为数据块的起始地址,块长度为10,试编程求数据块中的最大值并存入30H单元中。相应的程序为: MOV R0,#20H ;数据块首地址送R0 MOV R6,#0AH ;数据块长度送R6 MOV 30H,#00H ;30H00HLOOP::MOV A,R

24、0 ;数据块的数读入A中 CJNE A,30H,NEXTNEXT:JC LOOP1 ;(A)(30H)则大数送30HLOOP1:INC R0 ;修改数据块指针R0 DJNZ R6,LOOP ;未比较完,转LOOP(循环) SJMP $思考:1、若将程序中的JC指令改为JNC指令,要使程序功能不变,程序将作如何修改。2、求最小数如何编程?讲解教师示范教师指导讲解提问课后小记 授课教师 常 州 轻 工 业 学 校 单片机原理及应用 课 程 授 课 教 案 NO 11 授课日期授课班级课题实验三 分支和循环结构程序的调试授课类型讲授授课时数 教学目的1、掌握分支和循环结构程序的设计2、进一步掌握WA

25、VE软件调试程序的方法重点难点分支和循环结构程序设计和调试分支和循环程序设计教具挂图无教学及过程分配主 要 教 学 内 容教学方法的运用10分钟80分钟实验三 分支和循环结构程序的调试一、 实验目的:1、掌握分支和循环结构程序的设计2、进一步掌握WAVE软件调试程序的方法二、实验内容:编写下列程序并调试:1、 设a数已存放在累加器A中, b数已存放在寄存器B中,计算下式,并将结果y送入片内RAM的30H单元。 a+b (b0) Y= a-b (b0)2、将片内30H-3FH单元的内容清零。3、从片内RAM的20H单元开始,有30个带符号数据,统计出正数的个数,并将结果存到35H单元中。讲解实验

26、要求实验指导三、实验程序框图开始R0#30HR2#30结束R2-1=0?(R0)0R0+1NY开始a-ba+b结束b0?30H结果YN 程序1流程图 程序2流程图四、实验步骤:程序1启动WAVE软件,新建一个文件,保存并取名为LX3.ASM。输入源程序1,正确进行机器汇编打开窗口菜单,选择数据窗口,检查A、B和30H单元中的内容,并记录在下表左半边用全速执行命令开始执行程序检查30H单元中的内容,并记录在下表的右半边执行前的单元内容执行后的单元内容AB30H30H修改执行前A、B中的内容,重复执行-步骤,并记录表格中执行后的数据。程序2新建一个文件,保存并取名为LX4.ASM。输入源程序2,正

27、确进行机器汇编打开窗口菜单,选择数据窗口,检查30H-3FH单元中的内容,如果是零值,将它们修改为非零值。 用全速执行命令开始执行程序检查30H-3F单元中的内容,是否全为零。修改执行前30H-3F单元中的内容,重复执行-步骤,重新检查30H-3F单元中的内容。程序3启动WAVE软件,新建一个文件,保存并取名为LX5.ASM。输入源程序3,正确进行机器汇编打开窗口菜单,选择数据窗口,检查35H、20H-3DH单元中的内容,并记录在下表左半边用全速执行命令开始执行程序检查35H单元中的内容,并记录在下表的右半边执行前的内容执行后的内容20H-3DH35H35H修改执行前20H-3DH中的内容,重复执行-步骤,并记录执行后的数据。课后小记 授课教师第 17 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com