|
yyyyyyyyy.jpg (745.72 KB, 下載次數(shù): 86)
下載附件
2019-1-31 14:00 上傳
- #include<pic.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define DIN RC0
- #define CS RC1
- #define CLK RC2
- uchar secs = 0;
- uchar minutes = 0;
- uchar hours = 0;
- unsigned char disbuf[8] = {1,2,3,4,5,6,7,8};
- void delay_ms(uint n)
- {
- uchar i;
- while(n--)
- {
- for(i=0;i<100;i++);
- }
- }
- void Port_Initial(void)
- {
- TRISA = 0x10;
- PORTA = 0x10;
- TRISC = 0x00;
- PORTC = 0x00;
- }
- void WriteByte(uchar dat)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- DIN = ((dat<<i)&0x80)?1:0;
- CLK = 0;
- NOP();
- CLK = 1;
- NOP();
- }
- }
- void MAX7221_WRITE(uchar addr,uchar dat)
- {
- CS = 0;
- WriteByte(addr);
- WriteByte(dat);
- CS = 1;
- }
- void MAX7221_Initial(void)
- {
- MAX7221_WRITE(0x0A,0x07);
- MAX7221_WRITE(0x0B,0x07);
- MAX7221_WRITE(0x0C,0x01);
- MAX7221_WRITE(0x0F,0x00);
- MAX7221_WRITE(0x09,0xFF);
- }
- void Display(uchar *str)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- MAX7221_WRITE(i+1,str[i]);
- }
- }
- void Time0_Initial(void)
- {
- T0CS = 1;//TOCS和T0SE配合起來實(shí)用,時(shí)T0工作在計(jì)數(shù)器狀態(tài);
- PSA = 1;
- T0IF = 0;
- T0IE = 1;
- T0SE = 1;//
- GIE = 1;//開中斷可以用ei()函數(shù)代替;關(guān)閉中斷可以用di()函數(shù)代替;
- TMR0 = 0xFF;
- }
- /*void Time0_Initial(void)//定時(shí)初始化函數(shù);
- {
- T0CS = 0;
- PSA = 1;
- T0IF = 0;
- T0IE = 1;
- GIE = 1;
- TMR0 = 0x00;
- }*/
- volatile unsigned int cnt = 0;
- void interrupt ISR(void)
- {
- TMR0 = 0xFF;
- T0IF = 0;
- //CLRWDT = 0;
- cnt ++;
- if(cnt==1)
- {
- cnt = 0;
- secs ++;
- }
- if(secs==60)
- {
- secs = 0;
- minutes ++;
- }
- if(minutes==60)
- {
- minutes = 0;
- hours ++;
- }
- if(hours==24)
- {
- hours = 0;
- }
- }
- void HEXTOBCD(void)
- {
- disbuf[0] = hours/10;
- disbuf[1] = hours%10;
- disbuf[2] = 10;
- disbuf[3] = minutes/10;
- disbuf[4] = minutes%10;
- disbuf[5] = 10;
- disbuf[6] = secs/10;
- disbuf[7] = secs%10;
- }
- void main()
- {
- Port_Initial();
- delay_ms(10);
- MAX7221_Initial();
- delay_ms(10);
- Time0_Initial();
- delay_ms(10);
- //ei();
- while(1)
- {
- HEXTOBCD();
- delay_ms(10);
- Display(disbuf);
- delay_ms(10);
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|