⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 实现了在S3C44B0开发版上的LED8位数码管的交通灯模拟。
💻 C
字号:
#include"uhal.h"
#include"keyboard.h"
#include"zlg7289.h"
#include"44b.h"
#include"def.h"

#pragma import(__use_no_semihosting_swi)  // ensure no functions that use semihosting

extern int Zlg7289SIOBand;
extern int Zlg7289SIOCtrl;
int main(void)
{
	
	U32 led1=1,led2=8,led3=8,led4=8,led5=2,led6=8,led7=8,led8=8,i=1,j=1,k=1;
	ARMTargetInit();	//开发版初始化
	Uart_Printf("\nArm Target Init OK.");
    Zlg7289_Reset();//zlg7289复位
    Delay(5);
    //No.1Road,在LED第一位显1
        ZLG7289_ENABLE();//使zlg7289占有同步串口
        Delay(5);//延时
        WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮
		WriteSDIO(led1%10);//显示个位
		Delay(1);
		WriteSDIO(ZLG7289_CMD_HIDE);//使个位数码管显示
		WriteSDIO(1);	
		Delay(1);
		
		Uart_Printf("\nNO.1 Road!.");
		ZLG7289_DISABLE();
		
		//No.2Road,在LED第5位显2
		ZLG7289_ENABLE();
		WriteSDIO(ZLG7289_CMD_DATA0|4);//数码管以方式0译码,第5个数码管亮
		WriteSDIO(led5%10);
		Delay(1);
		WriteSDIO(ZLG7289_CMD_HIDE);
			WriteSDIO(0x11);
		Delay(1);
		ZLG7289_DISABLE();
		//1路绿灯与2路红灯同时亮
	  //road1 green
      while(1)
      {
        ZLG7289_ENABLE();
        Delay(5);
        WriteSDIO(ZLG7289_CMD_DATA0|1);//数码管以方式0译码,第2个数码管亮
		WriteSDIO(led2%10);
		Delay(1);
		WriteSDIO(ZLG7289_CMD_HIDE);
		WriteSDIO(0x13);	
		Delay(1);
		ZLG7289_DISABLE();
		//road2 red
		ZLG7289_ENABLE();
        Delay(5);
        WriteSDIO(ZLG7289_CMD_DATA0|7);
		WriteSDIO(led8%10);
		Delay(1);
		WriteSDIO(ZLG7289_CMD_HIDE);
		WriteSDIO(0x93);	
		Delay(1);
		ZLG7289_DISABLE();
		Delay(15030);
        i++;
        if(i==5)
       {
       // 两路黄灯同时亮
        while(j<=5)
        {//road1 yellow
          ZLG7289_ENABLE();
          Delay(5);
          WriteSDIO(ZLG7289_CMD_DATA0|2);
		  WriteSDIO(led3%10);
		  Delay(1);
		  WriteSDIO(ZLG7289_CMD_HIDE);
		  WriteSDIO(0x15);	
		  Delay(1);
		  ZLG7289_DISABLE();
		
		//road2yellow
		  ZLG7289_ENABLE();
          Delay(5);
          WriteSDIO(ZLG7289_CMD_DATA0|6);
		  WriteSDIO(led7%10);
		  Delay(1);
		  WriteSDIO(ZLG7289_CMD_HIDE);
		  WriteSDIO(0x55);	
		  Delay(1);
		  ZLG7289_DISABLE();
		  Delay(15030);
		j++;
		
		}
		while(k<=5)
		{
		//1路绿灯与2路红灯同时亮
		//road1 red
		  ZLG7289_ENABLE();
          Delay(5);
          WriteSDIO(ZLG7289_CMD_DATA0|3);
		  WriteSDIO(led4%10);
		  Delay(1);
		  WriteSDIO(ZLG7289_CMD_HIDE);
		  WriteSDIO(0x19);	
		  Delay(1);
		  ZLG7289_DISABLE();
		//road2 green
		  ZLG7289_ENABLE();
          Delay(5);
          WriteSDIO(ZLG7289_CMD_DATA0|5);
		  WriteSDIO(led6%10);
		  Delay(1);
		  WriteSDIO(ZLG7289_CMD_HIDE);
		  WriteSDIO(0x39);	
		  Delay(1);
		  ZLG7289_DISABLE();
		  Delay(15030);
	      k++;
	    }
	   k=1;
       j=1;
       i=1;
       }
      
      }
    
     return 0;
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -