Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)

###Tools:
1)Codeblocks
2)SDCC (Small Device C Compiler)
3)Proteus

(文末有福利)

SDCC是免费开源的编译器,可以用来编译8051系列的芯片,也就是我们平时使用的51单片机可以用此编译,而不是使用KEIL商业软件,IDE配合Codeblocks,最终验证用proteus仿真验证,手头上没有51开发板。

SDCC和Codeblocks在网上搜索就能找到,对于SDCC的资料网上非常少,自己收集了一些,就在此记录一下.

过程

1)安装code blocks,安装SDCC
2)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

输入一下代码,有注释


#include <mcs51reg.h>
// #include <mcs51/8051.h>

void timer() __interrupt 1; // SDCC的中断函数要预先声明,区别于KEIL C51

unsigned char counter; // 软件计数器
void main()
{
    TMOD = 0x00;    // 定时器0_16位计数
    TH0 = 0xb1;     // 经计算定时20ms初值是0xB1E0,分高8位和低8位写
    TL0 = 0xe0;
    TR0 = 1;        // 定时器开始运行
    ET0 = 1;        // 开定时器0中断开关
    EA = 1;         // 开启总中断
    while(1)
    {
        ;           // 进入循环,不断触发定时器中断
    }
}

void timer() __interrupt 1
{
   counter++;
   if(counter==50)
   {
      counter = 0;
      P1_2 = !P1_2;
   }
}

3)
最后建立一个proteus仿真文件,选择刚才编译生成的hex文件就可以看到效果了,SDCC的中断函数要声明的,这个和KEIL C不同
这里写图片描述

和KEILC的差别:
这里写图片描述

参考链接:http://whchen.net/blog/index.php/archives/sdcc-simple-to-use-tutorial.html


关于SDCC的使用可以参看另一篇博文基于51单片机实现的电机PWM控制及测速(Proteus仿真)

需要proteus中文教程的童鞋可以微信扫描下面二维码关注公众号“向芽塔”,回复“proteus教程”即可获得PDF版教程,谢谢!
在这里插入图片描述

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值