标题: 1602显示RS485通信主从温度发送含仿真和实物图+主机与丛机源程序 [打印本页]

作者: 冰冰洁洁    时间: 2018-11-9 01:46
标题: 1602显示RS485通信主从温度发送含仿真和实物图+主机与丛机源程序
RS485通信小改装,在AB两线间加一个小LED灯,可实时看到是否在通信,只要一通信就闪烁,接反会常亮,换个方向让LED平时不亮,通信时闪烁就行。总玩不好通信的可参考。

制作出来的实物图如下:


电路原理图如下:


单片机程序源码(主机+丛机都有):
#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 (323.45 KB, 下载次数: 48)

20181109_013632.jpg

20181109_013131.jpg (281.86 KB, 下载次数: 34)

20181109_013131.jpg

0.png (14.99 KB, 下载次数: 37)

0.png

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

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


作者: rex236    时间: 2018-11-9 08:44
感谢分享有价值的东西
作者: gemxie    时间: 2018-11-12 15:19
学习学习了,感谢分享了。。。。
作者: WFX777888    时间: 2019-1-29 08:39

感谢分享有价值的东西
作者: 吴明山    时间: 2019-3-28 20:41
大佬,为啥我按你的原理图和代码做出来的实物LCD1602有背光没数据呀,调过对比度和延时了,还是显示不出来,硬件应该是没问题的
作者: 吴明山    时间: 2019-3-28 20:43
大佬,为啥我按你的原理图和代码做出来的实物LCD屏有背光没数据呀,对比度和延时都调过了还是没用,硬件应该没啥问题,求解!
作者: 1137221527    时间: 2019-5-5 12:44
吴明山 发表于 2019-3-28 20:43
大佬,为啥我按你的原理图和代码做出来的实物LCD屏有背光没数据呀,对比度和延时都调过了还是没用,硬件应 ...

你们自己都不看的么   引脚改下就好使了
作者: shenchaoshi    时间: 2019-5-7 17:45
太棒了
作者: shenchaoshi    时间: 2019-5-7 17:45
谢谢大神的分享,很有用
作者: 榆林上校    时间: 2019-5-8 20:03
想改个远程电压显示
作者: fendou-奋斗    时间: 2020-6-24 22:42
感谢分享分享到有价值的东西
作者: STC1931    时间: 2020-11-14 00:53
问一下这个可以多机通信吗
作者: 飞得更高zzw123    时间: 2021-4-18 10:59
1137221527 发表于 2019-5-5 12:44
你们自己都不看的么   引脚改下就好使了

怎么该引脚




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1