找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1449|回复: 2
打印 上一主题 下一主题
收起左侧

有没哪位大神帮忙在这段程序上加入可以通过串口修改密码(现在已经可以通过串口发送)

[复制链接]
跳转到指定楼层
楼主
ID:443499 发表于 2018-12-11 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
#include <reg52.h>
#include <string.h>

#include <stdio.h>



unsigned char ch,arr[15], i = 0;
unsigned char mi_ma = 'FF23';
unsigned char count=0;        
float jd=90;               
unsigned char sz_jd=0;        
sbit pwm=P2^0;               
sbit FMQ=P2^5;
sbit led0=P2^6;
sbit led1=P2^7;



void delay1ms(unsigned int k)   //Îó2î 0us
{
    unsigned char a,b;
        
        for(k;k>0;k--){
    for(b=133;b>0;b--)
        for(a=6;a>0;a--);
        }
}
void Usart_Init(void)
{
        PCON = 0x80;                                                                        
        SCON = 0x50;                                                                        
        TMOD = 0x21;                                                                     
        TH1 = 0xF3;                                                                              
        TL1 = 0xF3;        
        ES = 1;                                                                                             
        TR1 = 1;
        EA=1;
}


void Init_timer0(void)
{
        TMOD=0X21;
  TH0 = 0xFF;
  TL0 = 0x44;
        EA=1;
        ET0=1;
        TR0=1;
}
void timer0()interrupt 1        
{
   TH0 = 0xFF;
   TL0 = 0x44;
        if(count<=sz_jd)                        pwm=1;        
        else                                              pwm=0;                             
        count++;                                      
        if(count>=200)count=0;        
}

void zhuan()
{

        pwm=0;                        
        Init_timer0();        
        Usart_Init();        
        sz_jd=jd/9+4;            

}

int main(void)
{  
  FMQ=0;
        Usart_Init();
        Init_timer0();
        while(1)
        {               

        }
}

void buf()interrupt 4
{
                if(RI == 1)                                                                              
                {
                        ch = SBUF;                                                                        
                        RI = 0;
                                if(ch == mi_ma)
                                {
                                        led0 = 0;led1 = 1;zhuan();
                                }
                                else
                                {
                                        led0 = 1;led1 = 0;FMQ=1;delay1ms(1000);FMQ=0;
                                }        
                        
                }





}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2018-12-11 15:50 | 只看该作者
程序根本不可能通过编译,怎么能 “现在已经可以通过串口发送”?unsigned char mi_ma = 'FF23';一个无符号字符型变量怎么能赋值字符串?
回复

使用道具 举报

板凳
ID:413475 发表于 2018-12-11 16:33 | 只看该作者
1.测试了一下,可以了,初始化密码"FF23" ;修改命令"xgml";修改命令发送完成后,再发送新密码即可修改
2.这个程序没用到EEPROM,断电密码会初始化;
3.再有就是串口部分需要增加纠错,否则会出问题
4.程序 通过串口修改密码.rar (1.14 KB, 下载次数: 10)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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