⑴ 上位机与下位机通讯方式的比较

这要看哪种单片机,常用的是串口远距离是rs485,有一些高档的单片机也用CAN总线通信,这种方式汽车上常用。

http://www.ca800.com/apply/html/2007-12-7/n25043.html

上位机与下位机通信的设计初步

1 引言

现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

2 PC机与单片机8051之间的通信特点

在工业控制系统中,各种数据的采集和执行机构的控制都是由下位机或探测站来完成。由于单片机具有体积小、价格低廉、可应用于恶劣工业环境的特点,在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制。在这些应用中,单片机只是直接面向被控对象底层。而对采集到的数据进行进一步分析和处理的工作是由功能强大的主控PC机来完成的。因此,PC机和单片机之间就有着大量的数据交换。

3 PC机与单片机8051通信的硬件设计

通常PC机和单片机之间的通信是通过串行总线RS-232实现的。因此采用一种以MAX232为核心的通信接口电路。该接口电路适用于由一台PC机与多个8051单片机串行通信的设计,其原理和方法同样适用于PC机与其它单片机之间的串行数据通信。其原理框图见图1:

图1 单片机与PC机通信原理框图

该框图中,起着重要作用的是RS-232C通信接口电路。它是上位机和下位机之间信息传递的枢纽,一切数据的传输必需由它完成,上位机直接利用它的RS-232串行口,为此,采用了RS-232串行通信来接收或上传数据和指令。但RS-232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换。在此电路中,采用MAX232实现TTL逻辑电平和RS-232电平之间的相互转换。 MAX232由单一的+5V电源供电,只需配接5个高精度10μF/50V的钽电容即可完成电平转换。因此,避免了用1488和1489时必需两路电源的麻烦。转换后的串行信号TXD、RXD直接与PC机的串行口连接。如此设计,既可发挥出PC机强大的计算和显示功能,又可以体现出单片机灵活的控制功能,有利于对现场信号的实时采集、处理和监控。

3.1 8051与PC机之间的通信协议
在许多场合的测控系统中,约定PC机和8051单片机的通信协议为:
Number+Command+Length+Data+Check
Number:下位机的机号,若设计中有3台下位机,即Number 取01H,02H,03H,分别代表:#1,#2,#3号下位机;
Command:本次命令的代码;Length:本次发送数据段的字节数;
Data:要发送的数据段;
Check:1字节的校验码。
本设计只考虑一个8051单片机,故可对上述通信协议进行简化。

3.2 8051和PC机之间通信的软件设计
VB提供了串行端口控件Mscomm方便应用程序实现串行通讯,该控件屏蔽了通信过程中的底层操作,程序员应用时只需设置、监视Mscomm控件的属性和事件即可完成对串行口的初始化和数据的输入、输出工作。汇编语言是一种执行效率高、可读性强的语言。为实现通讯正常,PC机与单片机约定如下:
波特率:2400bps;
信息格式:1个起始位,8位数据位,1个停止位,无奇偶校验位;
串行口操作模式:标准异步串行通信,串行口模式1;
传送方式:PC机采用查询方式接收数据,8051单片机采用中断方式接收信息。
(1) 总体功能设计
通过综合分析,本系统至少应具备如下功能:
PC机与单片机8051都可发送和接收数据,进行可以异步串行通信;
PC机键盘输入发送给单片机8051,单片机接收PC机发来的数据并送LED显示;
单片机8051键盘的每次输入以BCD码送给单片机的LED显示,单片机发送的数据由四次按键的BCD码组成,发送时作为一个队列发送,PC机接收单片机发送来的数据并送窗口显示;
上位机程序即PC端程序采用VB6.0制作,人机界面友好,界面简洁,功能完善,下位机程序即单片机端采用汇编语言进行开发。
系统功能模块图见图2和图3。

图2 上位机模块

图3 下位机模块

(2) 通讯流程图
主程序
实现下位机即单片机8051系统的初始化,8255初始化,设置单片机串行口控制寄存器SCON,电源控制寄存器PCON,定时器T1初始化,开中断。
系统不停的对键盘和RxD线进行监测,当通过扫描发现有按键输入时,经过按键处理后就启动该模块向上位机PC端发送所检测到的键码;当单片机8051监测到RxD线上有数据到时就启动该子程序对PC发来的数据进行接收,同时经过BCD转换送单片机系统的LED进行显示以方便和PC机发送的数据进行比较,以确认通信是否正确。流程图见图4。

图4 主程序流程图

图5 数据队列发送流程图

数据队列发送子程序
当单片机8051键盘已有4次输入时,就启动该模块向上位机PC端发送所检测到的键码。流程图见图5。
键码发送子程序
当单片机8051检测到键盘有输入时,就通过按键处理启动该模块向上位机PC端发送所检测到的键码。流程图见图6。

图6 键码发送流程图

图7 数据接收流程图

图8 BCD转换流程图

数据接收子程序
当8051监测到RxD线有数据到时就启动子程序对PC发来的数据进行接收。流程图见图7。
BCD码转换子程序
该程序通过把#DATABUF中的十进制数值除以100(64H),得到的商就是百位数的BCD码,然后把余数除以10(0AH)便可以得到十位和个位的BCD码,从而得到相应的三位BCD码。在该子程序中进行双字节无符号二进制数的除法时要用到前面介绍的多字节无符号二进制数的除法算法,由于原理相似,在此不再重述。流程图见图8。在此程序中因原来的接收数据存在于#DATABUF附近,为防止发生信息覆盖故使用了暂存单元来暂时寄存除法计算的中间值。
LED显示子程序
该子程序实现对接收数据进行BCD码转换并输出到LED,采用动态显示的方式进行显示。流程图见图9:

