找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5862|回复: 12
收起左侧

1602显示RS485通信主从温度发送含仿真和实物图+主机与丛机源程序

  [复制链接]
ID:358930 发表于 2018-11-9 01:46 | 显示全部楼层 |阅读模式
RS485通信小改装,在AB两线间加一个小LED灯,可实时看到是否在通信,只要一通信就闪烁,接反会常亮,换个方向让LED平时不亮,通信时闪烁就行。总玩不好通信的可参考。

制作出来的实物图如下:
20181109_013230.jpg

电路原理图如下:
15416988440950.40689689440908094.jpg

单片机程序源码(主机+丛机都有):
#include<main.h>
#include<1602.h>
#include<ds1302.h>
uchar time[]={40,27,1,9,11,5,18};        //改时间用,初始化时间2012年7月25日 23:59: 40
uchar code tab1[]="20  -  -   ";
uchar code tab2[]="T:        :  :";
uchar flag;
uchar wendu;




void delay(uint x)
{
        uint m,n;
        for(m=x;m>0;m--)
        for(n=110;n>0;n--);
}
/****
*******        串口初始化函数
*****/
void uart_init()
{
        TMOD=0x20;                //9600bps
        SCON=0x50;
        TH1=0xFD;
        TL1=0xFD;
        TR1=1;


        ES=1;
        EA=1;


        UART_EN=0;           //串口一直处于接收状态
}




void main()
{
        
        lcd_init();        
        uart_init();
        lcd_write_str(0x80,tab1);
        lcd_write_str(0xc0,tab2);
        //DS1302_set_time(&time);        //初始化时间,正常后不要,读1302自己保存的时间
        //改好时间后不要这句,再下一次程序以后从1302读时间
        while(1)
        {        
                DS1302_read_time(&time);         
                lcd_write_time(0x82,time[6]);  //年
                switch(time[5])                               //星期
                {
                        case 1:        lcd_write_str(0x8c,"MON");break;
                        case 2:        lcd_write_str(0x8c,"TUE");break;
                        case 3:        lcd_write_str(0x8c,"WED");break;
                        case 4:        lcd_write_str(0x8c,"THU");break;
                        case 5:        lcd_write_str(0x8c,"FRI");break;
                        case 6:        lcd_write_str(0x8c,"SAT");break;
                        case 7:        lcd_write_str(0x8c,"SUN");break;
                }
                lcd_write_time(0x85,time[4]);  //月
                lcd_write_time(0x88,time[3]);  //日
                lcd_write_time(0xc8,time[2]);  //时
                lcd_write_time(0xcb,time[1]);  //分
                lcd_write_time(0xce,time[0]);        //秒
                if(flag==1)                                                   //显示负温度
                {
                        lcd_write_com(0xc2);
                        lcd_write_date('-');
                        lcd_wendu(0xc6,wendu);
                }
                else                                                         //显示正温度
                {
                        lcd_write_com(0xc2);
                  lcd_write_date('+');
                        lcd_wendu(0xc3,wendu);
                        lcd_write_com(0xc6);
                        lcd_write_date('C');
                }        
        }
}
/****
*******        串口中断服务程序函数
*****/
void ser() interrupt 4
{
        static uchar string[2],i;
        if(RI)
        {
                RI=0;
                string[i++]=SBUF;
                if(i>1)
                        i=0;
                if(string[0]=='-')
                {         
                        flag=1;                                  //负温度
                }
                else
                {         
                         flag=0;
                }
                wendu=string[1];
        }        
}

20181109_013632.jpg
20181109_013131.jpg
0.png

1602显并RS485温度(仿真)OK.zip

163.9 KB, 下载次数: 214, 下载积分: 黑币 -5

评分

参与人数 2黑币 +65 收起 理由
杨雪飞 + 15 感谢分享有价值的东西
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:423388 发表于 2018-11-9 08:44 | 显示全部楼层
感谢分享有价值的东西
回复

使用道具 举报

ID:92810 发表于 2018-11-12 15:19 | 显示全部楼层
学习学习了,感谢分享了。。。。
回复

使用道具 举报

ID:63317 发表于 2019-1-29 08:39 | 显示全部楼层

感谢分享有价值的东西
回复

使用道具 举报

ID:273662 发表于 2019-3-28 20:41 | 显示全部楼层
大佬,为啥我按你的原理图和代码做出来的实物LCD1602有背光没数据呀,调过对比度和延时了,还是显示不出来,硬件应该是没问题的
回复

使用道具 举报

ID:273662 发表于 2019-3-28 20:43 | 显示全部楼层
大佬,为啥我按你的原理图和代码做出来的实物LCD屏有背光没数据呀,对比度和延时都调过了还是没用,硬件应该没啥问题,求解!
回复

使用道具 举报

ID:232052 发表于 2019-5-5 12:44 | 显示全部楼层
吴明山 发表于 2019-3-28 20:43
大佬,为啥我按你的原理图和代码做出来的实物LCD屏有背光没数据呀,对比度和延时都调过了还是没用,硬件应 ...

你们自己都不看的么   引脚改下就好使了
回复

使用道具 举报

ID:471676 发表于 2019-5-7 17:45 来自触屏版 | 显示全部楼层
太棒了
回复

使用道具 举报

ID:471676 发表于 2019-5-7 17:45 来自触屏版 | 显示全部楼层
谢谢大神的分享,很有用
回复

使用道具 举报

ID:47652 发表于 2019-5-8 20:03 | 显示全部楼层
想改个远程电压显示
回复

使用道具 举报

ID:560110 发表于 2020-6-24 22:42 | 显示全部楼层
感谢分享分享到有价值的东西
回复

使用道具 举报

ID:793949 发表于 2020-11-14 00:53 来自触屏版 | 显示全部楼层
问一下这个可以多机通信吗
回复

使用道具 举报

ID:906435 发表于 2021-4-18 10:59 | 显示全部楼层
1137221527 发表于 2019-5-5 12:44
你们自己都不看的么   引脚改下就好使了

怎么该引脚
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表