访问电脑版页面

导航:老古开发网手机版51单片机AT89C51单片机

转:AT89C51的串口和电脑的串口进行通信

导读:
关键字:
串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如你可以把写入单片机的数据码显示在电脑上,如可以使用一个按键,当按下它时使某一个字母如:AA,通过单片机的串口将它发送到电脑上显示,起到仿真器的某些功效,站长在开发数据采集设备时就是通过串口来检查数据正确与否的。

    51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。本网站的提供的实验板上已经装配好了全部硬件。

串口通讯的硬件电路如上图所示

    为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。

  

    点击这里可以下载并运行这个串口调试软件这是一个绿色的软件,无需安装,可以直接在当前位置运行这个软件。软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源,这时只要按下K1一次,在串口调试助手软件的接收区界面中就会增加一个“AF”字符,表示单片机向电脑发送“AF”字符成功。串口实验的源程序如下所示:

;这是一个AT89C51单片机实验开发板向PC机的串口单向发送数据AF的演示程序
;采用MAX232专用芯片作RS232/TTL电平转换.
;通讯波特率为4800KBPS,只要按下一次K1(就是P3.6引脚变成低电平)
;就发送一个16进制的AF字符

ORG 0000H
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置

WRIT:JB P3.6,$;判断K1是否按下,如果没有按下就等待
ACALL DELAY10;延时10毫秒消触点抖动
JB P3.6,WRIT;去除干扰信号
JNB P3.6,$;等待按键松开

MOV A,#0AFH;将16进制的字符AF发送到串口去
MOV SBUF,A;将AF通过串口发送出去

AJMP WRIT

;10毫秒延时子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET

END

来源:   作者:  2006/9/25 16:50:53
栏目: [ AT89C51单片机]

相关阅读

转:AT89C51的串口和电脑的串口进行通信

AT89C51\52的编程原理

AT89C51单片机电话遥控报警器电路的设计

[转载]基于AT89C51型单片机的号音自动播放器设计

基于AT89C51单片机的温度检测系统硬件电路设计

基于AT89C51单片机的贪吃蛇游戏代码设计

AT89c51与AT89S51单片机的区别

基于AT89C51单片机的LED汉字点阵滚动显示屏设计

基于AT89C51单片机的RS232-GPIB控制器设计

基于AT89C51单片机的双向通信FSK系统设计与实现

以AT89C51单片机为控制核心的低成本高精度倒计时系统设计

AT89C51单片机对智能语音拨号报警系统的设计

AT89C51/8通道ADC0809电压采集器,功能在完善中。

基于AT89C51单片机的算术运算计算器系统设计

AT89C51/55构成温湿度自动监测系统

基于AT89C51单片机在变频调速恒压供水系统中的应用

基于AT89C51单片机的高性能直流稳压电源控制电路设计

最常用的51芯片——AT89C51单片机简介

采用AT89C51单片机设计的变频调速控制系统

以AT89C51单片机为核心的发光二极管阵列控制系统设计