首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于MDB/ICP协议的自动售卖系统的主控制器
来源:本站整理  作者:佚名  2011-06-05 09:18:49



2 硬件系统结构
在MDB/ICP总线协议基础上,笔者构建了一个实际的自动售卖系统,系统原理图如图6所示。VMC通过MDB总线与投币机、读钞机和读卡器交互,控制外设的运转,并从外设获得用户的支持情况。同时,VMC也负责处理与用户之间的交互,驱动液晶显示,处理键盘输入,驱动符合用户需要的电机运转出货。在本项目中,VMC还需通过MODEM自动拨号连接公司总线的服务器,将销售数据传送回公司。


如图6所示,所有MDB外设均挂在同一总线上,由总线提供24V和5V的电源,数据线与单片机的串口相连。
本项目中选用的单片机为DALLAS DS5002FP。该单片机代码级兼容MCS-51系列单片机,在使用外存的情况下仍然可以使用4个PO作为数据I/O,带外设的能力较强。但它只有一个串口,控制MDB总线和控制MODEM都需要使用串口,因此必须将串口进行复用。通过一个译码器实现选通功能。
3 MDB/ICP会话控制
将VMC与外设之间通过MDB总线的会话分为四个层次:
(1)串口初始化
初始化串口时,主要工作是设置波率(9600)和传输方式(11位)。为顺利获得9600波特率,单片机采用的晶振为11.0592MHz。源代码如下(采用Franklin C51语言编写):
// 一点常量定义
#define uchar unsigned char
#define T_RESPONSE 0xee //*5.0毫秒*/
#define MAX_BLOCK_SIZF 36 /*数据块最大长度*/
#define ERR_TIME_OUT 0x81 /*超时*/
#define ERR_NO_MODE_BIT 0x82*/未收到最后字节*/
#define ERR_CHECKSUM 0x83 /*校验和错*/
#define ACK 0x00
#define RET 0xaa
#define NAK 0xff
//初始化串口
void InitSerialPort()
{
SCON = 0xd0; //设置串口为方式3(9bit)
TMOD &=0x0f;
TMOD I=0x20; //设置定时器1为方式2
TR1 =1; //定时器1使能
TH1 = 0xfd; //设定波行率:9600 NRZ
PCON &=0x7f; //Set SMOD=0
RI=0;
TI=0;
}

    (2)字节的传送
这里需要注意的是:发送数据时要根据需要设置方式位,而接收数据时要返回方式位的值,以判断是否收完所有数据。
// 传送字节
void TransmitByte(uchar byte,bit mode)
//形参:byte——准备发送的字节
// mode——预备要设置的方式位
{
TB8=mode; //设置方式位
SBUF = byte; //发送字节
While(!TI); //等待发送完毕
TI=0;
}
//接收字节
#pragma dISAble
uchar ReceiveByte(uchar *byte,uchar *bMode)
//形参:*byte——返回接收到的字节值
// *bMode——返回接收到的字节的方式位
//返回值:0—超时,1—成功接收

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:83,207.03000 毫秒