初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2020-11-17
- 在线时间
- 43 小时
|
30金钱
SMG.C
#include "smg.h"
#include "delay.h"
#include "myiic.h"
//段数码表
const volatile u8 Digital_Table[11]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,};
//写入数码管的四位变量
u8 Dig1_Data=0;
u8 Dig2_Data=0;
u8 Dig3_Data=0;
u8 Dig4_Data=0;
//Function:void TM1650_SendCommand(u8 CMD1,u8 CMD2)
{
IIC_Start();
IIC_Send_Byte(CMD1);
IIC_Wait_Ack();
IIC_Send_Byte(CMD2);
IIC_Wait_Ack();
IIC_Stop();
}
//Function: TM1650_SendDigData
//note: 发送Dat到Dig
//Input: Dig,显存地址
// Dat,显示数据
void TM1650_SendDigData(u8 Dig,u8 Dat)
{
IIC_Start();
IIC_Send_Byte(Dig);
IIC_Wait_Ack();
IIC_Send_Byte(Dat);
IIC_Wait_Ack();
IIC_Stop();
}
void TM1650_Init(void)
{
IIC_SCL=1;
IIC_SDA=1;
TM1650_SendCommand(0x48,0x71);
TM1650_SendDigData(0x68,Digital_Table[0]);
TM1650_SendDigData(0x6A,Digital_Table[0]);
TM1650_SendDigData(0x6C,Digital_Table[0]);
TM1650_SendDigData(0x6E,Digital_Table[0]);
}
void DisplayNumber_4BitDig(u16 num)
{
Dig1_Data=Digital_Table[num/1000];
Dig2_Data=Digital_Table[num/100%10]&0x08;
Dig3_Data=Digital_Table[num/10%10];
Dig4_Data=Digital_Table[num%10];
}
//=============================================================================
//Function: DigitalScan
//note: 数码管扫描
//=============================================================
void DigitalScan(void)
{
TM1650_SendDigData(DIG0,Digital_Table[Dig1_Data]);
TM1650_SendDigData(DIG1,Digital_Table[Dig2_Data]);
TM1650_SendDigData(DIG2,Digital_Table[Dig3_Data]);
TM1650_SendDigData(DIG3,Digital_Table[Dig4_Data]);
}
MAIN.C
int main(void)
{
u16 num;
extern float ANG;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(9600);
SystemInit();
RS485_Init();
LED_Init();
TIM4_Enable(5000);
TM1650_Init();
num=ANG*100;
while(1)
{
LED_RUN=1;
TM1650_SendDigData(0x68,Digital_Table[0]);//数码管直接显示0
TM1650_SendDigData(0x6A,Digital_Table[0]);
TM1650_SendDigData(0x6C,Digital_Table[0]);
TM1650_SendDigData(0x6E,Digital_Table[0]);
if(++num>9999)
{
num=0;
}
DisplayNumber_4BitDig(num);
DigitalScan();
delay_us(200);
}
}
我弄的是TM1650四路数码管模块,工控板供电后,数码管一点反应没有,用了LED试了下,LED亮了,说明程序在运行,数码管就是不亮,求大神指点
|
|