分享給大家這款液晶顯示屏的代碼
附件中源代碼有顯示代碼,和按鍵讀取代碼自己測試好的
單片機源程序如下:
- #include "intrins.h"
- #include "TM1721.h"
- //發(fā)送一個數(shù)據(jù)
- void TM1721_SEND(char dat)
- {
- unsigned char dat_cnt;
- for(dat_cnt=0;dat_cnt<8;dat_cnt++)
- {
- TM1721_CLK=0;
- if((dat>>dat_cnt&0x01)==0x01)TM1721_DIO=1;
- else TM1721_DIO=0;
- delayus(1);
- TM1721_CLK=1;
- delayus(1);
- }
- }
- void TM1721_COMMED(char dat)
- {
- TM1721_STB=0;
- TM1721_SEND(dat);
- TM1721_STB=1;
- delayus(5);
- }
- void TM1721_COMMED_DATA(char com,char dat)
- {
- TM1721_STB=0;
- TM1721_SEND(com);
- TM1721_SEND(dat);
- TM1721_STB=1;
- delayus(5);
- }
- //接受一個數(shù)據(jù)
- char TM1721_RECIVE()
- {
- unsigned char dat_cnt,dat=0;
- TM1721_DIO=1;
- for(dat_cnt=0;dat_cnt<8;dat_cnt++)
- {
- TM1721_CLK=0;
- delayus(5);
- TM1721_CLK=1;
- if(TM1721_DIO==1)dat|=1<<dat_cnt;
- }
- return dat;
- }
- //TM1721初始化
- void TM1721_INT()
- {
- unsigned char dat_cnt=0;
- TM1721_COMMED(TM1721_DIP_MODE);//設置顯示模式
- TM1721_COMMED(TM1721_FIXED_ADDR);//設置固定工作模式
- for(dat_cnt=0;dat_cnt<16;dat_cnt++)
- {
- TM1721_COMMED_DATA(0xc0+dat_cnt,0x0);//清空顯示寄存器
- }
- TM1721_COMMED(TM1721_DIP_ON);//打開顯示
- }
- char TM1721_CHAR(char cha)
- {
- char r_cha=0;
- switch(cha)
- {
- case 0: r_cha=1<<4|1<<6|1|1<<1|1<<2|1<<3|1;
- break;
- case 1: r_cha=1<<4|1<<6;
- break;
- case 2: r_cha=1<<4|1|1<<5|1<<2|1<<3;
- break;
- case 3: r_cha=1<<4|1<<6|1|1<<5|1<<3;
- break;
- case 4: r_cha=1<<4|1<<6|1<<5|1<<1;
- break;
- case 5: r_cha=1|1<<6|1<<1|1<<5|1<<3;
- break;
- case 6: r_cha=1|1<<6|1<<1|1<<5|1<<3|1<<2;
- break;
- case 7: r_cha=1<<4|1<<6|1;
- break;
- case 8: r_cha=1|1<<6|1<<1|1<<5|1<<3|1<<2|1<<4;
- break;
- case 9: r_cha=1|1<<6|1<<1|1<<5|1<<3|1<<4;
- break;
- case '.': r_cha=1<<7;
- break;
- case '_': r_cha=0;
- break;
- }
- return r_cha;
- }
- void TM1721_DIP(char a,char b,char c,char d,char e,char a_d,char b_d,char c_d,char d_d,char e_d)
- {
- char dip_temp[6]={0,0,0,0,0};
- //數(shù)據(jù)緩沖
- dip_temp[0]=TM1721_CHAR(e)<<4;
- dip_temp[1]=((TM1721_CHAR(e)|TM1721_CHAR(e_d))>>4)&0x0f;//第1位
- dip_temp[0]|=TM1721_CHAR(d)&0x0f;
- dip_temp[1]|=(TM1721_CHAR(d)|TM1721_CHAR(d_d))&0xf0;//第2位
- dip_temp[2]=(((TM1721_CHAR(c)|TM1721_CHAR(c_d))>>4)&0x0f)|(TM1721_CHAR(c)<<4);//第3位
- dip_temp[3]=(((TM1721_CHAR(b)|TM1721_CHAR(b_d))>>4)&0x0f)|(TM1721_CHAR(b)<<4);//第4位
- dip_temp[4]=(((TM1721_CHAR(a)|TM1721_CHAR(a_d))>>4)&0x0f)|(TM1721_CHAR(a)<<4);//第5位
- TM1721_COMMED(TM1721_FIXED_ADDR);//設置固定工作模式
- TM1721_COMMED_DATA(0xc0,dip_temp[0]);//高位顯示
- TM1721_COMMED_DATA(0xc1,dip_temp[1]);//高位顯示
- TM1721_COMMED_DATA(0xc2,dip_temp[2]);//高位顯示
- TM1721_COMMED_DATA(0xc3,dip_temp[3]);//高位顯示
- TM1721_COMMED_DATA(0xc4,dip_temp[4]);//高位顯示
- TM1721_COMMED(TM1721_DIP_ON);//打開顯示
- }
- unsigned char *TM1721_KEY_APP()
- {
- static unsigned char p[3]={0,0,0};
- TM1721_STB=0;
- TM1721_SEND(TM1721_KEY);//打開顯示
- p[0]= TM1721_RECIVE();
- p[1]= TM1721_RECIVE();
- p[2]= TM1721_RECIVE();
- return p;
- }
復制代碼
51hei.png (2.62 KB, 下載次數(shù): 49)
下載附件
2022-3-23 00:24 上傳
上圖2個文件下載 c代碼(請自行移植到各單片機平臺):
TM1721.zip
(1.54 KB, 下載次數(shù): 38)
2022-3-22 08:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|