打印

串口通信的程序

[复制链接]
1409|42
手机看帖
扫描二维码
随时随地手机跟帖
沙发
zhaoxqi| | 2019-1-4 19:55 | 只看该作者
一般先写串口发送/接收一个字符的,然后扩展成字符串的

使用特权

评论回复
板凳
zhaoxqi| | 2019-1-4 19:59 | 只看该作者
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。

使用特权

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

使用特权

评论回复
5
liliang9554| | 2019-1-4 20:06 | 只看该作者
我一会写个串口程序,争取能仿真出来

使用特权

评论回复
6
午夜粪车| | 2019-1-4 20:09 | 只看该作者
哦,按我的思路?

使用特权

评论回复
7
huangchui| | 2019-1-4 20:13 | 只看该作者

单片机串口通讯程序一般TI官方网站的都有参考实例的,建议上去下载一个下来调试就OK啦

使用特权

评论回复
8
jiajs| | 2019-1-4 20:16 | 只看该作者
我用单片机控制并口通信在彩色液晶模块上实现了!!

使用特权

评论回复
9
jiajs| | 2019-1-4 20:19 | 只看该作者
//单片机通过模拟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 ;


}

//本模块带读功能

使用特权

评论回复
10
spark周| | 2019-1-4 20:22 | 只看该作者
你要实现哪个处理器的?

使用特权

评论回复
11
gygp| | 2019-1-5 22:07 | 只看该作者
是什么单片机呢?            

使用特权

评论回复
12
chenci2013| | 2019-1-5 22:12 | 只看该作者
配置寄存器就行。               

使用特权

评论回复
13
biechedan| | 2019-1-5 22:12 | 只看该作者
写了几个简单的子函数?           

使用特权

评论回复
14
wangdezhi| | 2019-1-5 22:13 | 只看该作者
为了发送、接收处理方便,建议通过函数做一下处理

使用特权

评论回复
15
isseed| | 2019-1-5 22:13 | 只看该作者
教程里有吧            

使用特权

评论回复
16
xietingfeng| | 2019-1-5 22:14 | 只看该作者
没有提具体问题            

使用特权

评论回复
17
suzhanhua| | 2019-1-5 22:15 | 只看该作者
在串行通信中,收发双方对发送或接收数据的速率要有约定。

使用特权

评论回复
18
mituzu| | 2019-1-5 22:15 | 只看该作者
只要用正确的程序代码通过初始化串行口对应寄存器

使用特权

评论回复
19
hellosdc| | 2019-1-5 22:15 | 只看该作者
使用的是什么单片机呢   

使用特权

评论回复
20
uiint| | 2019-1-5 22:16 | 只看该作者
串口通信的速度怎么样

使用特权

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

本版积分规则

830

主题

11379

帖子

4

粉丝