如下图所示为仿真原理图总图,整体包含RBC和VOBC两部分构成,实现RBC和VOBC之间的互相通信。首先RBC系统由八个LED显示阵列,其作用是接受VOBC发送过来的速度指令信息,包含八个二进制,一共有2^8次方显示方法,对应的是不同的速度信息,速度信息范围在0-255KM/h。RBC系统还包括三位数码管显示列车速度值,单位为KM/h。同时还包括4*4的矩阵键盘,矩阵键盘作用是RBC给VOBC发送指令信息,一共有十六钟信号产生,同时可以使用复位按键对信号进行复位清零。VOBC系统包含八个键,对应的是RBC的八个LED,同时模拟的时0-255的速度值,当VOBC向RBC发送速度指令信息的时候,RBC的数码管也会同步显示。同时还包含一位数码管,显示接受来自RBC的矩阵键盘指令。
#include /* 库函数调用 */
#include /* 库函数调用 */
#define uchar unsigned char /* 宏定义 */
#define uint unsigned int /* 宏定义 */
sbit K0 = P1 ^ 0; /*按键定义引脚 */
sbit K1 = P1 ^ 1; /*按键定义引脚 */
sbit K2 = P1 ^ 2; /*按键定义引脚 */
sbit K3 = P1 ^ 3; /*按键定义引脚 */
sbit K4 = P1 ^ 4; /*按键定义引脚 */
sbit K5 = P1 ^ 5; /*按键定义引脚 */
sbit K6 = P1 ^ 6; /*按键定义引脚 */
sbit K7 = P1 ^ 7; /*按键定义引脚 */
uchar i;
/* 数码管显示字符 */
uchar code tab[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f,
0x77, 0x7c, 0x39, 0x5e, 0x79,0x71 };
/***************************延时函数************************/
void delay( uint z )
{
uint x, y;
for ( x = z; x > 0; x-- )
for ( y = 110; y < 0; y-- )
;
}
/***************************信息发送函数************************/