在KEIL软件中写好程序后,通过RS232串口经MAX232芯片电平转换后能直接将程序下载到单片机STC89C51吗?

如题所述

可以,但要设置好项目选项。在其中“功能”页中有编程选项可以选择。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-27
可以到宏晶公司的官方网站上下载,STC系列单片机就是宏晶公司出的
第2个回答  2011-07-26
不能 首先经过KEIL编译生成HEX文件后,再用专门的下载软件下载追问

生成HEX文件后,用什么下载软件下载,谢谢

追答

STC isp 下载软件

追问

STC isp 下载软件在网上能下载吗

第3个回答  2011-07-27
楼上发的不是VB代码!
我来回答
....首先,串口所发的数据是有码制变化的。。分为2种情况,字符串和16进制发送。

两种方式的发送和接受方法是不同的。

先说16进制的

Dim sData() As Byte
Dim bData(1 To 6) As Byte
Dim strBuff As String

MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

bData(1) = &HE0
bData(2) = &H0
bData(3) = &H3F
bData(4) = &H0
bData(5) = &H0
bData(6) = &H1F

MSComm1.InputMode = comInputModeBinary

必须把数据先存进一个字符数组中。

下面是接收的代码
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = 2 Then

MSComm1.InputLen = 0
strBuff = MSComm1.Input
sData() = strBuff

For i = 0 To UBound(sData)
If Len(Hex(sData(i))) = 1 Then
strdata = strdata & "0" & Hex(sData(i))
Else
strdata = strdata & Hex(sData(i))
End If
Next

Text1.Text = strdata

If Text1.Text <> Text2.Text Then
Text2.Text = Text1.Text

List1.AddItem (Text2.Text)

End If

End If
End Sub

下面是发送的代码
MSComm1.Output = bData

好了16进制就是这样。
如果是字符串发送方式就简单了。。直接发送,不用存到数组中。MSComm1.Output = "abcd" 接收只需要把strBuff = MSComm1.Input放在循环中判断就行了。

说明。。一般设备控制多用字符串方法就可以了。。如投影机的控制等。而单片机的控制多用于16进制传输的方法。先要搞清楚用的什么方式。

再说编码的问题。。一般都是 明码转成ascII码再转成16进制码。然后再发送。

再解释一下用数组的理由:
单片机接受数据一般的都是一串16进制值的组合。如1f 00 00 1e ff 2c等等。。要一次发送出一个组合的数据,必须用数组存这些数据后发送这个数组!
另外,虚机团上产品团购,超级便宜
第4个回答  2011-07-27
楼上发的不是VB代码!
我来回答
....首先,串口所发的数据是有码制变化的。。分为2种情况,字符串和16进制发送。

两种方式的发送和接受方法是不同的。

先说16进制的

Dim sData() As Byte
Dim bData(1 To 6) As Byte
Dim strBuff As String

MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

bData(1) = &HE0
bData(2) = &H0
bData(3) = &H3F
bData(4) = &H0
bData(5) = &H0
bData(6) = &H1F

MSComm1.InputMode = comInputModeBinary

必须把数据先存进一个字符数组中。

下面是接收的代码
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = 2 Then

MSComm1.InputLen = 0
strBuff = MSComm1.Input
sData() = strBuff

For i = 0 To UBound(sData)
If Len(Hex(sData(i))) = 1 Then
strdata = strdata & "0" & Hex(sData(i))
Else
strdata = strdata & Hex(sData(i))
End If
Next

Text1.Text = strdata

If Text1.Text <> Text2.Text Then
Text2.Text = Text1.Text

List1.AddItem (Text2.Text)

End If

End If
End Sub

下面是发送的代码
MSComm1.Output = bData

好了16进制就是这样。
如果是字符串发送方式就简单了。。直接发送,不用存到数组中。MSComm1.Output = "abcd" 接收只需要把strBuff = MSComm1.Input放在循环中判断就行了。

说明。。一般设备控制多用字符串方法就可以了。。如投影机的控制等。而单片机的控制多用于16进制传输的方法。先要搞清楚用的什么方式。

