历史上的今天
今天是:2024年12月13日(星期五)
2018年12月13日 | 51单片机之忽略的东西
2018-12-13 来源:eefocus
P0口将作为总线的低8位地址线和8位数据线使用
P2口将作为总线的高8位地址线使用
如果十六进制数以字母ABCDEF中的某一个开头,必须在前面加一个0.譬如,MOV P1, #0BFH
ORG 00H 表示的是伪指令,作用帮助汇编器汇编指令,并不是单片机指令的一部分,因此伪指令不占用存储器空间。这段代码的含义是从程序存储器的00H开始执行程序。
一段小程序,循环闪烁小灯
ORG 00H
START:
MOV P1, #00H
CALL DELAY
MOV P1, #0FFH
CALL DELAY
JMP START
DELAY: MOV R3, #50
D1: MOV R4, #20
D2: MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET ;返回主程序
END ;汇编程序结束
按键开关控制P1.0上的发光二极管闪烁5次
ORG 00H
START:
MOV R0, #05 ;R0作为计数器
LOOP:
MOV P1, #00H
CALL DELAY
MOV P1, #0FFH
CALL DELAY
DJNZ R0, LOOP ;R0减一,不等于0就跳到loop处
JB P2.0, $ ;如果P2.0为高电平则循环执行本行
JMP START
DELAY: MOV R3, #50
D1: MOV R4, #20
D2: MOV R5, #248
DJNZ R5, $ ;R5的值减1,不等于0则循环执行本行
DJNZ R4, D2
DJNZ R3, D1
RET ;返回主程序
END ;汇编程序结束
中断方式
ORG 00H
JMP START
ORG 03H
JMP EXT0
START: ;主程序
MOV IE, #10000001B ;外部中断0使能
MOV IP, #00000001B ;外部中断0中断优先
MOV TCON, #00000001B ;外部中断0为电平触发
SHINE:
MOV P1, #0FEH
JMP SHINE
EXT0:
MOV R2, #5
LOOP:
MOV P0, #0FEH
CALL DELAY
MOV P0, #0FFH
CALL DELAY
DJNZ R2, LOOP ;R2减一,不等于0就跳到loop处
RETI ;中断服务子程序结束标志
DELAY: MOV R3, #20 ;这一段200ms
D1: MOV R4, #20 ;这一段延时10ms
D2: MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET ;返回主程序
END ;汇编程序结束
PSEN(program store enable) - 片外程序存储使能,需要和存储器的输出端端OE相连。
ALE(address latch enable) - 地址锁存使能,当单片机与片外存储器相连时,P0既可以送出数据也可以送出地址,如何区分到底是地址还是数据呢?
ALE为0,表示送出的是数据,当ALE为1表示送出的是地址。(P0送出的低8位地址,配合P2口的高八位地址,片外存储器便可以寻到16位地址)
注意51单片机的P0口是需要加上拉的!
51作为输入,必须先自己置1!
P0输入,P1输出
MOV A, #0FFH
MOV P0, A
LOOP:
MOV A, P0
MOV P1, A
JMP LOOP
片内片外程序存储器统一编址,访问指令使用MOVC,通过PC来指定地址。
外部数据存储器与外部IO端口实行统一编址,并使用相同的选通控制信号,相同的访问指令MOVX,相同的寄存器间接寻址。类似程序存储器的PC访问数据存储器用DPTR。
数据指针DPTR和程序计数器PC
上一篇:C51编译器的扩展C语言关键字
下一篇:LCD1602例程
史海拾趣
|
H桥电机驱动原理与应用原著:吉姆布朗 1998年4月 整理上传:鲍勃乔丹 2002年9月 翻译:韦文潮 2007年12月本文的内容是要告诉大家什么是H桥以及它如何是工作的。 我们首先来看马达是如何转动的呢?举个例子:你手里拿着一节电池,用导线将马达和 ...… 查看全部问答> |
|
写了一个小的应用程序,通过修改注册表,设置成开机自动运行.(我用vs2005远程跑是没问题的) 可是,开机时会卡在log界面上.请问下高手,问题在哪里? 添加注册表如下: [HKEY_LOCAL_MACHINE\\init] \"Launch50\"=\"startup.exe\" \"Depend50\"=hex:14 ...… 查看全部问答> |
|
现在我的系统中使用的字型文件是一个名叫:mingliu.ttc的字型文件(这个是一个能支持繁体中文的字型文件)。现在我把系统的字体修改为:使用New Times Roman字型,这样就会出现一个问题,在显示中文的地方就会出现口口(框框)不能正常显示。这应该 ...… 查看全部问答> |
|
在嵌入式linux2.6.15内核下开发,目前开发需求要用串口传输数据,然而原先是直接调用socket通过访问以太网传输数据的,但是希望保留socket功能,希望变换物理介质,让socket将数据传递给串口进行收发工作。万望大虾的指点。在此先谢谢了!!!… 查看全部问答> |
|
具体大家看看这家公司的产品:http://www.newmsg.net/Product/NewMsg_UTC903SE.asp也可以 加我QQ: 1425156046… 查看全部问答> |
|
去年年末的时候团了LM3S9B96和LM3S811,记得那时候说拍0.01元的LM3S811是要交学习笔记的,所以从今天开始写学习笔记,还当时的承诺。持续时间大约为50天,每两天一篇,前15份学习笔记是基于811,后10份基于9B96。 ①先上图 ...… 查看全部问答> |
|
http://www.ti.com/lit/gpn/lm4f232h5qc Parametrics LM4F232H5QC Flash (KB) 256 StellarisWare in ROM Yes DMA 32 SafeRTOS 0 ...… 查看全部问答> |
|
小弟最近需要用TI的CodecEngine,使用的平台是合众达的6467T。在XDC工具中,有一个关于Platform的设定项。但是TI所给Platform package中是没有合众达平台的platform package的。于是我想自己创建一个。但是TI ...… 查看全部问答> |




