讲解51单片机蓝牙模块(ATK-SPP-HC06从机串口)的使用方法。
#include <AT89X51.H>
#include <intrins.h> // 函数原形定义
#define uchar unsigned char
#define uint unsigned int void main (void); // 主函数
void LED_OUT(uchar X); // LED单字节串行移位函数
void LED_print (uchar p, uchar x) ; unsigned char code LED_0F[]; // LED字模表 sbit DIO = P1^0; //串行数据输入
sbit RCLK = P1^1; //时钟脉冲信号——上升沿有效
sbit SCLK = P1^2; //打入信号————上升沿有效 uchar Buffer[4] = {0}; //从串口接收的数据 // 全局变量
uchar LED[8]; //用于LED的8位显示缓存 void Delay_1ms(uint i)//1ms延时
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
} void Init(void)
{
TMOD = 0x20; //8 位自动重装计数
PCON &= 0x7f;
SCON = 0x50;//串行口控制寄存器 SM1=1,SM0=0方式一波特率可变
TH1 = 0xFD; //设置波特率 9600
TL1 = 0xFD;
TR1 = 1; //启动定时器1
TI = 0;
RI = 0;
ES = 1; //开串口中断
EA = 1; //开总中断
} // 主程序
void main (void)
{
Init();//初始化 LED_print (0x80, 0x0F); //显示启动信息 while(1)
{
switch(Buffer[0])
{
case 0x30: LED_print (0x01, 0); break;
case 0x31: LED_print (0x01, 1); break;
case 0x32: LED_print (0x01, 2); break;
case 0x33: LED_print (0x01, 3); break;
case 0x34: LED_print (0x01, 4); break;
default : LED_print (0x80, 0x0E); break;
}
}
} void Com_Int(void) interrupt 4
{
EA = 0;
if (RI == 1) //当硬件接收到一个数据时,RI会置位
{
Buffer[0] = SBUF ; //这里减去48是因为从电脑中发送过来的数据是ASCII码。// Buffer[0] = SBUF-48 ;
RI = 0;
}
EA = 1;
} void LED_print (uchar p, uchar x)
{
unsigned char code *led_table; // 查表指针
uchar i;
unsigned long loop; led_table = LED_0F + x;
i = *led_table; LED_OUT(i);
LED_OUT(p); RCLK = 0;
RCLK = 1; for(loop = 0; loop < 230; loop++);
} void LED_OUT(uchar X)
{
uchar i;
for(i=8;i>=1;i--)
{
if (X&0x80) DIO=1; else DIO=0;
X<<=1;
SCLK = 0;
SCLK = 1;
}
} unsigned char code LED_0F[] =
{
//0 1 2 3 4 5 6 7 8 9 A b C d E F -
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xbf
};

最新文章

  1. SharePoint 禁用本地回环的两个方法
  2. MySQL作业
  3. GC垃圾回收之GC.KeepAlive方法
  4. OLAP、OLTP的介绍和比较 via csdn
  5. RMAN 备份与恢复深入解析(二)
  6. android90 bind方式启动服务service调用service里的方法
  7. ANDROID_MARS学习笔记_S03_008_GOOGLEMAP2
  8. MySQL--query-cache
  9. SQL Server 数据库游标选项
  10. 易宝网上支付平台的PHP接口代码
  11. STM32开发指南-按键输入实验
  12. AJAX基础_AJAX获取PHP数据
  13. 校园网IPv6加速
  14. python-基于tcp协议的套接字(加强版)及粘包问题
  15. Spring中你可能不知道的事(二)
  16. Linux系统时间同步方法小结
  17. item 5: 比起显式的类型声明,更偏爱auto
  18. python tkinter-按钮.标签.文本框、输入框
  19. 如何让网站在百度有LOGO展示
  20. Java vs C++ (7)导入

热门文章

  1. TeamViewer---Linux远程控制利器
  2. Quartz(1)--框架简介
  3. Sqoop-将MySQL数据导入到hive orc表
  4. C#抽象类和接口
  5. Docker 简单应用
  6. 四十八 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能
  7. 51nod 1287 线段树
  8. 配置管理puppet
  9. 【Python】小技巧
  10. app支付宝支付java服务端代码