• AVR128单片机 USART通信控制发光二极管显示


    一、系统方案
    在这里插入图片描述
    在这里插入图片描述
    二、硬件设计
    原理图如下:
    在这里插入图片描述
    三、单片机软件设计
    1、首先是系统初始化
    void port_init(void)
    {
    PORTA = 0xFF;
    DDRA = 0x00;//输入
    PORTB = 0xFF;//低电平
    DDRB = 0x00;//输入
    PORTC = 0xFF;//低电平
    DDRC = 0xFF;//输出
    PORTE = 0xFF;
    DDRE = 0xfE;//输出
    PORTD = 0xff;
    DDRD = 0xFB;//输出
    PORTD = 0xff;
    PORTF = 0xFF;
    DDRF = 0xFF;//输出
    PORTG = 0xFF;
    DDRG = 0xFF;//输出
    }

    2、数码显示程序
    unsigned char rev_buf[10]={0x00,0x00,0x00};
    unsigned char display_flag=0;
    unsigned char led_mode=0;
    void display(void)
    {
    PORTF =table[led_mode];

    }
    3、按键程序
    if((PINA&0x01)==0x00)//按键
    {
    delay_ms(200);
    while((PINA&0x01)==0x00);
    Uart0_Transmit(0x00); /发送数据/
    Uart0_Transmit(0x0D);
    Uart0_Transmit(0x0A);
    }
    else if((PINA&0x02)==0x00)//按键
    {
    delay_ms(200);
    while((PINA&0x08)==0x00);
    Uart0_Transmit(0x01); /发送数据/
    Uart0_Transmit(0x0D);
    Uart0_Transmit(0x0A);
    }
    else if((PINA&0x04)==0x00)
    {
    delay_ms(200);
    while((PINA&0x01)==0x00);
    Uart0_Transmit(0x02); /发送数据/
    Uart0_Transmit(0x0D);
    Uart0_Transmit(0x0A);
    }
    4、核心算法程序
    #pragma interrupt_handler uart1_rx_isr:iv_USART1_RXC
    void uart1_rx_isr(void)
    {
    static unsigned char len=0;
    rev_buf[len++]=UDR1;
    //Uart_Transmit(rev_buf[len-1]);
    if((rev_buf[len-1]==0x0d)&&(rev_buf[len-2]==0x0a))
    {
    len=0;
    display_flag=1;
    }
    }

    #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
    void uart0_rx_isr(void)
    {
    static unsigned char len=0;
    rev_buf[len++]=UDR0;
    //Uart_Transmit(rev_buf[len-1]);
    if((rev_buf[len-2]==0x0d)&&(rev_buf[len-1]==0x0a))
    {
    len=0;
    led_mode=rev_buf[0];
    display_flag=1;
    }
    }
    四、 proteus仿真设计
    Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
    在这里插入图片描述

  • 相关阅读:
    怎样在PDF上直接编辑文字?这几种编辑方法需要掌握
    C Primer Plus(6) 中文版 第3章 数据和C 3.6 参数和陷阱
    微信小程序检查版本更新
    深入理解Kafka核心设计与实战原理 笔记
    Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus
    C++过河卒问题
    jdbc-升级 水果库存系统 BaseDao 添加 执行复杂查询方法
    2022年12月 电子学会青少年软件编程 中小学生Python编程 等级考试一级真题答案解析(选择题)
    linux使用终端多开分屏
    分享几个常用的国外英文论文文献数据库,先收藏再说
  • 原文地址:https://blog.csdn.net/bbxyliyang/article/details/132650821