|
單片機74hc164秒表仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (13.17 KB, 下載次數(shù): 26)
下載附件
2018-7-15 16:33 上傳
0.png (50.47 KB, 下載次數(shù): 26)
下載附件
2018-7-15 16:34 上傳
單片機源程序如下:
- #include<iom16v.h>
- #include<macros.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define CP_L PORTC&=~BIT(0)
- #define CP_H PORTC|=BIT(0)
- #define DATA_L PORTC&=~BIT(1)
- #define DATA_H PORTC|=BIT(1)
- uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- uint num=0;
- void delay_ms()
- {
- uint i;
- for(i=0;i<1141;i++);
- }
- void delay(uchar time)
- {
- uint i;
- for(i=0;i<time;i++)
- delay_ms();
- }
- void send_data(uchar data)
- {
- uint i;
-
- for(i=0;i<8;i++)
- {
- CP_L;
- if(data&0x80)
- DATA_H;
- else
- DATA_L;
- CP_H;
- data<<=1;
- }
-
- }
- //定時1秒
- void Timer1_init()
- {
- TCCR1A=0X00;
- TCCR1B=0X04;//256分頻
- TCNT1H=0x85;
- TCNT1L=0xED;
- }
- #pragma interrupt_handler miao:9
- void miao()
- {
- TCNT1H=0x85;
- TCNT1L=0xED;
- if(num==60)
- num=0;
- num++;
- }
- void Display(uchar i,uchar j)
- {
- send_data(j);
-
- PORTC&=~BIT(i);
- delay(10);
- PORTC|=BIT(i);
- }
- void main()
- {
- DDRC=0XFF;
- Timer1_init();
- TCNT1H=0x85;
- TCNT1L=0xED;
- TIMSK|=BIT(2);
- SREG|=BIT(7);
- while(1)
- {
- Display(2,table[num%10]);
- Display(3,table[num/10]);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
74hc164_miao.rar
(28.65 KB, 下載次數(shù): 23)
2018-7-15 10:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|