×

AVR单片机对数码管数据P0口与P2口的控制设计资料下载

消耗积分:3 | 格式:pdf | 大小:61.85KB | 2021-04-11

贾桂林

分享资料个

//数码管数据P0口,数码管控制P2口#include#include#include#include#include#define code PROGMEM#define uchar unsigned char#define uint unsigned intcode const ucharLED_7[16] = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of +code const uchar position[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};ucharTIme[4]; //时间计数volaTIle uchar disp_buff[8]; //显示缓冲区volaTIle ucharTIme_count = 0;volatile uchar point_on = 0;volatile uchar posit = 0;volatile uchar time_10ms_ok = 0;void time_to_dispbuff(void);void time1_init(void);void time0_init(void);void display(void);int main(void){PORTA = 0xff;DDRA = 0xff;PORTC = 0xff;DDRC = 0xff;time[0] = 00;//1/10sectime[1] = 30;//sectime[2] = 59;//minutetime[3] = 23;//hourtime_to_dispbuff();time1_init();sei();while(1){if(time_10ms_ok){time_10ms_ok = 0;if(++time[0]》=100){time[0] = 0;point_on = ~point_on;if(++time[1]》=60){time[1] = 0;if(++time[2]》=60){time[2] = 0;if(++time[3]》=24){time[3] = 0;}}}}time_to_dispbuff();}}}void time0_init(void){TCCR0 = 0x05;TCNT0 = 0xea;TIFR |= 0x02;TIMSK |= 0x02;}void time1_init(void){TCCR1A = 0x00;TCCR1B = 0x01;TCNT1 = 0xa99a;//TCNT1H = 0xa9;//TCNT1L = 0x9a;TIFR |= 0x80;TIMSK |= 0x80;}SIGNAL(SIG_OVERFLOW1){TCNT1 = 0xa99a;display();if(++time_count 》=5){time_10ms_ok = 1;time_count = 0;}}void display(void){PORTC = 0xff;PORTA = pgm_read_byte(&led_7[disp_buff[posit]]);if(point_on && ((posit==2)||(posit==4)||(posit==6)))PORTA &= 0x7f;PORTC = pgm_read_byte(&position[posit]);if(++posit》=8)posit = 0;}void time_to_dispbuff(void){uchar i,j=0;for(i=0;i《=3;i++){

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !