完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
尽量写的通俗一点,有错误之处请不吝赐教。 我对单片机的理解:单片机是运算器+ram(失电后数据丢失)+rom(失电后数据依然保存)+外部设备(各种IO),它是以时序而工作的,并具有逻辑功能。可以用它(以底成本)实现复杂的任务。 学习单片机可以这样学习: 1.了解时序 2.了解RAM(单片机的寄存器),并关联相应IO(分类、分块)。 3.了解编程语句c或汇编。 4.综合逻辑功能(程式)及rom。 我们可以用以上知识,设计一个逻辑功能(应用在某种生产、服务或生活场景),当我们对逻辑功能进行维护时,要对rom进行重写,最简的方法是可以远程升级(也是比较复杂的方法,写成后可一劳永逸)。 从msc51到AT89C系列,最后选择了STC系列,原因有3,速度快,稳定,工作温度带宽大。 带入正题,STC单片机的远程升级,主要是利用了STC的ISP功能(每种系列带有ISP功能都可远程升级)。 STC的ISP功能使用串口1(rxd,txd,一般为P3^0,P3^1)作下载端口,也就是按STC的ISP协议写入主工作芯片的串口1,实现框图如下:
注意事项: 1.ISP串口通讯是偶校验。 写法发送一个字节 void sendchr2(uchar s) { ACC=s; //(ACC累加器,会影响P位) S2CON &=0xfd; if§ { S2CON=S2CON | 0x08; } else { S2CON =S2CON & 0xf7; } TB8 = P; S2BUF=ACC; while(!(S2CON & 0x02)); } 2.串口通讯用固定波特率最简,比如4800。 3.从单片机串口最好用中断方式** 附:ISP协议格式 包头 + 标识 + 数据包长度 + 命令 + 数据 + 校验和 + 包尾 起始帧:0x7F(只一个字节) 包头:0x46,0xB9,两字节 标识:PC机发送给MCU的为0x6A,MCU回应给PC的是0x68,标识后面还有一个字节固定为0x00,两字节 包长:为除包头外的数据包总长,一字节。 命令:一个字节。 数据:可以有也可以无,最多时有128个字节。 校验和:为两字节,除去包头其他数据校验和(字节相加的值)。 包尾:固定为0x16 |
|
|
|
只有小组成员才能发言,加入小组>>
2572 浏览 0 评论
769浏览 1评论
529浏览 0评论
279浏览 0评论
467浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-3 02:51 , Processed in 1.179232 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号