资源简介
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语言产生正态分布的随机数的源代码
相关资源
- 7段数码管动态显示proteus仿真电路及
- proteus 仿真 电子琴
- 51单片机基于C语言双机通信
- 用C8051F单片机写的中断控制程序C语言
- c语言代码循迹智能小车+proteus仿真
- C语言实现PID控制直流电机调速含pro
- c51单片机24C01-24C16读写程序含PROTEUS仿
- 基于8051单片机的数字电压表设计
- 矩阵键盘C语言代码,proteus仿真电路
- C8051F310虚拟I2C C语言代码
- 计步器程序
- 数字PID控制器 Proteus软件仿真
- 基于51单片机Max7219驱动8×8点阵PROTEU
- C8051F120单片机C语言程序代码,经典例
- 秒表定时器+中断,带proteus仿真
- 基于单片机的数字时钟设计与实现p
- 基于proteus的计算器
- 单片机C语言,Proteus仿真,多功能闹钟
- 简易秒表时钟的设计含C语言及proteu
- 单片机课程设计电子秤电子称proteus仿
- 专业课程设计—温度控制系统-包含(
- 微波炉proteus仿真
- C8051F320 c语言 超声波测距程序 实
- 电子琴.zip
- 基于C语言的流水灯设计
- 微机接口课设 Proteus 8086 汽车控制系统
- 简易电子琴_proteus.rar
- 远程仓库湿度监测系统设计-Proteus仿真
- 51单片机超声波测距小车.rar
- 8位数字钟设计和PROTEUS仿真电路
评论
共有 条评论