




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注意事项1.51(2)寄存器除PC外,所有寄存器都有内部地址(>=80H),叫SFR;用地址直接访问,它们都有名字(ACC、B、P0、PSW…)。2.十六进制下末位是0和8的能够位寻址,位可以用地址带“.”访问,寄存器.bit,位名字或别名可访问。如PSW.0、P、0D0H.0、208.0是一样滴!3.累加器A是隐含寻址,ACC则显式寻址。5/21/2024第四章汇编语言程序设计4.1常用的伪指令<1>定义汇编起始位置伪指令ORGnn;nn为16位地址例如:ORG2000H;定义了下面指令的地址是从2000H开始MOVSP,#80H;设堆栈…….<2>赋值伪指令字节名称EQU数字(或地址)例如:LED_ABEQU2000H;LED_AB等于2000HNUMBEQU30H;赋值后不能更改,需要更改要用DL重新定义赋值5/21/20242<3>数据地址赋值伪命令<字符名称>DATA表达(还有有XDATA,PDATA,IDATA)例如:TAB1DATA12HTAB2DB44HDATA命令功能与EQU类似,但有一下差别:1)EQU定义的字符名必须先定义再使用,而DATA定义的字符名可以后定义先用;2)用EQU伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名;3)DATA语句中可以把一个表达式的值赋给字符名,其中的表达式应是可求值的。4)可以在编译中被统计data的内存使用情况。5/21/2024<4>定义字节常量(查表用)[标号:]DB8位二进数表例如:TAB1:DB12H,34H,77H,……TAB2:DB07H,44H,……<5>定义字常量(查表用)[标号:]DW16位二进数表例如:(每个字占二个字节,高8位在先,低8位在后)TAB:DW1234H,7766H,……5/21/2024<6>留存储空间伪指令在汇编时,从定义地址开始保留DS之后表达式的值所规定的存储单元,以备后用。例如:ORG
1000HDS
08HDB
30H,8AH汇编以后,从1000H保留8个单元,然后从1008H开始给内存赋值,即(1008H)=30H(1009H)=8AH<6>定义汇编结束指令[标号:]END[地址或标号]END指令一定要放到程序的最后,否则不会编译!
5/21/2024<7>位地址符号伪指令位名称BITI/O口(或位地址)例如:CLKBITP1.4;P1.4=CLKAD_CSBITP1.6;P1.6=AD_CSFLGBIT00H;00H是位地址<8>定义汇编结束指令[标号:]END[地址或标号]END指令一定要放到程序的最后,否则不会编译!5/21/2024;NAME SERIALTH2 DATA 0CDHTL2 DATA 0CCHT2CON DATA 0C8HET2 BIT 0A8H.5BSEG AT 00Hsendactive: DBIT1 ;发送有效标志time_tick: DBIT1 ;1秒定时标志sendfull: DBIT1 ;发送缓冲区满标志display: DBIT1 ;显示cnt值标志temp_bit: DBIT1 ;临时位变量5/21/2024DSEG AT 30Ht_1000ms: DS1t_100ms: DS1t_set: DS 1ISEG AT 80Hinbuf: DS32 ;//接收缓冲存储数组outbuf: DS 32 ;//发送缓冲区存储数组;;CSEG AT 0000H LJMP main5/21/20245/21/2024
复习单片机I/O端口逻辑结构
8051有4个8位并行I/O端口,记做P0、P1、P2和P3。这四个口都是准双向的I/O口,共占有32条管脚,每一条I/O线都能独立的用作输入或输出。
1PO口(I/O、总线)5/21/20242P1口(I/O口)
5/21/20243P2口(I/O口、总线)
5/21/20244P3口(I/O口、复用功能)5/21/20245I/O口的“读-修改-写”操作
从P0~P3口的逻辑电路分析可知,读一个端口的数据有两类:一类是读引脚电平的,另一类是读锁存器的。“读-修改-写”指令是为了避免误读引脚电平(需要保存的读的都是寄存器)。例如,ANLP1,A;逻辑与指令…….CPLP2.0;取反……INCP3;P3的内容增1…..5/21/2024外扩RAM、ROM时,使用锁存器5/21/20245/21/2024一、扩展的基本信息(1)地址总线(AddressBus,AB)A15….A8,A7…A0(2)数据总线(DataBus,DB)D7….D0(3)控制总线(ControlBus,CB)/WR、/RD、/PSEN、/EA、ALE5/21/20245/21/20245/21/2024LED(LightEmittingDiode)
LCD(liquidcrystaldisplay)液晶显示
八段数码管数码管外形agdfecbdpabcdefgdp(a)共阴极gndVccabcdefgdp5/21/2024编码abcdefgdpD7D6D5D4D3D2D1D0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
0
0000011数码管外形agdfecbdp显示字形“0”,编码:03H
1
0011111数码管外形agdfecbdp显示字形“1”,编码:9FH
0
0100101数码管外形agdfecbdp显示字形“2”,编码:25H
0
0001101数码管外形agdfecbdp显示字形“3”,编码:0DH
1
0011001数码管外形agdfecbdp显示字形“4”,编码:99H
0
1001001数码管外形agdfecbdp显示字形“5”,编码:49H
0
1000001数码管外形agdfecbdp显示字形“6”,编码:41H
0
0011111数码管外形agdfecbdp显示字形“7”,编码:1FH
0
0000001数码管外形agdfecbdp显示字形“8”,编码:01H
0
0001001数码管外形agdfecbdp显示字形“9”,编码:09H
0
0010001数码管外形agdfecbdp显示字形“A”,编码:11H
1
1000001数码管外形agdfecbdp显示字形“b”,编码:0C1H
0
1100011数码管外形agdfecbdp显示字形“C”,编码:63H
1
0000101数码管外形agdfecbdp显示字形“d”,编码:85H
0
1100001数码管外形agdfecbdp显示字形“E”,编码:61H
0
1110001数码管外形agdfecbdp显示字形“F”,编码:71H
0
0110000数码管外形agdfecbdp显示字形“P.”,编码:30H5/21/2024编码取决于:硬件结构驱动方式5/21/2024外部数据和常数访问方法1.外部数据访问MOVXA,@DPTRMOVX@DPTR,AMOVXA,@RiMOVX@Ri,A2.常数访问MOVCA,@A+DPTRMOVCA,@A+PC5/21/20244.2汇编程序设计过程
<1>明确课题的任务(硬件/功能/精度等);<2>按功能,分块规划程序结构(模块设计/子程序);<3>分配存储器资源(定义变量/设堆栈….);<4>根据功能选择合适的指令组合;<5>对源程序进行编译,调试和修改;<6>烧写代码(下载代码….)。
5/21/20244.3汇编程序的结构
CLKBITP1.7;I/O口定义…..NUBEQU2020H;常数或地址定义….………….;定义变量或常数
ORG0000H;复位入口地址(上电)LJMPMAIN;跳到主程序ORG0003H;外部中断0入口地址(P3.2)LJMPT_INT0;跳到into中断程序ORG000BH;定时器0入口地址(P3.4)LJMPT_T0;跳到T0中断程序5/21/2024中断向量入口地址表INT0和INT1T0、T1位置5/21/2024
ORG0013H;外部中断1入口地址(P3.3)LJMPT_INT1;跳int1中断程序ORG001BH;定时器1入口地址(P3.5)LJMPT_T1;跳T1中断程序ORG0023H;串口入口地址(P3.0,P3.1)LJMPT_CK;跳串口中断程序………..;5/21/2024
ORG0100HT_INT0:……..;外部中断0子程序RETIT_INT1:……;外部中断1子程序RETIT_T0:……;定时器/计数0中断子程序RETIT_T1:……;定时器/计数1中断子程序RETIT_CK:……;串口中断子程序RETI………………;其他子程序……..;5/21/2024C语言中表示方法包括interrupt,将把所声明的函数定义为一个中断服务程序。另外,可以使用using定义此中断服务程序所使用的寄存器组。中断函数的定义格式为:
void函数名(void)interruptn[usingm]①关键字interrupt后面的n是中断号,n的取值范围为0~31;②关键字using后面的m是所选择的寄存器组,取值范围0~3,该项可以省略。对于interrupt后面n的取值,编译器从8n+3处产生中断向量。5/21/2024C语言中表示方法/*Time0中断服务程序,使用寄存器组*/void mTime0Interrupt()interrupt1//using2{ //TH0=0xDC; //TL0=0x00;}/*串行口中断服务程序,使用寄存器组1*/void mSelInterrupt()interrupt4using1//using15/21/2024
MAIN:MOVSP,#90H;设堆栈(主程序部分)MOVIE,#00H;………;其他指令
END;结束5/21/20241.MCS-51系列单片
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业有害生物防治的国际合作与技术交流考核试卷
- 玻璃光学加工设备考核试卷
- 2024年项目管理资格考点总结试题及答案
- 染色工艺对环境保护的探讨考核试卷
- 2025年道路运输企业安全生产管理人员证考试题及答案
- 稀土选矿工艺与实践操作考核试卷
- 管道工程历史文化资源传承考核试卷
- 2024年项目管理常见难点试题及答案
- 生物药品的进出口政策与国际合作考核试卷
- 数字信号处理器生产考核试卷
- 儿童支气管哮喘诊断与防治指南(2025)解读
- 2024-2025学年人教版七年级(下)期中数学试卷(考试范围:第7~9章) (含解析)
- 安全生产“反三违”学习培训
- 网球裁判考试试题及答案
- 能源储备体系建设-深度研究
- 国家义务教育质量监测八年级美术样卷
- 2025年河南轻工职业学院单招职业适应性考试题库及答案1套
- 2025年初中团员考试试题及答案
- 2025年广东省中考模拟英语试卷(二)(原卷版+解析版)
- 2025年陕西省公民科学素质大赛考试题(附答案)
- 浙江首考2025年1月普通高等学校招生全国统考政治试题及答案
评论
0/150
提交评论