PIC32數碼管例項

2021-08-01 22:32:50 字數 1638 閱讀 1535

#include

#pragma config jtagen =off

char 

led=;

//led字型檔

void spiout(char image,int len)

for(i=0;i<2;i++);//延時使資料傳輸完後鎖存,通常數碼管亂碼都是這導致的。

portsetbits(ioport_b, bit_9);//資料鎖存

}int main()

//ppsoutput(2,rpb5,sdo1);//輸出針腳組2中,查表將針腳rpb5,作為資料輸出1口sdo1.

//也可查資料手冊用另一種,以後再說

//查詢標頭檔案ppsout.h在c:\program files (x86)\microchip\xc32\v1.21\pic32-libs\include\peripheral

秒錶#include

#pragma config jtagen=off

#pragma config fpllidiv = div_2 

//振盪器配置

#pragma config fpllmul = mul_24

#pragma config fpllodiv = div_2

#pragma config fnosc = frcpll 

#pragma config fpbdiv = div_1 

//8mhz/2*24/2/1=48mhz

#pragma config fwdten = off

#pragma poscmod = off

#define period 48000 

//t=ps*period/48000000=0.001s

int n=0,sta=0,ledflag=1,butflag=0,i=0,b=0,bit1=0,bit2=0;;

char 

t[4],led=,image=;

//led 字型檔

void timer1init()//時鐘源1初始化,配置中斷等

void spiinit()//spi初始化

void __isr(_timer_1_vector,ipl2) timer(void)//中斷函式0.001s一次中斷

}void buttoninit()//按鍵初始化

for(i=0;i<2;i++);//延時使資料傳輸完後鎖存,通常數碼管亂碼都是這導致的。

portsetbits(ioport_b, bit_9);//資料鎖存

}void led(char imag[3])//秒錶換算函式 }}

image[0]=led[t[3]];

image[1]=led[t[2]];

image[2]=led[t[1]];

image[3]=led[t[0]];

spiout(image); //四個資料相互變換}

void main()//主函式

}else bit1=0;

if(portabits.ra1==0)

}else bit2=0;

switch(sta)//不同狀態執行不同函式

break; 

//秒錶開始

case 2:

break; 

//暫停}

}}//  }

數碼管顯示

數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...

數碼管顯示

一 區分數碼管的類別 共陰數碼管 即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,中該位置 1 共陽數碼管 即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,中該位置 0 二 單個數碼管顯示 a h 表示單個數碼管上面的8個led。根據共陰共陽的特性,點亮相應的led,...

數碼管原理

一 數碼管內部構造 數碼管也稱led數碼管,晶美 光電 不同行業人士對數碼管的稱呼不一樣,其實都是同樣的產品。數碼管按段數可分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多乙個發光二極體單元 多乙個小數點顯示 按能顯示多少個 8 可分為1位 2位 3位 4位 5位 6位 7位等數碼管 按發光二極...