LabVIEW控制51数码管显示
LabVIEW版本:LabVIEW2015 32位
51单片机:STC89C52RC
Keil版本:μVision V5.14.2
数码管模块:TM1638数码管控制模块
实现功能:
LabVIEW通过串口连接51单片机控制数码管的显示
1、LabVIEW程序:
2、51单片机工程文件列表
2.1、main.c文件
/**
***************************************************************************************
* 文 件:工程主函数文件
* 芯 片:STC89C52RC
* 创 建:hx
* 时 间:2018-8-21
***************************************************************************************
*/
#include <reg51.h> //51系列单片机头文件
#include "tm1638.h" //TM1638模块实现头文件
#include "uart.h" //串口实现头文件
sbit LED0 = P2^0; //LED0
sbit LED1 = P2^1; //LED1
/**
***************************************************************************************
* 函 数:工程主函数
* 参 数:无
* 返回值:无
***************************************************************************************
*/
void main()
{
unsigned int num=0; //计数
TM1638_Init(); //TM1638初始化
UART_Init(); //串口初始化
while(1)
{
num++;
if(num==30000)
{
LED0 = !LED0; //LED0亮灭转换,指示程序正常运行
num = 0;
}
if(RxComplete == 1) //接收完成
{
TM1638_Tube(TubeDispCmd[0],TubeDispCmd[1],TubeDispCmd[2]); //数码管显示
RxComplete = 0; //清除接收完成标志
}
}
}
2.2、tm1638.h文件
/**
***************************************************************************************
* 文 件:TM1638模块实现头文件
* 创 建:hx
* 时 间:2018-6-21
***************************************************************************************
*/
void TM1638_WriteData(unsigned char Data); //TM1638写数据函数
void TM1638_WriteAddressData(unsigned char addr,unsigned char Data); //TM1638指定地址写数据函数
unsigned char TM1638_Read(void); //TM1638读数据函数
void TM1638_Light(unsigned char light,unsigned char state); //TM1638指定LED灯亮灭函数
/** 参 数:light:LED灯序号;0:选中所有LED灯;1~8:选中第1~8个LED灯;
* 参 数:state:0灭1亮 */
void TM1638_Tube(unsigned char tube,unsigned char num,unsigned char state); //TM1638数码管显示函数
/** 参 数:tube:数码管序号;0:选中所有数码管;1~8:选中第1~8个数码管;
* 参 数:num:要显示的数字,0-F;16:-;
* 参 数:state:状态,0不带小数点,1带小数点,2灭 */
unsigned char TM1638_ReadKey(void); //TM1638读键扫数据函数
/** 返回值:读取的按键号,1~8;无按键按下时返回0 */
void TM1638_Init(voi