TM1638 驅(qū)動數(shù)碼管顯示模塊
單片機源程序如下:
- #include "TM1638.h"
- int LED_Buff[8];
- void TM1638_writeByte(unsigned char Num) //寫入數(shù)據(jù)函數(shù)
- {
- int i;
- for (i = 0; i < 8; i++)
- {
- CLK = 0;
- if(Num & (0x01))
- DIO = 1;
- else
- DIO = 0;
- CLK = 1;
- Num >>= 1;
- }
- }
- void TM1638_write_CMD(unsigned char cmd) //發(fā)送控制命令函數(shù)
- {
- STB = 1;
- STB = 0;
- TM1638_writeByte(cmd);
- }
- //用于LED顯示亮度,開關控制
- void TM1638_Disp_Ctl(unsigned char DispCtl)
- {
- STB = 0;
- DispCtl |= 0x80;
-
- TM1638_writeByte(DispCtl);
-
- STB = 1;
- }
- //把buffer里的數(shù)據(jù)送到TM1638的顯示寄存器里面
- void TM1638_Refresh()
- {
- int i;
- STB = 0;
- TM1638_writeByte(0x40); //設置數(shù)據(jù)命令
- STB = 1;
- STB = 0;
- TM1638_writeByte(0xC0); //設置顯示地址
-
- for(i=0;i<8;i++)
- {
- switch(LED_Buff[i])
- {
- case 0 : TM1638_WriteData(0x00,0x00);break;
- case 1 : TM1638_WriteData(0x06,0x00);break;
- case 2 : TM1638_WriteData(0x5b,0x00);break;
- case 3 : TM1638_WriteData(0x4f,0x00);break;
- case 4 : TM1638_WriteData(0x66,0x00);break;
- case 5 : TM1638_WriteData(0x6d,0x00);break;
- case 6 : TM1638_WriteData(0x7d,0x00);break;
- case 7 : TM1638_WriteData(0x07,0x00);break;
- case 8 : TM1638_WriteData(0x7f,0x00);break;
- case 9 : TM1638_WriteData(0x5f,0x00);break;
- }
-
- // TM1638_writeByte(LED_Buff[i]);
- }
-
- STB = 1;
-
- //TM1638_Disp_Ctl( TM1638_DSP_LIGHT07 | TM1638_DSP_ON );
-
- }
- void LED_disp(unsigned int num)
- {
- // unsigned int num = A / 1000;
- // unsigned int B = A - num*1000;
- // LED_Buff[7] = B % 10;
- // LED_Buff[6] = B / 10 % 10;
- // LED_Buff[5] = B / 100 % 10;
- LED_Buff[4] = num % 10;
- LED_Buff[3] = num / 10 % 10;
- LED_Buff[2] = num / 100 % 10;
- LED_Buff[1] = num / 1000 % 10;
- LED_Buff[0] = num / 10000 % 10;
- TM1638_Refresh();
- }
- void TM1638_WriteData(unsigned char num1,unsigned char num2)
- {
- TM1638_writeByte(num1);
- TM1638_writeByte(num2);
- }
復制代碼
所有資料51hei提供下載:
TM1638.zip
(80.49 KB, 下載次數(shù): 66)
2019-7-30 22:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|