基于SDCC和Edsim51的代码仿真

一、安装SDCC和EDsim51

百度网盘打开,解压自定义安装及即可

链接:百度网盘 请输入提取码 提取码:3123

二、采用汇编语言和C语言两种方式,在Edsim虚拟开发板上点亮一个LED灯

1、汇编语言实现LED灯点亮

汇编代码如图所示:

“MOV 90H,#0xFE”:把十六进制立即数0xFE(二进制数11111110)传给内存地址90H所指代的空间,即把51单片机的P1.0端口置为低电位,P1.1~P1.7置为高电位,“MOV 0x90,#0xFE”和“MOV 0x90,#254”作用类似

Edsim演示如图所示:

2、C语言实现LED点亮

C语言代码如图所示:

在SDCC安装目录下的bin目录下建立一个.c文件,文件内容为C语言代码

在计算机命令提示框中输入SDCC的bin目录地址,然后继续继续输入bin目录下的sdcc.exe文件地址

输入sdcc --std-sdcc89 led1.c这段命令编码,即可编码成功

输入dir即可查看当前目录的子文件目录详情,我们可以看到子目录下有led.ihx文件,而不是.hex文件

这里用SDCC配套的工具程序packihx把led1.ihx文件转换成led1.hex文件

再次输入dir查看bin子目录下文件详情即可看到有led1.hex文件存在

打开Edsim51单片机,将update freq改成50000,然后点击New和Load,添加生成的led1.hex文件,最后点击Run,Edsim演示图如图所示:

三、在Edsim虚拟开发板上实现LED灯周期性闪烁

这里采用汇编语言,代码如图所示:

Edsim演示如图所示:

四、把Edsim51汇编语言点亮LED灯的代码手工翻译转换为机器指令

MOV 对应的OpCode(操作码、机器码)为75,90H 对应的OpCode为90,0xFE 对应的OpCode为FE,与Edsim51编译生成的机器码一样

五、在Proteus中画出一个与Edsim51虚拟电路原理基本相同的电路,用Proteus仿真完成Led灯的点亮和闪烁

Proteus所化电路如图所示:

1、采用Proteus+SDCC 的C程序编程

将之前生成的led1.hex文件添加进80C51芯片内,如图所示:

Ptotues演示如图所示:

2、采用Proteus+Keil C51 的C程序编程

在Keil C51中添加新工程,选择对应的芯片AT89C51,添加文本,把C语言代码拷贝进来,点保存为.c文件,在右键组别,把保存的.c文件添加进组,然后点击魔术棒勾选上生成.hex文件,点击建立,在Protues中把生成的.hex文件添加进8051芯片即可

Protues演示如图所示:

3、采用Proteus 内置汇编语言编译的方式

内置汇编语言代码如图:

Protues演示如图所示:

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值