单片机与嵌入式系统4

上传人:woxinch****an2018 文档编号:44680982 上传时间:2018-06-14 格式:PPT 页数:35 大小:603KB
返回 下载 相关 举报
单片机与嵌入式系统4_第1页
第1页 / 共35页
单片机与嵌入式系统4_第2页
第2页 / 共35页
单片机与嵌入式系统4_第3页
第3页 / 共35页
单片机与嵌入式系统4_第4页
第4页 / 共35页
单片机与嵌入式系统4_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机与嵌入式系统4》由会员分享,可在线阅读,更多相关《单片机与嵌入式系统4(35页珍藏版)》请在金锄头文库上搜索。

1、1注意事项1. 51(2)寄存器除PC外,所有寄存器都有内 部地址(=80H),叫SFR;用地址直接访问, 它们都有名字(ACC、B、P0、PSW)。 2. 十六进制下末位是0和8的能够位寻址,位 可以用地址带“.”访问,寄存器.bit,位名字或 别名可访问。如PSW.0、P、0D0H.0、208.0 是一样滴! 3. 累加器A是隐含寻址,ACC则显式寻址。Date单片机与嵌入式系统第四章 汇编语言程序设计汇编语言程序设计 4.1 常用的伪指令定义汇编起始位置伪指令ORG nn ;nn为16位地址 例如: ORG 2000H ;定义了下面指令的地址是从2000H开始MOV SP,#80H ;设

2、堆栈.赋值伪指令字节名称 EQU 数字(或地址) 例如: LED_AB EQU 2000H ;LED_AB 等于 2000HNUMB EQU 30H;赋值后不能更改,需要更改要用DL重新定义赋值*单片机与嵌入式系统3数据地址赋值伪命令DATA 表达(还有有XDATA, PDATA,IDATA) 例如:TAB1 DATA 12HTAB2 DB 44HDATA命令功能与EQU类似,但有一下差别: 1)EQU定义的字符名必须先定义再使用,而DATA 定义的字符名可以后定义先用; 2)用EQU伪指令可以把一个汇编符号赋给一个名 字,而DATA只能把数据赋给字符名; 3)DATA语句中可以把一个表达式的

3、值赋给字符名 ,其中的表达式应是可求值的。 4)可以在编译中被统计data 的内存使用情况。Date单片机与嵌入式系统4定义字节常量(查表用)标号: DB 8位二进数表 例如:TAB1: DB 12H,34H,77H,TAB2: DB 07H,44H,定义字常量(查表用)标号: DW 16位二进数表 例如:(每个字占二个字节,高8位在先,低8位在后)TAB: DW 1234H,7766H, Date单片机与嵌入式系统5留存储空间 伪指令 在汇编时 ,从定义地址开始保留DS之后表达式的 值所规定的存储单元,以备后用。例如: ORG 1000H DS 08H DB 30H,8AH 汇编以后,从10

4、00H保留8个单元,然后从1008H 开始给内存赋值,即 (1008H)=30H (1009H)=8AH定义汇编结束指令标号: END 地址或标号END 指令一定要放到程序的最后,否则不会编译!Date单片机与嵌入式系统6位地址符号伪指令位名称 BIT I/O口(或位地址) 例如:CLK BIT P1.4 ; P1.4=CLKAD_CS BIT P1.6 ; P1.6=AD_CSFLG BIT 00H ; 00H是位地址定义汇编结束指令标号: END 地址或标号END 指令一定要放到程序的最后,否则不会编译!Date单片机与嵌入式系统7;NAMESERIAL TH2 DATA 0CDH TL2

5、 DATA 0CCH T2CONDATA 0C8H ET2 BIT 0A8H.5 BSEGAT00H sendactive:DBIT 1;发送有效标志 time_tick:DBIT 1;1秒定时标志 sendfull:DBIT 1;发送缓冲区满标 志 display:DBIT 1;显示cnt值标志 temp_bit:DBIT 1;临时位变量Date单片机与嵌入式系统8DSEGAT30H t_1000ms:DS 1 t_100ms:DS 1 t_set:DS 1 ISEGAT80H inbuf:DS 32; /接收缓冲存储数组 outbuf:DS 32; /发送缓冲区存储 数组 ; ; CSEG

6、AT0000H LJMPmainDate单片机与嵌入式系统9Date单片机与嵌入式系统10复习 单片机I/O端口逻辑结构8051有4个8位并行I/O端口,记做P0、P1、P2和P3。这四个口都是准双向的I/O口,共占有32条管脚,每一条I/O线都能独立的用作输入或输出。 1 PO口(I/O、总线)Date单片机与嵌入式系统112 P1口(I/O口) Date单片机与嵌入式系统123 P2口(I/O口、总线) Date单片机与嵌入式系统134 P3口(I/O口、复用功能)Date单片机与嵌入式系统145 I/O口的“读修改写”操作 从P0P3口的逻辑电路分析可知,读一个端口的数 据有两类:一类是

