|
PT6965驅(qū)動(dòng)數(shù)碼管電路原理圖如下:
捕獲.PNG (24.76 KB, 下載次數(shù): 52)
下載附件
2018-8-23 10:44 上傳
stm32單片機(jī)源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "key.h"
- #include "SMG.h"
- #include "timer.h"
- #define Desplay_ms 300
- int delay_s=0; int n1=0; int n2=0 ; int n3=0 ; int s=0; int n11=0; int n21=0 ; int n31=0 ;
- /*--------------0----1----2----3----4----5----6----7----8----9----A----b----C----d----E----F*/
- u8 TAB[10] = {0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00};//數(shù)碼管顯示1-
- u16 GR4GR5[2]={0xffff,0x0000};//后面兩個(gè)數(shù)據(jù)地址線所存儲(chǔ)的數(shù)據(jù)
- void LED_Desplay(void);
- int main(void)
- {
- SystemInit(); //系統(tǒng)啟動(dòng)時(shí)鐘函數(shù)的初始化時(shí)鐘時(shí)鐘為72MHz
- // NVIC_Configuration();//設(shè)置強(qiáng)占優(yōu)先級(jí)與響應(yīng)優(yōu)先級(jí)
- delay_init(); //延時(shí)函數(shù)初始化
- LED_Init(); //LED初始初始化
- KEY_Init(); //KEY初始化
- LED_text();
- SMG_Init();
- PT6965_Init();
- TIM3_Int_Init(2499,7199);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到5000為500ms
-
- //要求上電全部點(diǎn)亮,初次上電全部點(diǎn)亮
- ///////////////////
- LED_Desplay();
- while(1)
- {
- if(delay_s>4)
- {
- s=s+1;
- delay_s=0;
- }
-
- if(s>=999)//顯示每一秒變動(dòng)一次
- {
- s=0;
- }
-
-
- n1=s%10;
- n2=(s%100)/10;
- n3=s/100;
- if(n1!=n11)
- {
- if(n1==0){
- DIS_1668(0xc4,0xBF);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
-
- if(n1==1){
- DIS_1668(0xc4,0x06);
- DIS_1668(0xc5,0x0f);
- DIS_1668(0xc7,TAB[7]&0xfe);//之為0
- }
- if(n1==2){
- DIS_1668(0xc4,0xdB);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
- if(n1==3){
- DIS_1668(0xc4,0xcf);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
- if(n1==4){
- DIS_1668(0xc4,0xe6);
- DIS_1668(0xc5,0x0f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
- if(n1==5){
- DIS_1668(0xc4,0xed);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
- if(n1==6){
- DIS_1668(0xc4,0xfd);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
- if(n1==7){
- DIS_1668(0xc4,0x87);
- DIS_1668(0xc5,0x0f);
- DIS_1668(0xc7,TAB[7]&0xfe);//之為0
- }
- if(n1==8){
- DIS_1668(0xc4,0xff);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
-
- if(n1==9){
- DIS_1668(0xc4,0xef);
- DIS_1668(0xc5,0x1f);
- DIS_1668(0xc7,TAB[7]|0x01);//變?yōu)?
- }
-
- }
-
-
- if(n2!=n21)
- {
- if(n2==0){
- DIS_1668(0xc2,0xBF);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- if(n2==1){
- DIS_1668(0xc2,0x06);
- DIS_1668(0xc3,0x0f);
- TAB[6]=TAB[6]&0x7f;
- DIS_1668(0xc6,TAB[6]);//之為0
- }
- if(n2==2){
- DIS_1668(0xc2,0xdB);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n2==3){
- DIS_1668(0xc2,0xcf);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n2==4){
- DIS_1668(0xc2,0xe6);
- DIS_1668(0xc3,0x0f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n2==5){
- DIS_1668(0xc2,0xed);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n2==6){
- DIS_1668(0xc2,0xfd);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n2==7){
- DIS_1668(0xc2,0x87);
- DIS_1668(0xc3,0x0f);
- TAB[6]=TAB[6]&0x7f;
- DIS_1668(0xc6,TAB[6]);//之為0
- }
- if(n2==8){
- DIS_1668(0xc2,0xff);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- if(n2==9){
- DIS_1668(0xc2,0xef);
- DIS_1668(0xc3,0x1f);
- TAB[6]=TAB[6]|0x80;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- }
-
-
- if(n3!=n31)
- {
- if(n3==0){
- DIS_1668(0xc0,0xBF);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- if(n3==1){
- DIS_1668(0xc0,0x06);
- DIS_1668(0xc1,0x0f);
- TAB[6]=TAB[6]|0xbf;
- DIS_1668(0xc6,TAB[6]);//之為0
- }
- if(n3==2){
- DIS_1668(0xc0,0xdB);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n3==3){
- DIS_1668(0xc0,0xcf);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n3==4){
- DIS_1668(0xc0,0xe6);
- DIS_1668(0xc1,0x0f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n3==5){
- DIS_1668(0xc0,0xed);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n3==6){
- DIS_1668(0xc0,0xfd);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
- if(n3==7){
- DIS_1668(0xc0,0x87);
- DIS_1668(0xc1,0x0f);
- TAB[6]=TAB[6]&0xbf;
- DIS_1668(0xc6,TAB[6]&0xbf);//之為0
- }
- if(n3==8){
- DIS_1668(0xc0,0xff);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- if(n3==9){
- DIS_1668(0xc0,0xef);
- DIS_1668(0xc1,0x1f);
- TAB[6]=TAB[6]|0x40;
- DIS_1668(0xc6,TAB[6]);//變?yōu)?
- }
-
- }
-
- if(delay_s==2) DIS_1668(0xc6,(TAB[6] & 0xfe)); //小數(shù)點(diǎn)顯示
-
- if(delay_s==4) DIS_1668(0xc6,(TAB[6] | 0x01)); //小數(shù)點(diǎn)顯示
-
- n11=n1; n21=n2; n31=n3;
- }
- }
-
-
-
- void LED_Desplay(void)
- {
- DIS_1668(0xc0,0xff);
- DIS_1668(0xc1,0xff);
- DIS_1668(0xc2,0xff);
- DIS_1668(0xc3,0xff);
- DIS_1668(0xc4,0xff);
- DIS_1668(0xc5,0xff);
- DIS_1668(0xc6,0xff);
-
- DIS_1668(0xc7,0xff);
- DIS_1668(0xc8,0xff);
- DIS_1668(0xc9,0xff);
- delay_ms(Desplay_ms);
- DIS_1668(0xc0,0x00);
- DIS_1668(0xc1,0x00);
- DIS_1668(0xc2,0x00);
- DIS_1668(0xc3,0x00);
- DIS_1668(0xc4,0x00);
- DIS_1668(0xc5,0x00);
- DIS_1668(0xc6,0x00);
-
- DIS_1668(0xc7,0x02);
- DIS_1668(0xc8,0x49);
- DIS_1668(0xc9,0x1d);
- delay_ms(Desplay_ms);
- /////////////單色
- DIS_1668(0xc0,0x00);
- DIS_1668(0xc1,0x00);
- DIS_1668(0xc2,0x00);
- DIS_1668(0xc3,0x00);
- DIS_1668(0xc4,0x00);
- DIS_1668(0xc5,0x00);
- DIS_1668(0xc6,0x00);
-
- DIS_1668(0xc7,0x00);
- DIS_1668(0xc8,0x12);
- DIS_1668(0xc9,0x00);
- delay_ms(Desplay_ms);
-
-
- DIS_1668(0xc0,0x00);
- DIS_1668(0xc1,0x00);
- DIS_1668(0xc2,0x00);
- DIS_1668(0xc3,0x00);
- DIS_1668(0xc4,0x00);
- DIS_1668(0xc5,0x00);
- DIS_1668(0xc6,0x00);
-
- DIS_1668(0xc7,0x00);
- DIS_1668(0xc8,0xa4);
- DIS_1668(0xc9,0x02);
- delay_ms(Desplay_ms);
- ////////////////////////////////////
- DIS_1668(0xc0,0x80);
- DIS_1668(0xc1,0xff);
- DIS_1668(0xc2,0x80);
- DIS_1668(0xc3,0xff);
- DIS_1668(0xc4,0x80);
- DIS_1668(0xc5,0xff);
- DIS_1668(0xc6,0xff);
-
- DIS_1668(0xc7,0x01);
- DIS_1668(0xc8,0x00);
- DIS_1668(0xc9,0x00);
- delay_ms(Desplay_ms);
-
-
- DIS_1668(0xc0,0xc9);
- DIS_1668(0xc1,0xff);
- DIS_1668(0xc2,0xc9);
- DIS_1668(0xc3,0xff);
- DIS_1668(0xc4,0xc9);
- DIS_1668(0xc5,0xff);
- DIS_1668(0xc6,0xc0);
-
- DIS_1668(0xc7,0x01);
- DIS_1668(0xc8,0x00);
- DIS_1668(0xc9,0x00);
- delay_ms(Desplay_ms);
-
-
- DIS_1668(0xc0,0xb6);
- DIS_1668(0xc1,0xff);
- DIS_1668(0xc2,0xb6);
- DIS_1668(0xc3,0xff);
- DIS_1668(0xc4,0xb6);
- DIS_1668(0xc5,0xff);
- DIS_1668(0xc6,0xc0);
-
- DIS_1668(0xc7,0x01);
- DIS_1668(0xc8,0x00);
- DIS_1668(0xc9,0x00);
- delay_ms(Desplay_ms);
- //////////////////////////////////////
- STB_H;
- delay_ms(1);
- STB_L;
- Send_data(0X87); //打開顯示
- DIS_1668(0xc0,0xff);
- DIS_1668(0xc1,0xff);
- DIS_1668(0xc2,0x00);
- DIS_1668(0xc3,0x00);
- DIS_1668(0xc4,0x00);
- DIS_1668(0xc5,0x00);
- DIS_1668(0xc6,0x40);
-
- DIS_1668(0xc7,0x00);
- DIS_1668(0xc8,0x00);
- DIS_1668(0xc9,0x00);
- STB_H;
- delay_ms(1);
- STB_L;
- Send_data(0X8f); //打開顯示
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
PT6965 -數(shù)字顯示.rar
(307.19 KB, 下載次數(shù): 29)
2018-8-23 02:05 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|