找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么单片机交通灯不发生变化?而且LCD1602显示的都是乱码呢?

[复制链接]
跳转到指定楼层
楼主



下面是程序部分
#include "traffic.h"

#include "lcdA.h"
#include "lcdB.h"
bit FLAG=0;
void menu()
{
int i;
LCD1602_Init_A();
LCD1602_Init_B();
while(1)
{
     char TIME=20;
   if(TIME>15)
                 {
                  N_S_GREEN=ON;N_S_RED=OFF;N_S_YELLOW=OFF;W_E_GREEN=OFF;W_E_RED=ON;W_E_YELLOW=OFF;
                 
                 LCD_Str_A("RUN!  TIME:    S",1,1);
                 LCD_Str_B("STOP! TIME:    S",1,1);
                 LCD_Str_A("COUNT:",2,1);
                 LCD_Str_B("COUNT:",2,1);
                 }
              else if(TIME>10)
                 {
                  N_S_YELLOW=ON;N_S_RED=OFF;N_S_GREEN=OFF;W_E_GREEN=OFF;W_E_RED=ON;W_E_YELLOW=OFF;
                  LCD_Str_A("STOP! TIME:    S",1,1);
                 LCD_Str_B("STOP! TIME:    S",1,1);
                 LCD_Str_A("COUNT:",2,1);
                 LCD_Str_B("COUNT:",2,1);
                 }
           
                     else if(TIME>5)
                 {
                  N_S_GREEN=OFF;N_S_RED=ON;N_S_YELLOW=OFF;W_E_GREEN=ON;W_E_RED=OFF;W_E_YELLOW=OFF;
                 LCD_Str_A("STOP! TIME:    S",1,1);
                 LCD_Str_B("RUN!  TIME:    S",1,1);
                 LCD_Str_A("COUNT:",2,1);
                 LCD_Str_B("COUNT:",2,1);
                 
                 
                 }
               else if(TIME>0)
                 {
N_S_YELLOW=OFF;N_S_RED=ON;N_S_GREEN=OFF;W_E_GREEN=OFF;W_E_RED=OFF;W_E_YELLOW=ON;
               
                 LCD_Str_A("STOP! TIME:    S",1,1);
                 LCD_Str_B("STOP! TIME:    S",1,1);
                 LCD_Str_A("COUNT:",2,1);
                 LCD_Str_B("COUNT:",2,1);
                 }
               else if(TIME<=0)
               {
               TIME=20;
               }
                 if(TIME>10)
                              {
                             TIMEE=TIME-10;
     
                                }
                               else
                               {
                             TIMEE=TIME;
                                }
           for(i=100;i>0;i--)
      {
       LCD_Write_3_Float_A(TIMEE,1,12);
       LCD_Write_3_Float_B(TIMEE,1,12);
       LCD_Write_3_Float_A(COUNTA,2,7);
       LCD_Write_3_Float_B(COUNTB,2,7);
      }   
           }
}void Timer0Init()

{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
EA=1;
}
void timer0( ) interrupt 1
{
int i;
static char COUNT_1S=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
COUNT_1S++;
if(COUNT_1S==20)      
  {
  COUNT_1S=0;
  TIME--;
   if(TIME=0)
    TIME=TIMERED;
   
  }
}
void ExtiInit()
{
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
}
void Exti0() interrupt 0
{
COUNTA++;
if(COUNTA==100)
  COUNTA=0;
}
void Exti1() interrupt 2
{
COUNTB++;
if(COUNTB==100)
  COUNTB=0;
}


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

使用道具 举报

沙发
ID:235200 发表于 2019-8-27 00:02 | 只看该作者
把程序中这一句  void menu() 改为void main()试试
回复

使用道具 举报

板凳
ID:581300 发表于 2019-8-27 09:23 来自手机 | 只看该作者
csmyldl 发表于 2019-8-27 00:02
把程序中这一句  void menu() 改为void main()试试

但是这个是之后主程序里面要用到的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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