请问怎样在window应用程序中包含(使用)c51编译器? 请问怎样在window应用程序中包含(使用)c51编译器?我们做了个应用程序,取数据后生成了两个.h文件和一个.c文件。之后把这些文件放到c51编译器中生成.bin文件,再把.bin文件烧录到芯片中,再把芯片放到控制板中进行控制。现在想在window应用程序就生成.bin文件,再烧录到芯片或用程式转换后直接通过RS232直接把数据输入到控制板中。 请各位大大多多帮忙,先谢了!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1)你用VC的编译器肯定无法编译c51程序。里面的变量都是不同类型的,VC下一般的用int, long型,而c51就用xdata int, data long等等,所以这一步你根本别想了。2)如果你希望你的芯片能够自动升级,需要满足以下几个条件 a)带有可自动升级功能 b)写升级程序 3)开始烧芯片的时候把升级程序烧进去,一定要烧到升级区域,注意,那里的地址也是从0开始的,而不是从他的位置开始的。现在的芯片一般都带有4k的额外的供升级用的flash,可以简单的这样写用一个组合码来判断需要升级,比如说0x8b这个字符,键盘是敲不进去的,如果后面再跟着一个'u'字符,可以判断单片机升级。1)//假设读取串口字符的函数为getc()。unsigned char data c, c1;c = getc();if( 0x8b == c ){ c1 = getc(); if( 'u' == c1 ) { soft_upgrade() }}2)写升级程序,目的就是远程跳转到升级代码,参考芯片手册,举例如下voidsoft_upgrade(){ EA = 0; CHPENR = 0x87; //enable write attribute of CHPCON register CHPENR = 0x59; CHPCON = 0x03; //enter In-sys programming mode TCON = 0; //setup timer 0 IP = 0; IE = 0x82; TH0 = 0x80; TL0 = 0x00; TMOD = 0x01; TCON = 0x10; PCON = 0x01; //enter system idle mode /* * Now, waitting for the next interrupt of timer 0 * which will cause the chip enter In-sys Programming mode */}3)升级区域代码重新设置串口擦除芯片接收数据校验加密 最后一步是写一个自动升级程序,过程就是打开一个bin文件,向串口写数据,并且根据串口的返回数据进行操作。用mscomm控件或者api都行。 匈牙利命名法对程序员有百弊而无一利。 字符串对整数取余数 设计类题目 求教一下为什么MoveWindow在OnInitDialog()使用无效 执行子线程时,主窗口怎么暂停执行,并可以响应消息 vc2005中添加控件变量的问题 面试能否成功,心里比较慌,散一百分 BCGControlbar的问题。 Pro*c 编译错误-->ora81\precomp\admin\pcscfg.cfg 这个文件怎么配置阿? 请大家帮忙! 只有CFrameWnd和CWinApp,如何使用加速键 简单问题:编辑框中怎么换行?
a)带有可自动升级功能
b)写升级程序
现在的芯片一般都带有4k的额外的供升级用的flash,可以简单的这样写
用一个组合码来判断需要升级,比如说0x8b这个字符,键盘是敲不进去的,如果后面再跟着一个'u'字符,可以判断单片机升级。1)//假设读取串口字符的函数为getc()。
unsigned char data c, c1;c = getc();
if( 0x8b == c )
{
c1 = getc();
if( 'u' == c1 )
{
soft_upgrade()
}
}2)写升级程序,目的就是远程跳转到升级代码,参考芯片手册,举例如下void
soft_upgrade()
{
EA = 0; CHPENR = 0x87; //enable write attribute of CHPCON register
CHPENR = 0x59;
CHPCON = 0x03; //enter In-sys programming mode TCON = 0; //setup timer 0
IP = 0;
IE = 0x82;
TH0 = 0x80;
TL0 = 0x00;
TMOD = 0x01;
TCON = 0x10; PCON = 0x01; //enter system idle mode /*
* Now, waitting for the next interrupt of timer 0
* which will cause the chip enter In-sys Programming mode
*/
}3)升级区域代码
重新设置串口
擦除芯片
接收数据
校验
加密