欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
AVR單片機Atmega16電子時鐘程序+仿真,內部定時器實現
[打印本頁]
作者:
哈哈151-
時間:
2019-5-14 16:34
標題:
AVR單片機Atmega16電子時鐘程序+仿真,內部定時器實現
Atmega16電子時鐘,內部定時器,有可調鬧鐘。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(14.83 KB, 下載次數: 88)
下載附件
2019-5-14 19:05 上傳
單片機源程序如下:
#include <iom16v.h>
#include <macros.h>
#define key_bz 0b00000111
char smg_zx[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f};// 全局變量
char hour=12;
char min;
char sec;
char nz_hour=12;
char nz_min=1;
char mode=0;
char set;
void delay_ms(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
{
for(j=0;j<570;j++);
}
}
// 用定時器實現定時
void T0_init(void)// 端口初始化函數
{
TIFR=0XFF;
TCCR0=0X0B; //64FENPIN, CTC MODE
TCNT0=0;
OCR0=250;
TIMSK=0X02;
}
void port_init(void)// 端口初始化函數
{
DDRC |= 0b11110000; // PC4 5 OUT PUT
PORTC |= 0b00111111; //m103 output only
PORTD = 0x00; // 上電關閉數碼管, 因為上電電壓不穩
DDRD = 0xff;
DDRB |= 0b11100000; // PC5 6 7OUT PUT
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();//smg_zx[0]=1;
T0_init();
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//miao=45;
void key (void)
{
if(!(PINC&0X01))
{
delay_ms(2);
if(!(PINC&0X01))
{
TIMSK=0X00;
mode++;
mode%=3;
set=0;
if(mode==0)TIMSK=0X02;
while(!(PINC&0X01));
}
}
if(!(PINC&0X02))
{
delay_ms(2);
if(!(PINC&0X02))
{
if(mode==1)
{
set++;
set%=3;
}
if(mode==2)
{
set++;
set%=2;
}
while(!(PINC&0X02));
}
}
if(!(PINC&0X04))
{
delay_ms(2);
if(!(PINC&0X04))
{
if(mode==1)
{
if(set==0)
{
hour++;
hour%=24;
}
if(set==1)
{
min++;
min%=60;
}
if(set==2)
{
sec++;
sec%=60;
}
}
if(mode==2)
{
if(set==0)
{
nz_hour++;
nz_hour%=24;
}
if(set==1)
{
nz_min++;
nz_min%=60;
}
}
while(!(PINC&0X04));
}
}
}
//主函數
void main()
{/// 變量聲明
char zz;
// 調用初始化哈數
//port_init();
init_devices();
// 特定代碼
while(1)
{
if(mode==0)
{
PORTD=~smg_zx[hour/10]; // 給5的字形編碼
PORTB|=1<<PB6;//選中PC6
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[hour%10]; // 給5的字形編碼
PORTB|=1<<PB7;//選中PC7
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[min/10]; // 給5的字形編碼
PORTC|=1<<PC7;//選中PC7
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[min%10]; // 給5的字形編碼
PORTC|=1<<PC6;//選中PC6
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[sec/10]; // 給5的字形編碼
PORTC|=1<<PC5;//選中PC5
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[sec%10]; // 給5的字形編碼
PORTC|=1<<PC4;//選中PC4
delay_ms(2);
PORTC&=0B00001111;//
}
else if(mode==1)
{
PORTD=~smg_zx[hour/10]; // 給5的字形編碼
PORTB|=1<<PB6;//選中PC6
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[hour%10]; // 給5的字形編碼
if(set==0) PORTD&=0x7f;//控制小數點亮
PORTB|=1<<PB7;//選中PC7
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[min/10]; // 給5的字形編碼
PORTC|=1<<PC7;//選中PC7
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[min%10]; // 給5的字形編碼
if(set==1) PORTD&=0x7f;//控制小數點亮
PORTC|=1<<PC6;//選中PC6
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[sec/10]; // 給5的字形編碼
PORTC|=1<<PC5;//選中PC5
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[sec%10]; // 給5的字形編碼
if(set==2) PORTD&=0x7f;//控制小數點亮
PORTC|=1<<PC4;//選中PC4
delay_ms(2);
PORTC&=0B00001111;//
}
else if(mode==2)
{
PORTD=~smg_zx[nz_hour/10]; // 給5的字形編碼
PORTB|=1<<PB6;//選中PC6
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[nz_hour%10]; // 給5的字形編碼
if(set==0) PORTD&=0x7f;//控制小數點亮
PORTB|=1<<PB7;//選中PC7
delay_ms(2);
PORTB&=0B00111111;//
PORTD=~smg_zx[nz_min/10]; // 給5的字形編碼
PORTC|=1<<PC7;//選中PC7
delay_ms(2);
PORTC&=0B00001111;//
PORTD=~smg_zx[nz_min%10]; // 給5的字形編碼
if(set==1) PORTD&=0x7f;//控制小數點亮
PORTC|=1<<PC6;//選中PC6
delay_ms(2);
PORTC&=0B00001111;//
}
if((hour==nz_hour)&&(min==nz_min))//鬧鐘
{
if(zz++>20)
{
PORTB^=1<<PB5;//選中Pb5
zz=0;
}
}
else
PORTB|=1<<PB5;//選中Pb5
key ();
}
}
//T0中斷服務程序 // 2ms 進入中斷
#pragma interrupt_handler timer0_ocf_isr:20
void timer0_ocf_isr(void)
{static int count=0;
if(++count>=500)
{ count=0;
sec++;
if(sec>=60)
{
sec=0;
min++;
if(min>=60)
{
min=0;
hour++;
hour%=24;
}
}
}
}
復制代碼
所有資料51hei提供下載:
仿真測試.rar
(30.95 KB, 下載次數: 119)
2019-5-14 16:33 上傳
點擊文件名下載附件
atmega16時鐘
下載積分: 黑幣 -5
作者:
春風十里吹
時間:
2019-5-15 00:29
正找算開始整這個了,現在出來先看看路數
作者:
Miyano
時間:
2019-12-17 22:10
這個的原理是什么呢
作者:
huguocheng_51
時間:
2019-12-19 11:00
這個niu
作者:
lky12345
時間:
2020-12-8 17:08
請問按鍵是什么作用
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1