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)进行仿真