基于SDCC和Edsim51的代码仿真

本文介绍了如何在Edsim51上通过汇编语言和C语言控制LED灯,涉及SDCC编译器的使用,以及如何在Proteus中进行仿真。详细展示了点亮和闪烁LED灯的代码示例。
摘要由CSDN通过智能技术生成

一、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的汇编语言

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值