- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JAVA的单片机上位机通信软件开发实训小结
淮安信息职业技术学院
面向对象编程
课程设计
题目:基于JAVA的单片机
上位机通信软件开发
作者: 周阳洁
指导老师:潘汉怀 杨 永
专业:电子信息工程(物联网)
时间:二〇一三年一月六日 摘要
随着计算机技术尤其是单片微型机技术的发展,单片机被广泛应用在工业控制系统中。在分布式控制系统中多采用单片机进行数据采集和现场控制。由于单片机的计算能力有限,难以进行复杂的数据处理,因此在功能复杂的控制系统中常采上位机下位机系统,单片机用作下位机进行数据采集和设备控制,而PC机用做上位机进行复杂的数据处理和对单片机的控制。因此如何实现PC机与单片机之间的通信具有重要的现实意义。
详细介绍了单片机与PC机通信的软硬件实现。在硬件设计中,单片机系统与PC机系统通过RS-232串行通信端口进行互连,单片机系统将由PC 机传输过来的数据信息。在软件设计中,采用设计PC上的串口通信程序。
目 录第一章 摘要 -1-
第二章 目录 -2-
第三章 硬件设计 1
3.1 显示屏行驱动电路设计 2
-3.2 显示屏列驱动电路设计 2
3.3 PC 机与AT89S51串口通信电路设计 2
第四章 软件设计 3
4.1LED显示屏程序 3
4.2 PC机程序设计 4
第五章 系统调试 5
第六章 心得体会 8
第三章 硬件设计
本项目采用单片机控制LED显示屏,单片机与PC机通信采用JAVA语言开发,系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路二是系统的配置,即按照系统功能要求配置外围设备,如显示器等,要设计合适的接口电路。Proteus软件没有驱动电流仿真能力,所以这里仅对设计电路功能仿真验证。
3.1 显示屏行驱动电路设计
从单片机输出五个信号分别输入到2 个级联的74HC154译码器(4线16),然后输出16 位行信号,接单片机PC口,虚拟串口COMPIM。
3.2 显示屏列驱动电路设计
从单片机里出来的列信号通过8个8 位74HC595 级联而成信号输出端连接16*16 的点阵LED 的输入端。
74HC595是移位寄存器(SHCP 第11脚 移位寄存器时钟输入 STCP 第12脚 存储寄存器时钟输入8 位数据,可以用它的锁存功能实现硬件电路对数据的刷新,实现点阵的动态显示。
在protues里面COMPIM可以调用实际的串口和外部通信PC 机与89c52 串口通信由RS232 转换电路、子模块地址标识电路和点阵驱动电路组成。由于采用单片机的异步串行口进行多机通信进行数据传输,单元模块应该有和其位置相对应的地址标识地址标识电路采用8 位并进串出芯片74HC595组成。LED 点阵采用动态扫描法进行驱动,并且实现16 阶灰度显示,为了节省单片机程序中扫描程序的时间消耗,提高扫描速度,显示数据采用并行输出的方法。
3-1 LED显示屏硬件电路
第四章 软件设计
4.1 LED显示屏程序对机void Sendbyte_H(unsigned char bb,unsigned char aa)
{ unsigned char j;
for(j=0;j8;j++) {
H_shcp=0; H_ds=aa0x01;
H_shcp=1; //数据在上升沿输入
aa=1; //数据右移一位 }
for(j=0;j8;j++) //循环8次移入数据 {
H_shcp=0; H_ds=bb0x01;
H_shcp=1; //数据在上升沿输入
bb=1; //数据右移一位 }
H_stcp=0; H_stcp=1; H_ds=1;}
串口中断4接受的代码
void INT_UartRcv() interrupt 4{
Rcv=SBUF-0x30; //用ASCII码转换
RI=0; //清除发送完成标志位
SBUF=Rcv; //发送数据
while(!TI); //等待发送结束
TI=0; //清发送完成标志位}
主代码
SCON=0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |=0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |=0x80; //S
原创力文档


文档评论(0)