电子教案单片机原理与应用技术.docx 立即下载
2025-08-28
约2万字
约42页
0
28KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

电子教案单片机原理与应用技术.docx

电子教案单片机原理与应用技术.docx

预览

免费试读已结束,剩余 37 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子教案单片机原理与应用技术

第一篇:电子教案单片机原理与应用技术电子教案——单片机原理与应用技术⒉计算机汇编四.程序设计的基本方法编写程序要求:不仅要完成规定的功能任务,而且还要求:执行速度快、占用内存少、条理清晰、阅读方便、便于移植、巧妙而实用。一般应按以下几个步骤进行:⑴分析问题,确定算法或解题思路⑵画流程图⑶编写源程序⑷汇编和调试§1-2汇编语言程序设计举例一.顺序程序顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。【例】已知16位二进制负数存放在R1R0中,试求其补码,并将结果存在R3R2中解:二进制负数的求补方法可归结为“求反加1”,符号位不变。利用CPL指令实现求反;加1时,则应低8位先加1,高8位再加上低位的进位。注意这里不能用INC指令,因为INC指令不影响标志位。程序如下:CONT:MOVA,R0;读低8位CPLA;取反ADDA,#1;加1MOVR2,A;存低8位MOVA,R1;读高8位CPLA;取反ADDCA,#80H;加进位及符号位MOVR3,A;存高8位RET;二.分支程序根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。①S0单独按下,红灯亮,其余灯灭;②S1单独按下,绿灯亮,其余灯灭;③其余情况,黄灯亮。解:程序如下SGNL:ANLP1,#11100011B;红绿黄灯灭ORLP1,#00000011B;置P1.0、P1.1输入态,P1.5~P1.7状态不变SL0:JNBP1.0,SL1;P1.0=0,S0未按下,转判S1JNBP1.1,RED;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮YELW:SETBP1.4;黄灯亮CLRP1.2;红灯灭CLRP1.3;绿灯灭SJMPSL0;转循环SL1:JNBP1.1,YELW;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯亮GREN:SETBP1.3;绿灯亮CLRP1.2;红灯灭CLRP1.4;黄灯灭SJMPSL0;转循环RED:SETBP1.2;红灯亮CLRP1.3;绿灯灭CLRP1.4;黄灯灭SJMPSL0;转循环课堂练习题:电路及灯亮灭要求同上述【例】题,其中三.循环程序循环程序一般包括以下几个部分:⑴循环初值;⑵循环体;⑶循环修改;⑷循环控制;以上四部分可以有两种组织形式,其结构如图4-6所示.【例】编制一个循环闪烁灯的程序。设80C51单片机的P1口作为输出口,经驱动电路74LS240(8反相三态缓冲/驱动器)接8只发光二极管,如图4-8所示。当输出位为“1”时,发光二极管点亮,输出位为“0”时为暗。试编程实现:每个灯闪烁点亮10次,再转移到下一个灯闪烁点亮10次,循环不止。解:程序如下:FLASH:MOVA,#01H;置灯亮初值FSH0:MOVR2,#0AH;置闪烁次数FLOP:MOVP1,A;点亮LCALLDY1s;延时1sMOVP1,#00H;熄灭LCALLDY1s;延时1sDJNZR2,FLOP;闪烁10次RLA;左移一位SJMPFSH0;循环RET;【例】设Xi均为单字节数,并按顺序存放在以50H为首地址的内RAM存储单元中,数据长度(个数)N存在R2中,试编程求和S=X1+X2+‥‥+XN,并将S(双字节)存放在R3R4中,(设S<65536)。解:程序如下:SXN:MOVR2,#N;置数据长度(循环次数)MOVR3,#00H;和单元(高8位)清0MOVR4,#00H;和单元(低8位)清0MOVR0,#50H;求和数据区首址LOOP:MOVA,R4;读前次低8位和ADDA,@R0;低8位累加MOVR4,A;存低8位和CLRA;ADDCA,R3;高8位加进位MOVR3,A;存高8位和INCR0;指向下一数据循环修改DJNZR2,LOOP;判N个数据累加完否?循环控制RET;退出循环退出循环【例】编写延时10ms子程序,fosc=12MHz。解:fosc=12MHz,一个机器周期为。DY10ms:MOVR6,#20;置外循环次数DLP1:MOVR7,#250;置内循环次数DLP2:DJNZR7,DLP2;2机周×250=500机周DJNZR6,DLP1;500机周×20=10000机周RET;说明:MOVRn指令为1个机器周期;DJNZ指令为2个机器周期;RET指令为2个机器周期;{[(2机周×机周≈10ms【课堂练习题】按下列要求编写延时子程序:⑴延时2ms,fosc=6MHz;⑵延时5ms,fo
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

电子教案单片机原理与应用技术

文档大小:28KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用