51单片机架构与汇编指令

1、工程建立

      1)Proteus建立

(1)安装Proteus软件并打开建立工程

(2)按下列步骤创立工程

(3)直至建立工程即可

      2)Keil建立

(1)使用Keil文件创立工程

(2)直至如下即可

(3)生成HEX文件

2、点亮单灯

(1)打开Proteus元件模式、

(2)按下图画图

(3)进行仿真

3、LED流水灯

1)c语言点亮LED流水灯

将下列代码复制粘贴

//51单片机编程常用的头文件
	#include <reg51.h>
	#include <intrins.h>
	//延迟函数
	void delay_ms(int a)
	{
		int i,j;
		for(i=0;i<a;i++)
		{
			for(j=0;j<1000;j++) _nop_();
	
		}
	}
	
	void main(void)
	{
		while(1)
		{
			P0=0xfe;
			delay_ms(50);
			P0=0xfd;
			delay_ms(50);
			P0=0xfb;
			delay_ms(50);
			P0=0xf7;
			delay_ms(50);
			P0=0xef;
			delay_ms(50);
			P0=0xdf;
			delay_ms(50);
			P0=0xbf;
			delay_ms(50);
			P0=0x7f;
			delay_ms(50);
		}
	}

(2)点击保存并自主进行命名

(3)进行编译查看错误

(4)打开Proteus,改变码地址并确定

(5)进行仿真,LED灯依次点亮

2)汇编语言点亮LED流水灯

(1)改写源代码

汇编语言代码如下

org   0100h
Start:	
LJMP MAIN     ;跳转到MAIN
 
MAIN:
MOV A,#80H    ;将数80H移动到寄存器A中
LOOP:
MOV P2,A      ;将寄存器A的值移动到P2端口//循环中的意义是刷新P2中的位置
LCALL DELAY   ;调用DELAY函数
RR A          ;将寄存器A中的内容向右循环移位
LJMP LOOP     ;跳转到LOOP
 
DELAY:        ;通过循环次数的控制来实现一定的演示效果
MOV R2,#255   
D1:MOV R3,#250
D2:DJNZ R3,D2       ;寄存器减1,不为0 则转移
DJNZ R2,D1
RET

(2)进行仿真

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值