打印

怎样编写单片机的串口通信的程序,一般的步骤是怎么样的?

[复制链接]
917|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2014-3-26 18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhaoxqi| | 2014-3-26 18:54 | 只看该作者
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。

使用特权

评论回复
板凳
午夜粪车| | 2014-3-26 18:58 | 只看该作者
确定T1的工作方式(编程TMOD寄存器);
计算T1的初值,装载TH1、TL1;
启动T1(编程TCON中的TR1位);
确定串行口控制(编程SCON寄存器);
串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。

使用特权

评论回复
地板
liliang9554| | 2014-3-26 18:58 | 只看该作者
我一会写个串口程序,争取能仿真出来

使用特权

评论回复
5
午夜粪车| | 2014-3-26 19:00 | 只看该作者
哦,按我的思路?

使用特权

评论回复
6
huangchui| | 2014-3-26 19:01 | 只看该作者
单片机串口通讯程序一般TI官方网站的都有参考实例的,建议上去下载一个下来调试就OK啦

使用特权

评论回复
7
jiajs| | 2014-3-26 19:10 | 只看该作者
我用单片机控制并口通信在彩色液晶模块上实现了!!

使用特权

评论回复
8
jiajs| | 2014-3-26 19:11 | 只看该作者
//单片机通过模拟IO对并口彩色液晶模块的写操作子函数
//M057P256 8位并口彩色液晶模组(半反半透、阳光可视型)
//8051上通过验证
#define WR_XLADDR 0x00                //0000        写入x坐标低地址addr[7:0]
#define WR_XHADDR 0x01                //0001        写入X坐标高地址addr[9:8]
#define WR_YLADDR 0x02                   //0010        写入y坐标地址addr[7:0]

#define WR_2XLADDR 0x0c                //1100        写入清屏结束x坐标低地址addr[7:0]
#define WR_2XHADDR 0x0d                   //1101        写入清屏结束X坐标高地址addr[9:8]
#define WR_2YLADDR 0x0e                //1110        写入清屏结束y坐标地址addr[7:0]

#define WR_FRONT 0x04                //0100        写入8bit的RGB数据,作为8bit前景色
#define WR_BACK 0x06                   //0110        写入8bit的RGB数据,作为8bit背景色
#define WR_DATA 0x08                //1000        写入8bit数据到数据寄存器 / 读出8bit数据

#define WR_CLR 0x09                        //1001        清屏指令
#define WR_CTRL 0x0a                        //1010        写入8bit数据到控制寄存器

#define LDIS 0x0b                           //1011        定义LCD寄存器开关显示命令指令
#define LDPWM 0x05                           //0101        定义LCD寄存器pwm调节亮度


//MCU硬件连接映射
sbit CS     = P2^7;                      //片选信号,低电平有效
sbit M_WR    = P3^6;                        //写选通,低电平有效
sbit M_RD   = P3^7;                        //读选通,低电平有效

#define WRn_DATA  P0                        //硬件连接的数据总线

//====================================================================================
//函数名称:wr_adata(uchar adata,uchar add)
//函数功能:向地址写入8bit数据
//入口参数:        uchar adata        要写入的数据
//                uchar add        要写入的地址
//返回:无   
//====================================================================================
void wr_adata(uchar adata,uchar add)
{
         //送地址
         P2 = (P2&0xf0)|add;        //P2的低4位为地址线

        //送数据
         WRn_DATA = adata;

        //片选拉低
         CS = 0 ;

        //写选通拉低
         M_WR = 0 ;

//        delay(10);        //此处可以根据实际情况加适当的延时

        //写选通拉高
         M_WR = 1 ;

        //片选拉高
         CS = 1 ;


}

//本模块带读功能

使用特权

评论回复
9
yszong|  楼主 | 2014-3-26 19:17 | 只看该作者
好的,我看看

使用特权

评论回复
10
yszong|  楼主 | 2014-3-26 19:18 | 只看该作者
那就结贴了哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