一、SDCC与Edsim51
1)SDCC官方网站 (SDCC - Small Device C Compiler)下载
2) Edsim51官方网站 (EdSim51 - The 8051 Simulator for Teachers and Students)下载
也可以自行在网上寻找安装方式
二、采用汇编语言与C语言两种方式,在Edsim51虚拟开发板上点亮LED灯
1)汇编代码
MOV 90H, #0xFE
或者
MOV 0x90,#0xFE
或者
MOV 0x90,#254
实验图
端口点亮为红色
2)C语言代码
#include<mcs51/8051.h>
void main()
{
while(1){
P1=0b11111110;
}
}
这里Edsim51自身只能编译汇编语言,C语言程序需要借助其他C编译器(比如SDCC for 8051或 Keil for 8051)转换为汇编和二进制执行程序(.hex)才能仿真运行
LED灯亮
3)LED灯闪烁
代码
LOOP:SETB 90H ;led0置1
LCALL DELAY ;调用延时函数
CLR 90H ;led0置0
LCALL DELAY
AJMP LOOP ;跳转到LOOP
DELAY: MOV R7,#250 ;延时函数
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET ;返回主函数
END ;指令结束
实验图
三、汇编语言点亮Led1灯的代码同生成的机器码指令对象
代码
MOV 90H, #0xFE
二者一致
四、用Proteus仿真完成Led灯的点亮和闪烁
1)sdcc的c语言编程
2)Keil的c语言
3)Proteus的汇编语言