导航:首页 > 操作系统 > 89x51单片机

89x51单片机

发布时间:2023-01-06 13:08:23

‘壹’ 向高手请教89x51单片机7种寻址方式的寻址范围

1、立即寻址:立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。
如:MOV A,#20H,此时数据范围:00H~FFH。
再如:MOV DPTR,#1000H,此时数据范围:0000H~ffffH;
2、直接寻址:
A:可以访问内部数据存储器RAM低128单元00~7FH
B:如果是高位则一定是特殊功能寄存器如P0,P1,SBUF,IE等等,而且也只有直接寻址可以访问特殊功能寄存器。
C:位寻址空间20H~2FH
3、寄存器寻址:
A:四个工作寄存器组也就是00H~1FH
B:其他特殊功能寄存器如A,B,PSW,DPTR等等
4、寄存器间接寻址:
A:用@Ri可以寻址内部或外部00H~FFH.
B:用@DPTR可以寻址0000H到FFFFH
C:用PUSH或POP可以访问范围00~FFH
5、基址寄存器加变址寄存器的变址寻址
A:以PC为基址范围为256个字节
B:以DPTR为基址范围为64K
6、位寻址:
A:20H~2FH的位寻址空间
B:能被8整除的专用寄存器如P0,P1等等。
7、相对寻址:
偏移量+指令单元地址,所以范围为00H~FFH

‘贰’ MCS-51单片机与AT89S5x系列单片机的关系是什么 从内核、存储器等角度说明两

MCS-51是一个系列,AT89S5x属于MCS-51系列,但出现比较晚,主要改进是编程由并口变成串口 。但AT89S5系列也已落伍。

AT89C51是ATMEL公司生产的MCS-51兼容单片机,采用CMOS工艺生产,有4K的FLASH ROM空间,程序区电可擦写。MCS-51是INTEL公司开发的8位单片机系列,典型的产品有8031,8051。市面上所有兼容MCS-51的单片机都叫51兼容芯片,都可以用C51语言编程。

(2)89x51单片机扩展阅读:

MCS-51单片机:集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

‘叁’ #include <AT89X51.h>是不是只有51单片机才能用,MC9S12XS128MAA单片机可以用不

头文件里面主要是定义了引脚IO以及单片机内部寄存器地址和指令集,AT89X51.h主要用于51内核的单片机(寄存器地址是一样的,可以通用,)但引脚不一定相同,所以建议找对应单片机的头文件比较妥当。另外你这一款是飞思卡尔的单片机,不是51内核,这就更加不可以了。。。你可以查找XS128头文件.h或者XS128头文件.txt,网落上还是有很多资源的

‘肆’ 这段代码什么是什么意思 #include <at89x51.h> #include <absacc.h> #define uchar unsigned char #define

#include <at89x51.h> //编译预处理语句,指你的程序文件包含了at89x51.h,此文件是AT8951单片机
// 的头文件.
#include <absacc.h> //使用其中定义的宏来访问绝对地址.
#define uchar unsigned char //宏定义,用uchar来表示unsigned char.
#define//宏定义语句,不全

‘伍’ 关于单片机头文件reg51.h和at89x51.h编译的问题

这样,你在我的电脑里(应该在c盘吧)找到Keil文件夹而后:Keil----C51-----INC----Atmel在Atmel文件里打开你说的头文件一看里面的设定就一目了然了,他们的定义不同,所以结果就不一样了。

‘陆’ 51单片机头文件中REG51.H、AT89C51.H和AT89X51.H之间的区别

只要你将这几个文件打开,你就会发现,其实只是管脚和寄存器等的宏定义名称不一样而已。

‘柒’ 怎么用89C51单片机实现用一个开关控制8个流水灯,要求开关按下去松开是亮的,再按下去松开是灭的

开关,接在 P2.7 与地之间。

#include <AT89X51.H> //预处理命令

void w(unsigned char k)
{
unsigned int a; //定义变量a 为int 类型
if (k) {
while(P2_7); //没有按就循环,等待按下
for (a = 0; a < 600; a++); //延时消抖
while(P2_7); //没有按就循环
}
else while(!P2_7); //按下就循环,等待松开
}

void main(void) //主函数名
{
while(1) {
w(1); P1_0 = 0; w(0); P1_0 = 1;
w(1); P1_1 = 0; w(0); P1_1 = 1;
w(1); P1_2 = 0; w(0); P1_2 = 1;
w(1); P1_3 = 0; w(0); P1_3 = 1;
w(1); P1_4 = 0; w(0); P1_4 = 1;
w(1); P1_5 = 0; w(0); P1_5 = 1;
w(1); P1_6 = 0; w(0); P1_6 = 1;
w(1); P1_7 = 0; w(0); P1_7 = 1;
}
}

阅读全文

与89x51单片机相关的资料

热点内容
整栋楼过户算法 浏览:544
打印时提示打印服务器错误怎么办 浏览:620
半封闭压缩机组图片 浏览:155
加密货币泡沫的危害 浏览:461
云视讯注册状态服务器错误801 浏览:852
python中删除csv 浏览:591
oracle创建表空间命令 浏览:14
十块钱五分钟的解压人偶 浏览:934
学android看什么书 浏览:376
网络加密了手机上怎样显示 浏览:805
文章被以什么形式存放在服务器中 浏览:708
炮兵命令 浏览:116
网商园app怎么样啊 浏览:325
app字体大小怎么设置在哪 浏览:432
华为app选择网络模式哪里找 浏览:321
策划优化服务器是什么 浏览:238
联想的组织服务器怎么连接 浏览:218
程序员千里贵州头条 浏览:672
阿里云服务器199一年 浏览:688
支点app里面有币怎么办 浏览:65