https://blog.csdn.net/zhangrelay/category_6638850.html
zhangrelay / Linux_C51 · GitCode
开启环境:
使用终端,升级并安装sdcc:
sudo apt install sdcc
安装仿真工具:
sudo apt install mcu8051ide
测试如下案例:
单片机补充案例--数字IO口呼吸灯_zhangrelay的博客-CSDN博客
#include<8052.h>#define LSA P1_5
#define LSB P1_6
#define LSC P1_7
#define Led P0 char brightness=0,a=0;void EXint_Init(void);
void Delayms(unsigned int);
void EXINT0() __interrupt 0;void main()
{EXint_Init(); LSA=0;LSB=0;LSC=0; while(1) {Led = 0x00;a=brightness;while(a--); Led = 0xff; a=255;while(a--); }
}void EXint_Init()
{IT0=1; IT1=0;
// IPH=0x40; PX1=1; EA=1; EX0=1; EX1=1;
}void Delayms(unsigned int xms)
{unsigned int i,j;for(i = xms;i > 0;i--){for (j = 110;j > 0;j--);}
}void EXINT0() __interrupt 0
{brightness++;
}
编译出现警告:
sdcc -mmcs51 led.c
将char 改为 int;(注意位置)
再次编译,一切ok。
使用如下功能,将led.ihx下载到本地连接到单片机使用即可。
shiyanlou:~/ $ sudo apt update [21:28:00]
\u547d\u4e2d:1 http://mirrors.cloud.aliyuncs.com/ubuntu xenial InRelease
\u83b7\u53d6:2 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates InRelease [99.8 kB]
\u83b7\u53d6:3 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security InRelease [99.8 kB]
\u83b7\u53d6:4 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/main Sources [665 kB]
\u83b7\u53d6:5 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/universe Sources [548 kB]
\u83b7\u53d6:6 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/main amd64 Packages [2,560 kB]
\u83b7\u53d6:7 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-updates/universe amd64 Packages [1,544 kB]
\u83b7\u53d6:8 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/main Sources [311 kB]
\u83b7\u53d6:9 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/universe Sources [256 kB]
\u83b7\u53d6:10 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/main amd64 Packages [2,051 kB]
\u83b7\u53d6:11 http://mirrors.cloud.aliyuncs.com/ubuntu xenial-security/universe amd64 Packages [984 kB]
\u83b7\u53d6:12 http://packages.ros.org/ros/ubuntu xenial InRelease [4,692 B]
\u9519\u8bef:12 http://packages.ros.org/ros/ubuntu xenial InRelease \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
\u83b7\u53d6:13 http://packages.ros.org/ros2/ubuntu xenial InRelease [4,668 B]
\u9519\u8bef:13 http://packages.ros.org/ros2/ubuntu xenial InRelease \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
\u5df2\u4e0b\u8f7d 9,129 kB\uff0c\u8017\u65f6 1\u79d2 (5,611 kB/s)
\u6b63\u5728\u8bfb\u53d6\u8f6f\u4ef6\u5305\u5217\u8868... \u5b8c\u6210
\u6b63\u5728\u5206\u6790\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u5173\u7cfb\u6811
\u6b63\u5728\u8bfb\u53d6\u72b6\u6001\u4fe1\u606f... \u5b8c\u6210
\u6709 423 \u4e2a\u8f6f\u4ef6\u5305\u53ef\u4ee5\u5347\u7ea7\u3002\u8bf7\u6267\u884c \u2018apt list --upgradable\u2019 \u6765\u67e5\u770b\u5b83\u4eec\u3002
W: \u6821\u9a8c\u6570\u5b57\u7b7e\u540d\u65f6\u51fa\u9519\u3002\u6b64\u4ed3\u5e93\u672a\u88ab\u66f4\u65b0\uff0c\u6240\u4ee5\u4ecd\u7136\u4f7f\u7528\u6b64\u524d\u7684\u7d22\u5f15\u6587\u4ef6\u3002GPG \u9519\u8bef\uff1ahttp://packages.ros.org/ros/ubuntu xenial InRelease: \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
W: \u6821\u9a8c\u6570\u5b57\u7b7e\u540d\u65f6\u51fa\u9519\u3002\u6b64\u4ed3\u5e93\u672a\u88ab\u66f4\u65b0\uff0c\u6240\u4ee5\u4ecd\u7136\u4f7f\u7528\u6b64\u524d\u7684\u7d22\u5f15\u6587\u4ef6\u3002GPG \u9519\u8bef\uff1ahttp://packages.ros.org/ros2/ubuntu xenial InRelease: \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
W: \u65e0\u6cd5\u4e0b\u8f7d http://packages.ros.org/ros/ubuntu/dists/xenial/InRelease \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
W: \u65e0\u6cd5\u4e0b\u8f7d http://packages.ros.org/ros2/ubuntu/dists/xenial/InRelease \u7531\u4e8e\u6ca1\u6709\u516c\u94a5\uff0c\u65e0\u6cd5\u9a8c\u8bc1\u4e0b\u5217\u7b7e\u540d\uff1a NO_PUBKEY F42ED6FBAB17C654
W: \u90e8\u5206\u7d22\u5f15\u6587\u4ef6\u4e0b\u8f7d\u5931\u8d25\u3002\u5982\u679c\u5ffd\u7565\u5b83\u4eec\uff0c\u90a3\u5c06\u8f6c\u800c\u4f7f\u7528\u65e7\u7684\u7d22\u5f15\u6587\u4ef6\u3002
shiyanlou:~/ $ sudo apt install sdcc [21:28:08]
\u6b63\u5728\u8bfb\u53d6\u8f6f\u4ef6\u5305\u5217\u8868... \u5b8c\u6210
\u6b63\u5728\u5206\u6790\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u5173\u7cfb\u6811
\u6b63\u5728\u8bfb\u53d6\u72b6\u6001\u4fe1\u606f... \u5b8c\u6210
\u5c06\u4f1a\u540c\u65f6\u5b89\u88c5\u4e0b\u5217\u8f6f\u4ef6\uff1agputils gputils-common gputils-doc sdcc-doc sdcc-libraries
\u5efa\u8bae\u5b89\u88c5\uff1asdcc-ucsim
\u4e0b\u5217\u3010\u65b0\u3011\u8f6f\u4ef6\u5305\u5c06\u88ab\u5b89\u88c5\uff1agputils gputils-common gputils-doc sdcc sdcc-doc sdcc-libraries
\u5347\u7ea7\u4e86 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u65b0\u5b89\u88c5\u4e86 6 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u8981\u5378\u8f7d 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u6709 423 \u4e2a\u8f6f\u4ef6\u5305\u672a\u88ab\u5347\u7ea7\u3002
\u9700\u8981\u4e0b\u8f7d 3,582 kB \u7684\u5f52\u6863\u3002
\u89e3\u538b\u7f29\u540e\u4f1a\u6d88\u8017 55.5 MB \u7684\u989d\u5916\u7a7a\u95f4\u3002
\u60a8\u5e0c\u671b\u7ee7\u7eed\u6267\u884c\u5417\uff1f [Y/n] y
\u83b7\u53d6:1 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 sdcc-libraries all 3.5.0+dfsg-2 [658 kB]
\u83b7\u53d6:2 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 sdcc amd64 3.5.0+dfsg-2 [1,296 kB]
\u83b7\u53d6:3 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 sdcc-doc all 3.5.0+dfsg-2 [526 kB]
\u83b7\u53d6:4 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 gputils-common all 1.4.0-0.1 [355 kB]
\u83b7\u53d6:5 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 gputils amd64 1.4.0-0.1 [379 kB]
\u83b7\u53d6:6 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 gputils-doc all 1.4.0-0.1 [368 kB]
\u5df2\u4e0b\u8f7d 3,582 kB\uff0c\u8017\u65f6 0\u79d2 (3,714 kB/s)
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 sdcc-libraries\u3002
(\u6b63\u5728\u8bfb\u53d6\u6570\u636e\u5e93 ... \u7cfb\u7edf\u5f53\u524d\u5171\u5b89\u88c5\u6709 185892 \u4e2a\u6587\u4ef6\u548c\u76ee\u5f55\u3002)
\u6b63\u51c6\u5907\u89e3\u5305 .../sdcc-libraries_3.5.0+dfsg-2_all.deb ...
\u6b63\u5728\u89e3\u5305 sdcc-libraries (3.5.0+dfsg-2) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 sdcc\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../sdcc_3.5.0+dfsg-2_amd64.deb ...
\u6b63\u5728\u89e3\u5305 sdcc (3.5.0+dfsg-2) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 sdcc-doc\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../sdcc-doc_3.5.0+dfsg-2_all.deb ...
\u6b63\u5728\u89e3\u5305 sdcc-doc (3.5.0+dfsg-2) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 gputils-common\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../gputils-common_1.4.0-0.1_all.deb ...
\u6b63\u5728\u89e3\u5305 gputils-common (1.4.0-0.1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 gputils\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../gputils_1.4.0-0.1_amd64.deb ...
\u6b63\u5728\u89e3\u5305 gputils (1.4.0-0.1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 gputils-doc\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../gputils-doc_1.4.0-0.1_all.deb ...
\u6b63\u5728\u89e3\u5305 gputils-doc (1.4.0-0.1) ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e man-db (2.7.5-1) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u8bbe\u7f6e sdcc-libraries (3.5.0+dfsg-2) ...
\u6b63\u5728\u8bbe\u7f6e sdcc (3.5.0+dfsg-2) ...
\u6b63\u5728\u8bbe\u7f6e sdcc-doc (3.5.0+dfsg-2) ...
\u6b63\u5728\u8bbe\u7f6e gputils-common (1.4.0-0.1) ...
\u6b63\u5728\u8bbe\u7f6e gputils (1.4.0-0.1) ...
\u6b63\u5728\u8bbe\u7f6e gputils-doc (1.4.0-0.1) ...
shiyanlou:~/ $ sudo apt install mcu8051ide [21:28:29]
\u6b63\u5728\u8bfb\u53d6\u8f6f\u4ef6\u5305\u5217\u8868... \u5b8c\u6210
\u6b63\u5728\u5206\u6790\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u5173\u7cfb\u6811
\u6b63\u5728\u8bfb\u53d6\u72b6\u6001\u4fe1\u606f... \u5b8c\u6210
\u5c06\u4f1a\u540c\u65f6\u5b89\u88c5\u4e0b\u5217\u8f6f\u4ef6\uff1abwidget itcl3 libtk-img tcl-signal tcllib tdom
\u5efa\u8bae\u5b89\u88c5\uff1aitcl3-doc libtk-img-doc rxvt-unicode doxygen hunspell
\u4e0b\u5217\u3010\u65b0\u3011\u8f6f\u4ef6\u5305\u5c06\u88ab\u5b89\u88c5\uff1abwidget itcl3 libtk-img mcu8051ide tcl-signal tcllib tdom
\u5347\u7ea7\u4e86 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u65b0\u5b89\u88c5\u4e86 7 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u8981\u5378\u8f7d 0 \u4e2a\u8f6f\u4ef6\u5305\uff0c\u6709 423 \u4e2a\u8f6f\u4ef6\u5305\u672a\u88ab\u5347\u7ea7\u3002
\u9700\u8981\u4e0b\u8f7d 8,854 kB \u7684\u5f52\u6863\u3002
\u89e3\u538b\u7f29\u540e\u4f1a\u6d88\u8017 33.2 MB \u7684\u989d\u5916\u7a7a\u95f4\u3002
\u60a8\u5e0c\u671b\u7ee7\u7eed\u6267\u884c\u5417\uff1f [Y/n] y
\u83b7\u53d6:1 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 bwidget all 1.9.10-1 [167 kB]
\u83b7\u53d6:2 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 itcl3 amd64 3.4.3-1 [48.5 kB]
\u83b7\u53d6:3 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 libtk-img amd64 1:1.4.2+dfsg-2 [120 kB]
\u83b7\u53d6:4 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 tcllib all 1.17-dfsg-1 [4,011 kB]
\u83b7\u53d6:5 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 tdom amd64 0.8.3-1 [239 kB]
\u83b7\u53d6:6 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 tcl-signal amd64 1.4-3 [8,990 B]
\u83b7\u53d6:7 http://mirrors.cloud.aliyuncs.com/ubuntu xenial/universe amd64 mcu8051ide all 1.4.7-2 [4,259 kB]
\u5df2\u4e0b\u8f7d 8,854 kB\uff0c\u8017\u65f6 2\u79d2 (4,366 kB/s)
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 bwidget\u3002
(\u6b63\u5728\u8bfb\u53d6\u6570\u636e\u5e93 ... \u7cfb\u7edf\u5f53\u524d\u5171\u5b89\u88c5\u6709 188371 \u4e2a\u6587\u4ef6\u548c\u76ee\u5f55\u3002)
\u6b63\u51c6\u5907\u89e3\u5305 .../bwidget_1.9.10-1_all.deb ...
\u6b63\u5728\u89e3\u5305 bwidget (1.9.10-1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 itcl3:amd64\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../itcl3_3.4.3-1_amd64.deb ...
\u6b63\u5728\u89e3\u5305 itcl3:amd64 (3.4.3-1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 libtk-img:amd64\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../libtk-img_1%3a1.4.2+dfsg-2_amd64.deb ...
\u6b63\u5728\u89e3\u5305 libtk-img:amd64 (1:1.4.2+dfsg-2) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 tcllib\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../tcllib_1.17-dfsg-1_all.deb ...
\u6b63\u5728\u89e3\u5305 tcllib (1.17-dfsg-1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 tdom\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../tdom_0.8.3-1_amd64.deb ...
\u6b63\u5728\u89e3\u5305 tdom (0.8.3-1) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 tcl-signal\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../tcl-signal_1.4-3_amd64.deb ...
\u6b63\u5728\u89e3\u5305 tcl-signal (1.4-3) ...
\u6b63\u5728\u9009\u4e2d\u672a\u9009\u62e9\u7684\u8f6f\u4ef6\u5305 mcu8051ide\u3002
\u6b63\u51c6\u5907\u89e3\u5305 .../mcu8051ide_1.4.7-2_all.deb ...
\u6b63\u5728\u89e3\u5305 mcu8051ide (1.4.7-2) ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e libc-bin (2.23-0ubuntu10) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e man-db (2.7.5-1) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e shared-mime-info (1.5-2ubuntu0.1) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e desktop-file-utils (0.22-1ubuntu5.1) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e mime-support (3.59ubuntu1) \u7684\u89e6\u53d1\u5668 ...
\u6b63\u5728\u8bbe\u7f6e bwidget (1.9.10-1) ...
\u6b63\u5728\u8bbe\u7f6e itcl3:amd64 (3.4.3-1) ...
\u6b63\u5728\u8bbe\u7f6e libtk-img:amd64 (1:1.4.2+dfsg-2) ...
\u6b63\u5728\u8bbe\u7f6e tcllib (1.17-dfsg-1) ...
\u6b63\u5728\u8bbe\u7f6e tdom (0.8.3-1) ...
\u6b63\u5728\u8bbe\u7f6e tcl-signal (1.4-3) ...
\u6b63\u5728\u8bbe\u7f6e mcu8051ide (1.4.7-2) ...
\u6b63\u5728\u5904\u7406\u7528\u4e8e libc-bin (2.23-0ubuntu10) \u7684\u89e6\u53d1\u5668 ...
shiyanlou:~/ $ [21:29:14]