找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 662|回复: 6
收起左侧

单片机程序不能运行

[复制链接]
ID:97678 发表于 2023-5-14 11:15 | 显示全部楼层 |阅读模式
这个程序有什么问题?
不能运行,请教大家!
    #include "stc8h.h"
    #include "plc.h"

    unsigned int sess=0,ses=0;//毫秒   秒

    /*******************************************************************************
    * 函 数 名         : Timer0Init
    * 函数功能              : 定时器0初始化
    * 输    入         : 无
    * 输    出         : 无
    *******************************************************************************/
    void Timer0Init()
    {
            TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
            TH0=0XfC;        //给定时器赋初值,定时1ms
            TL0=0X18;
            ET0=1;//打开定时器0中断允许
            EA=1;//打开总中断
            TR0=1;//打开定时器            
    }

    /*******************************************************************************
    * 函 数 名         : void Timer0() interrupt 1
    * 函数功能         : 定时器0中断函数
    * 输    入         : 无
    * 输    出         : 无
    *******************************************************************************/
    void Timer0() interrupt 1
    {
    TH1=0XfC;        //给定时器赋初值,定时1ms
    TL1=0X18;

    sess++;         //毫秒
    if(sess==1000) //1000毫秒 =1s
    {
        sess=0;        //ms 等于0
    ses++; //s 加1
    }              
    }

    /*******************************************************************************
    * 函 数 名         :main
    * 函数功能         : 主函数
    *******************************************************************************/
void main()
  {      
    times = 1;        
    Timer0Init();//定时器初始化            
    while(1)
    {  
     plc();                 
    }
  }

void plc()
    {               
//       while(1)
//       {      
       switch(times) //一开始times=1
       {
            case 1:   
                        GREEN_1=1;     
                        RED_1=0;            //东西的红绿灯
            RED_2=1;        
                        GREEN_2=0;                //南北的红绿灯
            YELLOW_1=1;               //东西的黄灯
            YELLOW_2=1;                //南北的黄灯
                      if(ses==2){times=2;ses=0;}    //s 等于0   而且回答 跳到1语句
            break;

            case 2:
            GREEN_2=1;             //南北的绿灯   高电平灭
            YELLOW_1=1;             //东西的黄灯
            YELLOW_2=0;            //南北的黄灯   
                      if(ses==3){times=3;ses=0;}    //s 等于0   而且回答 跳到1语句                        
            break;

            case 3:     
                        GREEN_1=0;         
                        RED_1=1;            //东西的红绿灯
                        RED_2=0;        
                        GREEN_2=1;                //南北的红绿灯
                        YELLOW_1=1;               //东西的黄灯
                        YELLOW_2=1;                //南北的黄灯
                      if(ses==4){times=4;ses=0;}    //s 等于0   而且回答 跳到1语句
            break;

            case 4:
            GREEN_1=1;             //南北的绿灯   高电平灭
            YELLOW_1=0;             //东西的黄灯
            YELLOW_2=1;            //南北的黄灯            
                      if(ses==2){times=5;ses=0;}    //s 等于0   而且回答 跳到1语句
            break;

            case 5:   
            GREEN_1=1;         
            RED_1=0;            //东西的红绿灯
            RED_2=1;        
            GREEN_2=0;                //南北的红绿灯
            YELLOW_1=1;               //东西的黄灯
            YELLOW_2=1;                //南北的黄灯
                      if(ses==2){times=6;ses=0;}    //s 等于0   而且回答 跳到1语句
            break;

            case 6:     
            GREEN_1=0;         
            RED_1=1;            //东西的红绿灯
            RED_2=0;        
            GREEN_2=1;                //南北的红绿灯
            YELLOW_1=1;               //东西的黄灯
            YELLOW_2=1;      
                      if(ses==2){times=1;ses=0;}    //s 等于0   而且回答 跳到1语句
            break;
          }
       }


回复

使用道具 举报

ID:883242 发表于 2023-5-14 14:42 | 显示全部楼层
times就没变化,怎么可能看到运行的效果?
回复

使用道具 举报

ID:213173 发表于 2023-5-14 15:20 | 显示全部楼层
无标题.jpg
回复

使用道具 举报

ID:291668 发表于 2023-5-14 15:32 | 显示全部楼层
没运行,首先检查硬件焊接或者接线问题。排除硬件之后,再检查软件方面的错误。一般也是先从各个模块查起,确保都能正常工作了。再去检查逻辑代码的问题。
回复

使用道具 举报

ID:1010435 发表于 2023-5-15 11:34 | 显示全部楼层
2楼对的,IO口没有初始化
回复

使用道具 举报

ID:709761 发表于 2023-5-15 15:21 | 显示全部楼层
plc.h头文件里对plc()函数 声明了吗
回复

使用道具 举报

ID:1085634 发表于 2023-6-24 18:02 来自手机 | 显示全部楼层
IO口没有初始化,所以运行不行
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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