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)

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

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

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

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

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

输入一下代码,有注释


#include 
// #include 

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不同
Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)_第6张图片

和KEILC的差别:
Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)_第7张图片

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


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

需要proteus中文教程的童鞋可以微信扫描下面二维码关注公众号“向芽塔”,回复“proteus教程”即可获得PDF版教程,谢谢!
Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)_第8张图片

你可能感兴趣的:(51单片机)