单片机学习程序必须按如下格式书写:
ORG 0000H ; 程序一定从0开始写起
SJMP START ; 转入主程序
ORG 0030H ; 主程序从0030H开始,空出中断入口地址
START:
……
END ; 程序结束,一个程序只能有一个END
实验一 D/A转换
(1)锯齿波
ORG...
程序必须按如下格式
写:
ORG 0000H ; 程序一定从0开始写起
SJMP START ; 转入主程序
ORG 0030H ; 主程序从0030H开始,空出中断入口地址
START:
……
END ; 程序结束,一个程序只能有一个END
实验一 D/A转换
(1)锯齿波
ORG 0000H ; 程序一定从0开始写起
SJMP START ; 转入主程序
ORG 0030H ; 主程序从0030H开始,空出中断入口地址
START:
MOV DPTR, #0F000H ; D/A转换地址,必须满足启动要求
LOOP:
MOVX @DPTR, A ; 启动D/A转换,A没有必要赋初值
INC A ; 调整送出的数字量
SJMP LOOP ; 进行下一次循环,不加延时周期最短
END ; 程序结束,一个程序只能有一个END
(2)三角波
ORG 0000H ; 程序一定从0开始写起
SJMP START ; 转入主程序
ORG 0030H ; 主程序从0030H开始,空出中断入口地址
START:
MOV DPTR, #0F000H ; D/A转换地址,必须满足启动要求
LOOP_UP: ; 三角波上升部分
MOVX @DPTR, A ; 启动D/A转换,A没有必要赋初值
INC A ; 增量调整送出的数字量
CJNE A, #0FFH, LOOP_UP; 判断数字量是否到达最大值
LOOP_DOWN: ; 三角波下降部分
MOVX @DPTR, A ; 启动D/A转换
DEC A ; 减量调整送出的数字量
CJNE A, #0, LOOP_DOWN; 判断数字量是否到达最小值
SJMP LOOP_UP ; 进行下一个三角波周期
END ; 程序结束,一个程序只能有一个END
实验二 A/D转换
ORG 0000H ; 程序一定从0开始写起
SJMP START ; 转入主程序
ORG 0030H ; 主程序从0030H开始,空出中断入口地址
START:
MOV DPTR, #0F000H ; A/D转换地址,必须满足启动要求,选转换通道0
LOOP:
MOVX @DPTR, A ; 启动A/D转换,A值对启动无影响
JNB P3.3, $ ; 查询转换是否结束(EOC = P3.3,低电平时仍在转换)
MOVX A, @DPTR ; 取出转换结果,转换结束时执行此指令
MOV P1, A ; 转换结果送8位发光二极管显示
SJMP LOOP ; 进行下一次转换循环
END ; 程序结束,一个程序只能有一个END
模拟量与数字量的关系可以换算出来,呈线性关系:
模拟量0V对应数字量00H;
模拟量5V对应数字量FFH;
可以计算出模拟量与数字量的关系如下:
输入模拟量/V
0
+1
+2
+2.5
+3
+4
+5
输出数字量
00H
33H
66H
80H
99H
CCH
FFH
(转自老师博客)
本文档为【单片机学习】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。