




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发51系列的单片机,国内的绝大部分人使用的是基于keil的开发环境,不过该商业软件是收费的,这算一个不太好的地方,另一个不好的地方是它的编辑环境已经跟不上时代的步伐了,尽管一般软件的体量并不大SDCC是一个免费的编译器,是跨平台的,其他操作环境也能工作,至于什么是编译器/编译器如何工作,请自行百度,如果能深入一些理解这些问题,算是一个大的提高SDCC在windows下面进行工作,可以直接参考SDCC的相关文档编写用命令行直接进行“原始开发”,但是这种方式显然不适合大众开发者,除非为了证明你有超凡的编程能力以及组织软件工程的能力,毕竟有了更好的工具,可以大大提高效率,让开发更关注业务逻辑本身所以eclipse是一个很好的目标平台,并且已经有人为我们免费开发了一些相应的工具,尽管这些工具已经很老,并且可能存在一些问题,但是经过一些改动,还是能很好的工作起来的,下面进入正式开发环境搭建工作需要准备的硬件有1、 AT89S52开发板一块【其他51系列的也行】2、 ISP下载工具【淘宝有很多,或者其他烧录工具】3、 其他配件,如USB串口、电源等需要准备的软件【推荐用比较新的版本】有很多。分别是1、 jdk根据自己带你电脑选择32或者64位2、 eclipseC+版本、根据自己带你电脑选择32或者64位3、 SDCC【根据自己带你电脑选择32或者64位】4、 Cygwin【建议安装离线版本】5、 ISP的下载软件【】安装完后打开eclipse,进行安装插件此插件“net.sourceforge.eclipsesdcc-1.0.0-win32.x86”需要现在网上 下载下来,之后解压,但是在比较新的eclipse中已经无法进行正常使用了,需要做一下修改,具体步骤是,解压后存放在eclipse目录下的“dropins”下面,如图之后需要修改,找到“dropinsnet.sourceforge.eclipsesdcc-1.0.0-win32.x86pluginsnet.sourceforge.eclipsesdcc_1.0.0”目录,把Cygwin软件bin目录下面的sh.exe复制到该目录,之后重启,就可以正常工作了,这里注意一下,需要把各软件的的一些可执行文件加入到环境变量【如果你看不懂这句话,说明这篇文章可能不适合你】,不然会出问题的打开eclipse新建工程文档,如图完成后需要进行配置右键工程文件主目录,打开配置选项,按下图配置这样的话就可以了,我的目录结构是到这里,实际已经可以正常编译【通过点击小锤子图标】并生成HEX文件了,有一点需要注意,SDCC与keil的一些关键字是不一样的,这个属于C语言下面的“方言”,主要用到的是 sfr sbit 以及 interrupt的一些使用,我截图一下,读者自行领悟一下应该会明白的,关键字是以在前面加双下划线的,并且sbit必须加上地址,另外就是中断,中断是这么定义的,如图这个和keil基本是一样的,前面加上双下划线即可,还需要注意的是,中断函数必须要声明到main函数文件中去,否则很可能无法生效,这个不清楚是bug还是开发人员故意这么搞另外就是,目前还不清楚的一些问题,主要是eclipse不识别SDCC中的一些关键字,导致SFR中的类似与P0这些无法识别,导致一直报错,但是可以正常编译的,可以打开相关的设置,把所有的相关的报错设置关闭掉【图中是把所有的全部都关掉了,可以根据实际需要打开或者关闭某些提示】至此已经可以正常开发51程序了,关于STC的可以适当的修改一下头文件也是可以开发的,另外这里说一下,关于在这个环境下面printf函数的实现,实际非常简单,只需要在文件中包含stdio.h 并实现void putchar(char);函数即可有的版本可能类型不一样,按照提供的类型完成即可,这个我们选择串口方式输出,所以只需要,把能正常调用串口发送一个字节的函数写到里面即可,可参考下面的代码/* 本程序只供学习使用,未经作者许可,不得用于其它任何用途*/#include #include UART.h#include MyType.h#include config.h#include #define Fclk 11059200UL /*使用11.0592M晶体*/#define BitRate 9600UL /*波特率定义为9600*/volatile uint8 g_tx_is_sending;/*函数功能:串口初始化。入口参数:无。返 回:无。备 注:无。*/void uart_init(void) EA=0; /暂时关闭中断 TMOD&=0x0F; /定时器1模式控制在高4位 TMOD|=0x20; /定时器1工作在模式2,自动重装模式 SCON=0x50; /串口工作在模式1 TH1=256-Fclk/(BitRate*12*16); /计算定时器重装值 TL1=256-Fclk/(BitRate*12*16); PCON|=0x80; /串口波特率加倍 ES=1; /串行中断允许 TR1=1; /启动定时器1 REN=1; /允许接收 EA=1; /允许中断/End of function/*函数功能:串口中断处理。入口参数:无。返 回:无。备 注:无。*/void serial_isr(void) _interrupt SI0_VECTOR if(RI) /收到数据 RI=0; /清中断请求 else /发送完一字节数据 TI=0; g_tx_is_sending=0; /清正在发送标志 /End of function/*函数功能:往串口发送一字节数据。入口参数:d: 要发送的字节数据。返 回:无。备 注:无。*/void UartPutChar(uint8 d) SBUF=d; /将数据写入到串口缓冲 g_tx_is_sending=1; /设置发送标志 while(g_tx_is_sending); /等待发送完毕/End of function/实现printf,需要实现该函数void putchar (char ch) UartPutChar(ch);然后就可以愉快的使用printf函数了,这个比keil的要好一点,keil的printf不能直接输出char为正数,需要转化为int,否则是不可靠的,特此提醒之后把Debug目录下面的hex文件通过ISP烧录到芯片去验证结果即可下面将一下关于用这个环境开发STM8单片机的一些内容,首先先准备好补充的软件和硬件软件需要ST Visual Programmer(官方自带的下载工具),硬件需要stlink(SWIW方式下载程序)建立工程和51是一样的,其实应该可以选择不同的平台,但是这个插件不支持,毕竟已经很久没有更新了,笔者暂时没有能力自己弄一个,所以也只好将就着使用,可以更改一下配置还是正常使用的,先上图看起来还是很不错的,秒杀IAR,下面说一下配置,需要手动设置的,不过建立好模版后就不需要再改了,不算太麻烦这样就算搞定好设置了,主要是更改了MCU平台,其他的和51没啥区别,不过这里没有指定ROM和RAM,不过一般情况下是够用的,编译时提示 warning 133: Model -model-small not supported for stm8, ignored. 是正常的,可以不用理会下面讲一下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳中和桥梁施工方案
- 肿瘤患者死亡病例汇报
- 艾迪康物流培训
- 医疗安全法律法规培训
- 批判性思维课件
- 休闲食品行业健康化转型趋势分析:2025年市场拓展与消费者需求研究报告
- 房地产企业2025年风险管理与财务稳健性创新实践评估深度实施报告
- 儿童小主播课件
- 中科院肿瘤医院进修收获
- 阿汤哥射苹果教育
- 《重庆市建设工程费用定额》电子版
- 报价单模板完整版
- 2023年山东军转真题
- 幼儿园教育科研:园本生活经验课之“食”主题课程开发与实施案例
- 2023年杭州育才中学小升初语文考试真题卷含标准答案
- 2023年安徽六安市裕安区城乡建设投资集团有限公司招聘笔试题库及答案解析
- 超市营业员聘用劳务合同书(2篇)
- GB/T 2832-1996陶管抗外压强度试验方法
- GB/T 19974-2018医疗保健产品灭菌灭菌因子的特性及医疗器械灭菌过程的开发、确认和常规控制的通用要求
- GB/T 10095.1-2008圆柱齿轮精度制第1部分:轮齿同侧齿面偏差的定义和允许值
- 热电公司设备标志牌制作、悬挂标准
评论
0/150
提交评论