《现代电子技术》2006年第21期摘录:陶锋等:凌阳16位单片机与上位
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
陶锋等:凌阳16位单片机与上位机串行通信实现放在开机初始化部分,也就是说单片机上电后TX,RX引脚仅处于激活状态,通信中断并未打开。而P—UART‘一Commandl单元的设置放在菜单控制程序中,当单片机向PC机发送数据时,只设置其第6位,即TXRDY信号触发位;当单片机接收PC机数据时,只设置其第7位,即RXRDY信号触发位。同时为了防止单片机连续响应TxRDY或RXR[)Y信号触发,在检测到数据传递结束后,强制对PuARTCommandl赋值Ox0000,关闭通信中断。3.3单片机数据接收和发送程序设计单片机采用中断方式与上位机进行数据通信。当上位机已经处于接收状态时,在单片机上传通信控制菜单中打开发送通信中断,即对PUART(;ommandl单元赋值0x0040,这时单片机将内部RAM指定地址中的数据发送给上位机,并对发送数据进行计数,发送结束后,自动显示“上传完毕”提示字样。单片机准备接收上位机发来的数据时,在下载通信菜单中打开接收中断,即对PUART(;ore—mandl单元赋值Ox0080,同时提示“准备好”字样,等待上位机发送数据,计数器准备计数,接收来的数据暂存在单片机RAM指定地址中,接收完毕后,自动显示“下载完毕”提示字样。单片机数据发送程序流程如图3所示。图3单片机发送数据程序流程图接收程序流程类似发送流程。数据发送部分程序:r2一[C—Sendl:。lag]j‘nzLSendDatarl—r1LSR4r1一r1I,SR4//发送数据高8位rPUART[)ata]一r1gotoLExitINTLSend[)ata:r4一lCSendNumlr4一r4+1rCSendNum]一r4//发送数据低8位rPUART[)ata]一r1数据接收部分程序:r1一rPUART【)ata]r2一[c—RecFlag]lnzLShiftDatar3一CRecI)atar1一r1LSL4r1一r1LSL4lr3l—r1gotoI。Exit1NTI。Shift【)ata:r2一rCReeNum]r3一CReel)atar4一lr3l//组合数据字r4j—r1r2一r2+1rCReeNum]一r2callWriteF。lashWordA4结语采用MAX232器件简化了硬件接口电路设计,提高了可靠性。单片机采用中断方式进行数据通信,提高了(;PIJ的利用率。把PUARTCommandl单元的设置放在菜单控制程序中,并在数据传递结束后关闭通信中断,避免了非法数据的传递。上述通信接口和程序经过实际运行表明,系统工作稳定、可靠,发送和接收数据正确。文中介绍方法也适用于其他型号单片机串行通信设计。参考文献[1]罗亚非.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社,2003.[2]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1995.[3]李华.Mcs一51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.[4]李群芳,张士军.单片微型计算机与接口技术[M].北京:电子工业出版社,2005.作者简介陶锋男,1979年出生,安徽淮北人,硕士,安徽工业大学电气信息学院教师。研究方向为数字图像处理,计算机应用。
阅读此文(图):
点击此处在线翻阅