再说编码的问题。。一般都是 明码转成ascII码再转成16进制码。然后再发送。

再解释一下用数组的理由:
单片机接受数据一般的都是一串16进制值的组合。如1f 00 00 1e ff 2c等等。。要一次发送出一个组合的数据,必须用数组存这些数据后发送这个数组!
另外,站长团上有产品团购,便宜有保证

怎么把keil上的程序烧录在单片机
要用专门的下载软件,并且要有下载线(下载器或编程器)和单片机连接才行 像STC的下载比较简单,可用RS-232串口经MAX232变为TTL信号,送入单片机串口 或USB转TTL下载线至单片机串口,USB转TTL下载线要有驱动程序

如何把程序装到单片机里?
以stc的单片机为例:\\x0d\\x0a1、用keil编程软件写好程序,编译输出为hex和二进制文件\\x0d\\x0a2、用串口电平转换板(常用MAX232芯片来做),把电脑后面的com口和单片机的(Rxd、Dxd引脚)相连,单片机还要接晶振和电源。\\x0d\\x0a3、在电脑运行stc公司提供的STC-ISP软件,把前面编译好的hex文件装...

STC 89C52单片机,用KEIL写出C程序后怎么导入到单片机。
用keil编译器编译出hex文件 然后使用STC下载软件通过串口就可以直接下载到单片机中烧录运行

关于stm32单片机通过串口下载程序电路使用ch340和max232芯片的问题
当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的标准不一样,因此要通过max232这种类似的芯片进行电平转换。MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。简言之,你的电脑已经有RS232接口,使用MAX232芯片...

ARM的串口我用CH340芯片的USB转串口替换MAX232像单片机一样来发送数...
这样做的话请注意,ARM端的软件需要写驱动程序,因为CH340芯片对于ARM来说是一个USB设备,ARM端需要usb设备驱动程序。CH340芯片是一颗USB转UART的芯片,注意不是像MAX232这样的电平转换芯片。在ARM端是不需要任何驱动程序来驱动MAX232。这点要注意,不是简单的替换。 若要替换,请注意CH340芯片设备描述...

usb转rs232再接max3232后连接单片机进行通信可行吗
可以啊,3.3V单片机就是必须经过MAX3232才能去接电脑的

51单片机里的RS232串口电压肯定不会超过5V,为什么还要MAX232电平转换...
RS232是一种接口,就是通常所说的串口,RS232接口上通信时要12V的电压才能识别,也高是相对高低电平为12V和0V,但是51单片机的高低电平为5V和0V,2者电平不一样没法通信,那中间就需要一个电平转换芯片来当翻译,MAX232就充当这个用的。USB串口是指一种能把USB信号转换成串口信号的设备。PL2303是一个...

keil中的程序下载到单片机是串口通信吗
和单片机里面编程的串行通信无关,是硬件本身的功能,你连接串口的两根线和共地线,用STC-ISP 4.8,选择单片机型号与程序位置,关闭单片机开发板,点击程序下载后再上电就可以完成烧写。通常可采用MAX232,台式机后面的串口线或USB+PL2303这两种形式,这个功能AT89C52或是AVR系列都是不具备的。

at89c51电路画好了,想要把写好的程序下载到里面
ISP软件下载到单片机里。我估计AT公司也有相应的下载程序,你上网搜搜看吧。一般我们自己做电路,需要做个max232的DB9串口转换电路,max232芯片的功能就是实现电平的转换,所以电路中是要加个串口转换电路。keil软件是生产hex文件的,不能下载哈。如果没有实物,你可以用protues软件仿真,也很方便的。

关于单片机串口、电平与笔记本串口、电平的一些问题
如果是USB口,那么需要专用芯片将USB口转成串口,这实际转化出来的是TTL电平的,可以和单片机直接通信或者下程序,或者直接给STC单片机下程序。如果是台式机上的串口,输出是RS232电平,也就是说输出电平时双极性的(正负12V),不能直接和单片机通信,或者下程序,使用MAX232是将RS232电平转换成TTL电平(0...

相似回答