cc2530单片机
通电后,LED1处于灯灭的状态
第一次按下按键,LED1亮, 发送字符串"LED1点亮"
第二次按下按键,LED1灭,发送字符串"LED1熄灭"
如此循环下去
任务要求:
(1)使用串口0发送字符串
(2)串口0使用位置1
(3)串口波特57600bit/s
(4)需要对按键进行消抖处理
任务模块:
1.工程
2延时函数
3.IO初始化
4串口初始化
5发送字节函教和发送字符串函数
6.按键消抖
7.注释
8.功能完整实现并有串口数据截图
cc2530单片机
通电后,LED1处于灯灭的状态
第一次按下按键,LED1亮, 发送字符串"LED1点亮"
第二次按下按键,LED1灭,发送字符串"LED1熄灭"
如此循环下去
任务要求:
(1)使用串口0发送字符串
(2)串口0使用位置1
(3)串口波特57600bit/s
(4)需要对按键进行消抖处理
任务模块:
1.工程
2延时函数
3.IO初始化
4串口初始化
5发送字节函教和发送字符串函数
6.按键消抖
7.注释
8.功能完整实现并有串口数据截图
#include <ioCC2530.h>
#define LED1 P1_0
#define KEY1 P1_1
void delay_ms(unsigned int ms)
{
unsigned int i, j;
for (i = 0; i < ms; i++)
{
for (j = 0; j < 5355; j++)
{
}
}
}
void io_init(void)
{
P1SEL &= ~(BIT0 | BIT1);
P1DIR |= BIT0;
P1DIR &= ~BIT1;
P1INP |= BIT1;
}
void uart_init(void)
{
PERCFG |= 0x01;
P0SEL |= BIT4 | BIT5;
U0CSR |= 0x80;
U0GCR |= 11;
U0BAUD = 216;
U0CSR &= ~0x04;
}
void send_byte(unsigned char ch)
{
U0DBUF = ch;
while (!(U0CSR & 0x02))
;
U0CSR &= ~0x02;
}
void send_string(unsigned char *str)
{
while (*str != '\\0')
{
send_byte(*str++);
}
}
unsigned char key_scan(void)
{
if (KEY1 == 0)
{
delay_ms(5);
if (KEY1 == 0)
{
while (!KEY1)
;
return 1;
}
}
return 0;
}
void main(void)
{
unsigned char flag = 1;
unsigned char key_val = 0;
io_init();
uart_init();
while (1)
{
key_val = key_scan();
if (key_val)
{
if (flag)
{
LED1 = 1;
send_string("LED1点亮");
flag = 0;
}
else
{
LED1 = 0;
send_string("LED1熄灭");
flag = 1;
}
}
}
}