资源简介
89C51双机通信的Proteus仿真及C语言收发程序,包括电路图。一个MCU发送数据,另一块接收并以ASCII数值LED显示

代码片段和文件信息
#include
#include
#define XTAL 11059200 // CPU振荡频率
#define baudrate 9600 // 波特率
#define ILEN 8 // 接收缓冲区大小
unsigned char istart; // 接收缓冲区起始
unsigned char iend; // 接收缓冲区末尾
char idata inbuf[ILEN]; // 接收缓冲区
bit have_data_arrive; //有数据被接收,用于同步显示
unsigned char ipos=0; //当前接收的数据在缓冲区的位置
//显示位控制
sbit L=P1^0; //4常0
sbit R=P1^1; //3
sbit L1=P1^2;//2
sbit R1=P1^3;//1
//定义表格
unsigned char code table[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f}; //共阴极段码表
//延时函数
void delay(unsigned char nms)
{
unsigned char xy;
for(x=0;x for(y=0;y<110;y++);
}
//数码显示
void display_2(unsigned char dd)
{
R=L=L1=R1=1;
L=1;
//P0=table[0];
//delay(1);
//L=1;
R=0;
P0=table[(dd/100)%10];
delay(1);
R=1;
L1=0;
P0=table[(dd/10)%10];
delay(1);
L1=1;
R1=0;
P0=table[dd%10];
delay(1);
R1=1;
}
//接收中断例程
static void com_isr (void) interrupt 4 using 1
{
char c;
//数据接收中断
if (RI)
{
c = SBUF; // 读数据
RI = 0; // 清除中断标志
ipos=iend & (ILEN-1);//存放位置
iend++; //调整指针
if (istart + ILEN != iend) //缓冲区未用完
{
inbuf[ipos] = c; // 写入数据到接收缓冲区
have_data_arrive=1; //告诉主程序,接收数据准备好,可以开始显示了
}
}
}
//串口初始化
void com_initialize (void)
{
istart = 0; // 清空缓冲区
iend = 0;
have_data_arrive=0;//没有数据
// 配置T1作为波特率发生器
PCON |= 0x80; // 波特率加倍
TMOD |= 0x20; // T1方式2,自动重装
TH1 = (unsigned char) (256 -(XTAL / (16L * 12L * baudrate)));
TR1 = 1; // 启动T1
SCON = 0x50;//串口方式1,允许接收
ES = 1; // 允许串行中断
}
void main (void)
{
com_initialize (); //初始化串口
EA = 1; //开总中断
while(!have_data_arrive);//等待数据到来
while (1)
{
//显示接收到的数据
display_2(inbuf[ipos ]);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2580 2009-12-30 16:53 send.c
文件 90310 2009-12-30 17:01 vterminal.DSN
文件 2209 2009-12-30 17:21 rcv.c
----------- --------- ---------- ----- ----
95099 3
- 上一篇:单功能流水线模拟
- 下一篇:使用C语言产生正态分布的随机数的源代码
相关资源
- 电子时钟 有C语言程序,PROTEUS仿真图
- Proteus 8.6仿真STM32F103C6
- Proteus仿真:动态数码管
- Proteus仿真:基于定时器的可调时钟
- Proteus仿真:DS1302(时钟or日历).rar
- Proteus仿真:LCD液晶屏显示.rar
- Proteus仿真:LED流水+定时器.rar
- Proteus仿真:PID算法输出.rar
- 单片机C语言与PROTUES仿真技能实训
- C语言实现51单片机和ADC0809芯片的AD模
- 单片机C语言程序设计实训100例完整案
- 基于单片机控制的LED点阵屏 含设计报
- 楼宇对讲系统proteus仿真+源代码
- sdcc编译器v2.9.0
- 基于proteus和51单片机的数字电子时钟
- 《单片机C语言程序设计实训100例——
- 电子线路设计CAD实验报告(proteus)
- 《大棚温湿度自动控制系统》 包括
- 单片机C语言程序设计实训100例--基于
- 51单片机简易信号发生器设计proteus仿
- 信息网络 双机通信 C++代码
- 利用Socket实现双机通信C++
- 单片机的C语言程序设计与应用——基
- 基于单片机的温控流水灯proteus仿真图
- 单片机c语言程序设计实训100例,基于
- 51单片机C语言(350例)Proteus仿真和代
- 基于单片机控制的LED点阵屏 含设计报
- 单片机C语言程序设计实训100例——基
- STC15增强型8051单片机C语言编程与应用
- 单片机C语言程序设计实训100例--基
评论
共有 条评论