- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 数据传送实验
1.建立一个工程文件,扩展名是.uv2
CPU选择ATMEL的AT89C52
2.建立新文件
注意:扩展名为asm,存到F盘下。
3.将新文件添加到工程文件中
4.编译工程文件
5.F11等功能运行程序。相应窗口观察结果
二.注意一些指令的使用
MOV,MOVC, MOVX数据传送命令的使用
MOV ×, ×
MOVC A,@A+DPTR ;只能读
MOVC A,@A+PC
MOVX A,@DPTR ;读
MOVX @DPTR,A ;写
MOV P2,#××H ;地址的高八位
MOV Ri,#××H ;地址的低八位
MOVX A,@Ri ;读
三.注意事项:
1. 对于MCS-51系列,RAM只有128个单元,它与SFR的地址没有重叠;对于MCS-52系列,核内RAM有256个单元,其高128个单元与SFR的地址重叠。为避免混乱,单片机规定:直接寻址的指令不能访问RAM的高128个单元(80H-FFH),若要访问这些单元只能用寄存器间接寻址方式,而要访问SFR用直接寻址方式。
2.建表
表格也在程序存储器中,一般放在程序的断点处。
sjmp $
org 2000h
TAB:DB 1,2,3
end
3. 操作数最高位是字母(A-F)的,要在字母前面补加“0”。
4. 工作寄存器之间是不能相互传递数据的。
实验二 二进制数的运算
1. 在加减运算中,溢出位OV只针对有符号数运算,借进位CY只针对无符号数。
2.注意借进位标志CY的处理。
3.最后一题注意练习一下与ANL,或ORL,非XRL等位操作指令。
实验三 分支、循环、子程序设计
1.分支程序
CJNE命令的使用
2.循环程序
a.循环程序DJNZ命令的使用
b.循环取数的方法
BLOCK EQU 30H
MOV R0,#BLOCK
LOOP:MOV A,@R0
INC R0
DJNZ R1,LOOP
c.循环次数2000H—20ffH是100H次
3.子程序
子程序放在SJMP $后,END前.
实验五 外部中断系统的应用
实验箱的使用
电源线,串口线连好,实验箱左上角的电源总开关,凸台上CPU的蓝色自锁开关和左下角通信电路的蓝色自锁开关都处于上电状态(按下去),程序才能下载成功。用STC软件下载,注意CPU的类型选择。
中断程序编写要注意程序结构,中断引脚恢复为高电平(输入信号正常)时,指示灯也应恢复正常(绿灯亮、红灯灭)后再返回主程序。
注:实验箱上的晶振是12MHz
中断程序结构
ORG 0
AJMP MAIN
ORG 0003H
AJMP INT0FW
MAIN: ..….
SJMP $
INT0FW: ……
RETI
END
实验六 定时器/计数器实验
1.方波频率不同,灯的状态不同。一个可以看到闪烁,一个长亮。
2.时间超出上限可以循环定时。如1s定时可以用20次的50ms来实现。
3.注意任务3中用两个定时器时,一个设置定时方式,另一个设置计数方式。
编程需要设置TMOD,设定定时初值。
实验七 串行通信实验
连线:
甲机 乙机
TXD (P3.1)----------- RXD(P3.0)
GND ----------- GND
编程:
设置波特率
设置SCON
接收采用中断方式,发送采用查询方式
。
注意事项:
1.先下载程序,后连线。
2.断开编程开关再运行程序。
3.接收端先运行,发送端再运行。
实验八 A/D转换实验
IN0 (ADC0809) ------ potentiometer W1
CLK (ADC0809) ------- ALE (8051)
SC/ALE (ADC0809) ----- 74LS02 -----
文档评论(0)