打印
[应用相关]

怎么完成单片机与PC机通信?

[复制链接]
4010|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
surewin36|  楼主 | 2007-8-12 18:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人想做一个单片机与PC机通信操作的实验,看过资料,但有些地方不明白,请大家帮忙:
   它们的通信是要通过MAX232吗?MAX232还用不用接8250,然后再接九针插头?它们的电路图应该怎么接?
   书上还说要对8250编程,那么,是通过甚么方式对它编程呢?难道像8255直接用单片机编写进去就行吗?
    最后,请问怎么用编程,可以直接用键盘去控制单片机呢?
    希望哪位高手能提供一些合适的参考资料,谢谢!
沙发
surewin36|  楼主 | 2007-8-12 22:53 | 只看该作者

怎么用电脑键盘控制单片机?

    请大家指导一下:怎么使得PC机与单片机通信,让电脑的键盘直接去控制单片机?(本人是新手,请详细指导,谢谢!)

使用特权

评论回复
板凳
sanxinwork| | 2007-8-15 22:14 | 只看该作者

单片机与PC机通信程序

设计单片机与PC机通信程序,程序功能为:当计算机通过键盘输入方式发送一个字符后,单片机收到此字节并立即回发原字节。
ORG 0000H
         LJMP CSH;                ;转初始化程序
ORG 0023H
         LJMP  Break               ;转串行口中断程序
ORG 0050H
CSH: MOV TMOD, #20H           ;设置定时器1为方式2
       MOV TL1, #0F4H             ;若晶振为11.0592M,设置波特率为2400bit/s
       MOV TH1, #0F4H
       MOV PCON, #00H
       SETB TR1                  ;启动定时器1
       MOV SCON, #50H            ;串行口初始化 方式1 REN=1
       SETB EA                   ;允许串行口中断
       SETB ES
ABC::LJMP  ABC                ;转其它主程序(略)
Break:CLR  EA                   ;关中断
        CLR  RI                    ;清串行口中断标志
        PUSH  DPL                 ;保护现场
        PUSH  DPH
        PUSH  ACC                     
        MOV  A, SBUF            ;接收PC机发送的数据
        MOV  SBUF, A              ;将数据回送给PC机
    WAIT:JNB  TI, WAIT           ;等待发送
           CLR  TI
           POP  ACC              ;发送完,恢复现场
           POP  DPH
           POP  DPL
           SETB  EA              ;开中断
           RETI                     ;中断返回
程序中将SCON设置为50H,SM0、SM1为0、1,即串行口工作方式1,REN为1,允许串口接收。另外,注意中断总允许位EA为1,串行中断位ES为1,即允许串行口中断。因系统硬件电路设计晶振为11.0592M时,T1初值设为F4时,通信波特率为2400bit/s。 

使用特权

评论回复
地板
sanxinwork| | 2007-8-15 22:16 | 只看该作者

电路













串行通信接口电路
郑州三芯电子设计工作室   www.sanxinwork.net

使用特权

评论回复
5
mcu_abc| | 2007-8-22 18:52 | 只看该作者

可以用RS232和USB等与电脑通信

搂主说的是用RS232通信的情况,也就是常说的串口。这个情况下,MCU至少要提供常说的UART接口(很多情况下,数据手册里不称之为UART,而是叫别得什么,比如:USART, SCI等等,总之能模拟UART接口就行,软件模拟也可以!)。但是UART接口并不等于RS232,因为电平不同,所有的MCU都不能直接驱动RS232,这使需要一个线路驱动(line-driver ic)IC来完成,也就是你说的MAX232或者ST232之类的IC(这类IC的名字多半带有232这几个数字)。有了ST232做驱动,你就可以用电缆连接PC的串口乐。

软件上考虑,你需要在单片机上编程控制UART外设,比如设置波特率,数据位宽度等。在PC端,你需要Windows串口编程经验,无非是几个API的调用,比如CreateFile("COM1", ...), ReadFile(hComm, ...)等等。如果你不想编程, 也OK, 你用Windows自带HyperTerminal足以。

如果你的串口通信连接OK乐,那么键盘控制单片机板就容易了。打开HyperTerminal设置好通信参数(波特率,数据位宽度,有无奇偶位等等),然后连接,你在键盘上敲打的每一个字符会通过PC转发到单片机板上去。反之单片机发送给PC的字符也会显示在HyperTerminal窗口上。

使用特权

评论回复
6
wet999| | 2007-12-14 20:07 | 只看该作者

PC端用VB的 MSCOM 控件

PC端用VB的MSCOM控见是很容易实现的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

33

帖子

0

粉丝