找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5448|回复: 0
收起左侧

求补全代码 PC机与单片机双向通信(注释详细的源程序)

[复制链接]
ID:430780 发表于 2019-3-13 19:19 | 显示全部楼层 |阅读模式
//-----------------------------------------------------------------
//  名称: PC机与AT89C52单片机双向通信
//-----------------------------------------------------------------
//  说明: 单片机可接收PC机发送的数字字符,按下单片机K1按键时,单片机
//  可向PC机发送字符串.在Proteus环境下完成本实验时,需要
//  先安装Virtual Serial Port Driver和串口调试助手软件.
//  建议在VSPD中将COM3和COM4设为对联端口.Proteus中设COMPIM
//  为COM4,在串口助手中选择COM3,完成配置后即可实现单片机程序
//  与XP下串口助手软件之间的双向通讯.
//  本例缓冲为4个数字字符,缓冲满后新接收的字符从缓冲前面存放
//  (环形缓冲),覆盖原来放入的字符.
//  如果发送的数字串中遇到"#"号则从缓冲起始位置开始存放.
//
//-----------------------------------------------------------------
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#define INT8U  unsigned char
#define INT16U unsigned int
#define FREQ  11059200 //振荡器频率11.0592MHz
INT8U code SEG_CODE[] =  //共阴数码管数字段码表,最后为"-"的段码
{ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40 };
INT8U R[] = {10,10,10,10}; //保存接收到的四位数字(初始时为4个"-")
//-----------------------------------------------------------------
// 延时程序
//-----------------------------------------------------------------
void delay_ms(INT16U x) {INT8U t; while(x--) for(t = 0; t<120; t++);}
//-----------------------------------------------------------------
// 串口初始化(使用Timer1定时器)
//-----------------------------------------------------------------
void Init_USART_uT1()
{
       //启动定时器T1
}
//-----------------------------------------------------------------
// 串口初始化(使用T2定时器) (当T2CON寄存器的RCLK,TCLK二者之一置位,
// T2即工作于波特率发生器模式,TH2-TL2溢出时,RCAP2H-RCAP2L重装TH2-TL2)
//-----------------------------------------------------------------
void Init_USART_uT2()
{
       //启动定时器T2
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
}
//-----------------------------------------------------------------
// 串口接收中断
//-----------------------------------------------------------------
void receive_4_digit() interrupt 4
{
}
//-----------------------------------------------------------------
// INT0中断发送字符串
//-----------------------------------------------------------------
void EX_INT0() interrupt 0
{
INT8U *s = "这是由8051单片机发送的字符串!!!\r\n";
INT8U i = 0;



}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表