7、读引脚电平的,另一类是读锁存器 的。 “读修改写”指令是为了避免误读引脚电平(需要保存的读的都是寄存器)。 例如,ANL P1, A ;逻辑与指令.CPL P2.0 ;取反INC P3 ;P3的内容增1.Date单片机与嵌入式系统15外扩RAM、ROM时,使用锁存器Date单片机与嵌入式系统16Date单片机与嵌入式系统17一、扩展的基本信息(1)地址总线(Address Bus,AB)A15.A8,A7A0(2)数据总线(Data Bus,DB)D7.D0(3)控制总线(Control Bus,CB)/WR、/RD、/PSEN、/EA、ALEDate单片机与嵌入式系统18Date单片机与嵌入

8、式系统19Date单片机与嵌入式系统20LED(Light Emitting Diode)LCD(liquid crystal display)液晶显示 八段数码管数码管外形agdfecbdpabcdefgdp(a)共阴极gndVccabcdefgdpDate单片机与嵌入式系统21编码a b c d e f gdpD7 D6 D5 D4 D3 D2 D1D0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.00 0 0 0 0 0 11数码管外形agdfecbdp显示字形“0”,编码:03H1 0 0 1 1 1 11数码管外形agdfecbdp显示字形“1”,编码

9、:9FH0 0 1 0 0 1 01数码管外形agdfecbdp显示字形“2”,编码:25H0 0 0 0 1 1 01数码管外形agdfecbdp显示字形“3”,编码:0DH1 0 0 1 1 0 01数码管外形agdfecbdp显示字形“4”,编码:99H0 1 0 0 1 0 01数码管外形agdfecbdp显示字形“5”,编码:49H0 1 0 0 0 0 01数码管外形agdfecbdp显示字形“6”,编码:41H0 0 0 1 1 1 11数码管外形agdfecbdp显示字形“7”,编码:1FH0 0 0 0 0 0 01数码管外形agdfecbdp显示字形“8”,编码:01H0

10、0 0 0 1 0 01数码管外形agdfecbdp显示字形“9”,编码:09H0 0 0 1 0 0 01数码管外形agdfecbdp显示字形“A”,编码:11H1 1 0 0 0 0 01数码管外形agdfecbdp显示字形“b”,编码:0C1H0 1 1 0 0 0 11数码管外形agdfecbdp显示字形“C”,编码:63H1 0 0 0 0 1 01数码管外形agdfecbdp显示字形“d”,编码:85H0 1 1 0 0 0 01数码管外形agdfecbdp显示字形“E”,编码:61H0 1 1 1 0 0 01数码管外形agdfecbdp显示字形“F”,编码:71H0 0 1 1

11、 0 0 00数码管外形agdfecbdp显示字形“P.”,编码:30HDate单片机与嵌入式系统22编码取决于:1. 硬件结构2. 驱动方式Date单片机与嵌入式系统23外部数据和常数访问方法1. 外部数据访问MOVX A, DPTRMOVX DPTR, AMOVX A, RiMOVX Ri, A 2. 常数访问MOVC A, A+DPTRMOVC A, A+PCDate单片机与嵌入式系统244.2 汇编程序设计过程 明确课题的任务(硬件/功能/精度等);按功能,分块规划程序结构(模块设计/子程序);分配存储器资源(定义变量/设堆栈.);根据功能选择合适的指令组合;对源程序进行编译,调试和修

12、改;烧写代码(下载代码.)。Date单片机与嵌入式系统254.3 汇编程序的结构CLK BIT P1.7 ;I/O口定义.NUB EQU 2020H ;常数或地址定义. ;定义变量或常数ORG 0000H ;复位入口地址(上电)LJMP MAIN ;跳到主程序ORG 0003H ;外部中断0入口地址 (P3.2)LJMP T_INT0 ;跳到into中断程序ORG 000BH ;定时器0入口地址(P3.4)LJMP T_T0 ;跳到T0中断程序 Date单片机与嵌入式系统26中断向量入口地址表INT0和INT1T0、T1位置Date单片机与嵌入式系统27ORG 0013H ;外部中断1入口地址

13、 (P3.3)LJMP T_INT1 ;跳int1中断程序ORG 001BH ;定时器1入口地址(P3.5)LJMP T_T1 ;跳T1中断程序ORG 0023H ;串口入口地址 (P3.0,P3.1)LJMP T_CK ;跳串口中断程序. ;Date单片机与嵌入式系统28ORG 0100H T_INT0: . ;外部中断0子程序RETIT_INT1: ;外部中断1子程序RETIT_T0: ;定时器/计数0中断子程序RETIT_T1: ;定时器/计数1中断子程序RETIT_CK: ;串口中断子程序RETI;其他子程序.; Date单片机与嵌入式系统29C语言中表示方法包括interrupt,将

14、把所声明的函数定义为一个 中断服务程序。另外,可以使用using定义此 中断服务程序所使用的寄存器组。 中断函数的定义格式为:void 函数名(void) interrupt n using m 关键字interrupt后面的n是中断号,n的取 值范围为031; 关键字using 后面的m是所选择的寄存器组 ,取值范围03,该项可以省略。 对于interrupt后面n的取值,编译器从8n+3处 产生中断向量。Date单片机与嵌入式系统30C语言中表示方法/* Time0中断服务程序,使用寄存器组 */ voidmTime0Interrupt( ) interrupt 1 /using 2 /TH0 =

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

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号