LED灯
来源:互联网 发布:25岁程序员的出路 编辑:程序博客网 时间:2024/04/28 13:21
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mmu.h"
#include "typedef.h"
#include "S3C2451_gpio.h"
#include "S3C2451_uart.h"
//#include "S3C2451_irq.h"
//#include "S3C2451_eint.h"
void delay(unsigned int count);
void uart_init(void);
void led_init(void);
void spk_init(void);
void display(void);
U8 recvbuf[5] = {0};//5¸ö×Ö½ÚµÄÃüÁî×Ö
void Main()
{
U8 temp;
U8 i = 0;
//MMU³õʼ»¯£ºÔÚ³ÌÐò×ʼµÄʱºòµ÷ÓÃ
MMU_Init();
uart_init();
led_init();
spk_init();
while(1)
{
if(uart_isrecved(UART0))
{
temp = UART_ReceiveData(UART0);
recvbuf[i++] = temp;
if(i == 5)
{
i = 0;
}
}
else
{
display();
}
};
}
void delay(unsigned int count)
{
int j = 1000;
int i = 0;
while(--j)
for(i =count; i > 0; i --);
}
void uart_init()
{
UART_Init_Typedef uart0;
uart0.baudrate = 115200;
uart0.mode = UART_Mode_TX |UART_Mode_RX;
uart0.parity = Parity_No;
uart0.stop = STOP_1Bit;
uart0.wordwidth = WordWidth_8BIT;
UART_Init(UART0,uart0);
}
void led_init()
{
GPIO_Init_Typedef led1;
GPIO_Init_Typedef led2;
GPIO_Init_Typedef led3;
GPIO_Init_Typedef led4;
led1.pinx = GPIO_PIN_5 ;
led1.mode = GPIO_MODE_OUT;
led1.udp = GPIO_UDP_DISABLE;
led2.pinx = GPIO_PIN_6;
led2.mode = GPIO_MODE_OUT;
led2.udp = GPIO_UDP_DISABLE;
led3.pinx = GPIO_PIN_25;
led3.mode = GPIO_MODE_OUT;
led3.udp = GPIO_UDP_DISABLE;
led4.pinx = GPIO_PIN_26;
led4.mode = GPIO_MODE_OUT;
led4.udp = GPIO_UDP_DISABLE;
GPIO_Init(GPIOB,led1);
GPIO_Init(GPIOB,led2);
GPIO_Init(GPIOA,led3);
GPIO_Init(GPIOA,led4);
}
void spk_init()
{
GPIO_Init_Typedef spk;
spk.pinx = GPIO_PIN_0;
spk.mode = GPIO_MODE_OUT;
spk.udp = GPIO_UDP_DISABLE;
GPIO_Init(GPIOB,spk);
}
void display()
{
if((recvbuf[0] == 0xfe) && (recvbuf[4] == 0xff))
{
if(recvbuf[1] == 0x00)//µ¥¸öLEDµãÁÁ
{
if(recvbuf[2] == 0x00)//LED1
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
}
}
else if(recvbuf[2] == 0x01)//LED2
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
}
}
else if(recvbuf[2] == 0x02)//LED3
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
}
}
else if(recvbuf[2] == 0x03)//LED4
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
}
}
}
else if(recvbuf[1] == 0x01)//¶à¸öLEDµãÁÁ
{
if(recvbuf[2] == 0x00)//4¸öLEDÉÁ˸£¬ÑÓʱnÃë
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
delay(60000);
}
else if(recvbuf[2] == 0x01)//ÅÜÂíµÆ
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
delay(60000);
}
}
else if(recvbuf[1] == 0x02)//¿ØÖÆ·äÃùÆ÷
{
if(recvbuf[2] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_RESET);
}
else if(recvbuf[2] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_SET);
}
else if(recvbuf[2] == 0x03)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_SET);
delay(60000);
}
}
}//end if((recvbuf[0] == 0xfe) && (recvbuf[4] == 0xff))
}//end display()
#include <stdlib.h>
#include <string.h>
#include "mmu.h"
#include "typedef.h"
#include "S3C2451_gpio.h"
#include "S3C2451_uart.h"
//#include "S3C2451_irq.h"
//#include "S3C2451_eint.h"
void delay(unsigned int count);
void uart_init(void);
void led_init(void);
void spk_init(void);
void display(void);
U8 recvbuf[5] = {0};//5¸ö×Ö½ÚµÄÃüÁî×Ö
void Main()
{
U8 temp;
U8 i = 0;
//MMU³õʼ»¯£ºÔÚ³ÌÐò×ʼµÄʱºòµ÷ÓÃ
MMU_Init();
uart_init();
led_init();
spk_init();
while(1)
{
if(uart_isrecved(UART0))
{
temp = UART_ReceiveData(UART0);
recvbuf[i++] = temp;
if(i == 5)
{
i = 0;
}
}
else
{
display();
}
};
}
void delay(unsigned int count)
{
int j = 1000;
int i = 0;
while(--j)
for(i =count; i > 0; i --);
}
void uart_init()
{
UART_Init_Typedef uart0;
uart0.baudrate = 115200;
uart0.mode = UART_Mode_TX |UART_Mode_RX;
uart0.parity = Parity_No;
uart0.stop = STOP_1Bit;
uart0.wordwidth = WordWidth_8BIT;
UART_Init(UART0,uart0);
}
void led_init()
{
GPIO_Init_Typedef led1;
GPIO_Init_Typedef led2;
GPIO_Init_Typedef led3;
GPIO_Init_Typedef led4;
led1.pinx = GPIO_PIN_5 ;
led1.mode = GPIO_MODE_OUT;
led1.udp = GPIO_UDP_DISABLE;
led2.pinx = GPIO_PIN_6;
led2.mode = GPIO_MODE_OUT;
led2.udp = GPIO_UDP_DISABLE;
led3.pinx = GPIO_PIN_25;
led3.mode = GPIO_MODE_OUT;
led3.udp = GPIO_UDP_DISABLE;
led4.pinx = GPIO_PIN_26;
led4.mode = GPIO_MODE_OUT;
led4.udp = GPIO_UDP_DISABLE;
GPIO_Init(GPIOB,led1);
GPIO_Init(GPIOB,led2);
GPIO_Init(GPIOA,led3);
GPIO_Init(GPIOA,led4);
}
void spk_init()
{
GPIO_Init_Typedef spk;
spk.pinx = GPIO_PIN_0;
spk.mode = GPIO_MODE_OUT;
spk.udp = GPIO_UDP_DISABLE;
GPIO_Init(GPIOB,spk);
}
void display()
{
if((recvbuf[0] == 0xfe) && (recvbuf[4] == 0xff))
{
if(recvbuf[1] == 0x00)//µ¥¸öLEDµãÁÁ
{
if(recvbuf[2] == 0x00)//LED1
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
}
}
else if(recvbuf[2] == 0x01)//LED2
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
}
}
else if(recvbuf[2] == 0x02)//LED3
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
}
}
else if(recvbuf[2] == 0x03)//LED4
{
if(recvbuf[3] == 0x00)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
}
else if(recvbuf[3] == 0x01)
{
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
}
}
}
else if(recvbuf[1] == 0x01)//¶à¸öLEDµãÁÁ
{
if(recvbuf[2] == 0x00)//4¸öLEDÉÁ˸£¬ÑÓʱnÃë
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
delay(60000);
}
else if(recvbuf[2] == 0x01)//ÅÜÂíµÆ
{
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET);
delay(60000);
}
}
else if(recvbuf[1] == 0x02)//¿ØÖÆ·äÃùÆ÷
{
if(recvbuf[2] == 0x00)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_RESET);
}
else if(recvbuf[2] == 0x01)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_SET);
}
else if(recvbuf[2] == 0x03)
{
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_RESET);
delay(60000);
GPIO_WriteBit(GPIOB,GPIO_PIN_0,BIT_SET);
delay(60000);
}
}
}//end if((recvbuf[0] == 0xfe) && (recvbuf[4] == 0xff))
}//end display()
0 0
- led灯
- Led灯
- LED灯
- LED灯
- LED灯
- LED灯控制实验
- LED跑马灯
- 单片机LED跑马灯
- LED灯制作图纸
- 2.led灯闪烁
- MINI2440 LED灯驱动
- OK6410 LED灯驱动
- Led灯控制代码
- flash led灯
- 按键 led灯实验
- led流水灯
- LED灯 蜂鸣器
- tiny6410 LED跑马灯
- 哈夫曼
- JS的温柔一面
- Maven的pom.xml介绍
- 二叉树的最小深度
- HTML5的getCurrentPosition() 地理定位,某些浏览器报错问题
- LED灯
- 面向对象以及面向过程的区别
- this 关键字
- MySQL 基础
- 练习
- 4月13日,TestThread,每日20行。
- Java sdut acm 2787 加密术
- error,bias,var之间的关系
- 利用MFC截取对话框图像或者截取全屏图像