图9 LED显示流程图

4 结束语

上位机与下位机通讯是一个应用性广,适用性强的基础设计,可以应用在变频器上。要真正做好一个具有良好人机界面及交互性,使上位机和下位机能正常高效的通讯,需要设计人员具有很强的VB和单片机汇编语言的驾驭能力。同时,需要相当程度的设计经验,这样才能对设计中出现的问题采取行之有效的解方案。本文的研究对以后进一步深入奠定了基础。

参考文献

[1> 杨恢先,黄辉先. 单片机原理及应用. 长沙:国防科技大学出版社,2003.
[2> 白 鹏,莫卫东等. VB6.0高级编程技巧. 西安:西安交通大学出版社,2002.

作者简介

朱建林(1943-) 男 教授/博士生导师 研究方向为交流调速系统与电力电子技术,计算机控制技术。
郭有贵(1968-) 男 博士生 研究方向为交流调速系统与电力电子装置,计算机控制技术。

⑵ android手机通讯录页面布局怎么做

基于android的通讯录的设计与实现

一:引言

学了android的开发与设计课后,对计算机软硬件相关知识有了一定的了解;基于此,设计与实现一个在Android系统上运行的手机通讯管理软件,实现手机通讯录的基本功能,包括:添加联系人、查看联系人、修改联系人、删除联系人、拨打电话、发送短信、查询联系人,以及联系人的导入导出功能即联系人的备份。

主要开发基于Android
的手机的通讯管理软件。以Java语言为基础,结合Android移动开发平台,并利用Android提供的SDK,实现在Android平台上运行的手机通讯录,方便广大手机用户更加便捷地对联系人的信息进行管理。该手机通讯录面向所有的Android手机用户,为他们提供更实际便捷的手机服务,具有拨号、通讯记录等基本功能。该通讯录的数据导出功能是该软件的一个特色,可以实现联系人数据导出到文本,实现数据备份。大家生活当中经常遇到手机丢失,出现故障,和其他一些事故。最担心的就是丢失手机里的电话号码。

1.1. 选题目的及意义

随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。
手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有八成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展。通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地

址、电子邮件等内容。这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

1.2. 项目背景

Android一词的本义指"机器人",同时也是Google在2007年11月5日宣布的基于Linux内核的开源手机系统的名称,中文注册商标"安致",
该平台由操作系统、中间件、用户界面和应用软件组成,是一个为移动终端打造的真正开放和完整的智能手机系统。其早期为Google开发,后由开放手机联盟( Open
Handset Alliance)开发。它采用了软件堆层(software
stack,又名以软件叠层)的架构,主要分为三部分,底层以Linux内核为基础,由C语言开发,只提供基本功能;中间层包括数据库Library和虚拟机Virtual
Machine,由C++开发;最上层是由各公司自行开发,以Java编写的各种应用软件,如通话程序,短信程序等。 二:功能需求。

根据用户需求总结出来的反映了用户需求的系统逻辑模型转换成可以实施的物理模型,把整个设计划分成单元,主要解决如何去做的问题,要想创建整个通讯录首先要通过增加联系人信息来创建通讯录。整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图所示:

从上图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责周期性

的从用户输入的内容中获取信息。

后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService(进行启动,启动后的后台服务将一直保持运行状态。同时用户界面从数据获文本信息。一方面可以避免因网络通信不畅造成界面失去响应;另一方面,后台服务可以及时更新数据,以保证数据的准确性。数据库适配器封装了所有对SQLite数据库操作的方法用户界面和后台服务会调用它来实现数据库操作。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。文本编辑器中不同功能界面之间的切换,用户可以通过点击menu键来切换到不同的功能界面,不同功能界面的切换如图

三:设计思路。

开发的基于Android手机通讯录具有十分重要的意义。可以根据客户需求的实际情况,开发一款实用的手机通讯录软件。

本设计主要是采用Android的View框架编写,部分框架运用Android中的其他组件。
当进入通讯录的增加界面时,调用的是一个用相对布局RelativeLayout的XML布局文件。其中包括了2个Button,分别实现了不同的功能。

第一个Button是保存内容,当输入联系人姓名和号码是点击保存实现此功能。说到保存,不得不说得是保存信息涉及添加新联系人的头像,姓名,手机号码,办公室电话,家庭电话,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。

第二个Button是返回,顾名思义就是从增加界面返回前一界面。

响应menu键的触发事件,设置底部菜单是否可见,并通过对底部菜单选项的监听实现底部菜单中的增加、查找、删除、菜单、退出等功能,其中菜单包括显示所有、删除所有、号码备份功能。

在联系人信息界面时通过点击menu键,会弹出通信功能框,通过与发信息、打电话、发邮件功能接口的套用来实现。

四:流程图

一个好的系统设计的步骤决定了程序是否能按照设计者的目的按时完成,是否能在规定的时间内按照设计者的要求高质量的完成程序必要的功能。并且按照标准的设计步骤对程序进行调试,测试,以及后期的优化完善,使程序更加具有健壮性和可用性。通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制定开发流程,开发流程如图4-1所示。

图4-1开发流程图

采用标准的开发流程确定系统具有用户管理功能,联系人增删改功能,通讯功能,查找功能,备份等功能。系统的功能图如4-2所示。

图4-2 系统功能图

通过对系统的功能结构的分析,设计后系统运行流程是系统运行后用户将进入通讯录主界面,可以看到联系人列表。通过点击MENU界面的增加功能选项可以新增联系人