国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
51單片機18B20+TM1620共陰極數碼管顯示溫度
[打印本頁]
作者:
eng
時間:
2021-6-9 02:04
標題:
51單片機18B20+TM1620共陰極數碼管顯示溫度
程序是18B20溫度傳感器+TM1620,我使用的是共陰極數碼管。
1.png
(192.09 KB)
下載附件
2021-6-9 02:02 上傳
部分源碼:(完整源碼請下載附件)
#include "tm1260.h"
//---重定義關鍵詞---//
void sendDataToTM1620(unsigned char sdata){
//在時鐘的上升沿進行移位寫入,低位先傳
unsigned char a;
stb = 0;
_nop_();
_nop_();
for(a=0;a<8;a++){
if(sdata&0x01)
din = 1;
else
din = 0;
sdata >>= 1;
clk = 0;
_nop_();
_nop_();
clk = 1;
}
}
void initialTM1620(int temp){
unsigned char i,TempNum[4]={0};
unsigned char code TubYinNum[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };//0-9 //共陰極
unsigned char code TubYanNum[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };//0-9
TempNum[0] = TubYinNum[temp/100];//溫度十位
TempNum[1] = TubYinNum[temp%100/10];//溫度個位
TempNum[1] = TempNum[1]|0x80;//加上小數點
TempNum[2] = TubYinNum[temp%10];//溫度小數點
stb = 1;
din = 1;
clk = 1;
_nop_();
stb = 0;
sendDataToTM1620(0x02);//顯示模式設置,設置為6個GRID,8個SEG
stb = 1;
_nop_();
stb = 0;
sendDataToTM1620(setAddrMode);//固定地址 44
// sendDataToTM1620(0x0C);//顯示寄存器的c0H單元開始
//地址數據清零
for(i=0;i<3;i++){//因為控制的是3位數碼管,所以這里循環只有3
stb = 1;
_nop_();
stb = 0;
_nop_();
sendDataToTM1620(0xc0+i*2);//選擇要寫入的地址
sendDataToTM1620(TempNum[ i]);//寫入數值
}
//設置亮度和開關
stb = 1;
_nop_();
stb = 0;
_nop_();
//0x88是最暗的,8F是最亮的這期間的數可以任意選
//當時還帶著藍牙模塊,大體測了下亮度設為88的情況下電流好像是120ma左右(圖片是80的亮度),8F大約是180ma左右。
sendDataToTM1620(0x88);//顯示控制參數,點亮數碼屏幕,亮度可以通過改變低三位調節
stb = 1;
_nop_();
}
void OffTM1620()
{//息屏函數
stb = 1;
_nop_();
stb = 0;
_nop_();
sendDataToTM1620(0x80);//關閉顯示
stb = 1;
_nop_();
}
復制代碼
51單片機數碼管溫度顯示.rar
(287.15 KB, 售價: 2 E幣)
2021-6-9 02:03 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0