是的,如果国内高校跟你讲8051那就是那个手册里头放炼丹炉的stc89C52RC。这个芯片可以理解为一种教具,因为实际生产中应该也不会用这么古早的框架了。越古早,向用户隐藏的系统复杂性就越少,所以说是用来当教具的。只不过我到今天也只摸过这玩意就是了
搭建环境
去你马的keil这里用sdcc来编译,幸运的是,我们不需要在终端里头体验原生的c开发,platformio这一平台完成了很多单片机平台的环境搭建,只需要找到并下载项目模板就行了。在vscode下可以直接下载这一插件。
当然,如果自己搭建环境也可以的,用sdcc,stcflash.py就能实现了。
sdcc 和 gcc 使用是类似的操作,具体你得看手册编译器没学过
sdcc
sdcc相比于keil对C99标准的支持应当会更好一点,但是较为简陋,ide的语法支持也比较差,生成的文件大小也要更大一些只好说我没用过keil就是了。编译8051的话要加-mmcs51
参数
lint.h
这是准备好的用来骗错误检查和自动提示工具的头文件,可惜的是vscode下面这一切并没有按照预期的运行。lint.h中用 #if !defined(__SDCC_mcs51)
来检测是否真的需要把谎话嵌入到代码里但是他确实没定义啊,为什么呢?。显然骗不过vscode,所以可以在写的时候加进去,编译的时候去掉这个方法属于笨办法,应该有真的办法的。
语法
__bit
:编译时分配空间__sbit
:可寻位的空间__sfr
:特殊功能寄存器__at
:指派绝对地址__interrupt(x)
:中断__asm __endasm
:嵌入asm汇编