یه برناه کد ویژن دارم کلی روش زحمت کشیدم میکروی روی برنامه مگا32 هست میخوام به مگا 16 تبدیلش کنم اما نمیشه
راهی هست بدون اینکه برنامه رو از اول بنویسم تبدیل بنمایم؟
راهی هست بدون اینکه برنامه رو از اول بنویسم تبدیل بنمایم؟

/******************************************************* This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project :digital oclock whit ds1307 Version :1.1 Date : 1/30/2015 Author :designed by saman asadi & mahdi zamani Company : Comments:eca.ir/forums Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *******************************************************/ #include <mega32.h> #include <delay.h> // I2C Bus functions #include <i2c.h> // DS1307 Real Time Clock functions #include <ds1307.h> #include <stdio.h> // Alphanumeric LCD functions #include <alcd.h> //#define hezargan {PORTB.3=1;PORTB.0=0;} //#define sadgan {PORTB.0=1;PORTB.1=0;} //#define dahgan {PORTB.1=1;PORTB.2=0;} //#define yekan {PORTB.2=1;PORTB.3=0;} //#define res {PORTC =0xff;PORTB = PORTB & 0xF0;} #define hezargan PORTB=0B0000001; #define sadgan PORTB=0B0000010; #define dahgan PORTB=0B0000100; #define yekan PORTB=0B0001000; #define res {PORTC =0xff;PORTB = PORTB & 0xF0;} #define led PORTA.4 #define delay 100 #define delay1 10 unsigned char h=0,m=0,s=0,select=0,wile=0; signed char yan=0,dan=0,san=0,han=0,zoj=0; unsigned char common_anode[16]={192,249,164,176,153,146,130,248,128,144,160,131,198,161,134,142}; void main(void) { DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=P Bit6=P Bit5=P Bit4=P Bit3=P Bit2=P Bit1=T Bit0=T PORTD=(1<<PORTD7) | (1<<PORTD6) | (1<<PORTD5) | (1<<PORTD4) | (1<<PORTD3) | (1<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // Bit-Banged I2C Bus initialization // I2C Port: PORTD // I2C SDA bit: 1 // I2C SCL bit: 0 // Bit Rate: 100 kHz // Note: I2C settings are specified in the // Project|Configure|C Compiler|Libraries|I2C menu. i2c_init(); // DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0 rtc_init(0,0,0); // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 4 // D5 - PORTA Bit 5 // D6 - PORTA Bit 6 // D7 - PORTA Bit 7 // Characters/line: 16 lcd_init(16); rtc_set_time(12,12,12); while (1) { rtc_get_time(&h,&m,&s); //secend led _________________________________________________ if(s>=10) { zoj=s%10; if(zoj==0||zoj==2||zoj==4||zoj==6||zoj==8) led=1; if(zoj==1||zoj==3||zoj==5||zoj==7||zoj==9) led=0; } if(s<10) { zoj=s; if(zoj==0||zoj==2||zoj==4||zoj==6||zoj==8) led=1; if(zoj==1||zoj==3||zoj==5||zoj==7||zoj==9) led=0; } //secend led _________________________________________________ //menu _______________________________________________________ if(PIND.7==0) { select++; if(select>4) select=0; switch (select) { case 1: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); han++; if(han>1) han=0; if(san>2&&han==1) { PORTB=0B00001111; PORTC = common_anode[14]; delay_ms(500); han=0; san=1; } } hezargan; PORTC = common_anode[han]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 2: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); san++; switch (han) { case 1:if(san>2) san=0; default:if(san>9) san=0; } } sadgan; PORTC = common_anode[san]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 3: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); dan++; if(dan>5) dan=0; } dahgan; PORTC = common_anode[dan]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 4: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); yan++; if(yan>9) yan=0; } yekan; PORTC = common_anode[yan]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; } h=han*10+san; m=dan*10+yan; rtc_set_time(h,m,s); } //menu _______________________________________________________ //sec=0_______________________________________________________ if(PIND.6==0) { led =1; while(PIND.6==0); rtc_set_time(h,m,0); PORTB=0B00000001; PORTC = common_anode[15]; delay_ms(500); } //sec=0_______________________________________________________ han=h/10; san=h%10; dan=m/10; yan=m%10; //seg========================================================================================= if(han!=0) { hezargan; PORTC = common_anode[han]; delay_ms(delay1); res; } sadgan; PORTC = common_anode[san]; delay_ms(delay1); res; dahgan; PORTC = common_anode[dan]; delay_ms(delay1); res; yekan; PORTC = common_anode[yan]; delay_ms(delay1); res; //seg======================================================================================= // if(select!=0) // { // PORTB=0; // delay_ms(200); // } }; };
/***************************************************** This program was produced by the CodeWizardAVR V2.05.3 Standard Automatic Program Generator © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 04/03/2015 Author : clinic_pc Company : Comments: Chip type : ATmega16A Program type : Application AVR Core Clock frequency: 8/000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16a.h> #include <i2c.h> #include <delay.h> #include <stdio.h> #include <ds1307.h> #include <alcd.h> //#define hezargan {PORTB.3=1;PORTB.0=0;} //#define sadgan {PORTB.0=1;PORTB.1=0;} //#define dahgan {PORTB.1=1;PORTB.2=0;} //#define yekan {PORTB.2=1;PORTB.3=0;} //#define res {PORTC =0xff;PORTB = PORTB & 0xF0;} #define hezargan PORTB=0B0000001; #define sadgan PORTB=0B0000010; #define dahgan PORTB=0B0000100; #define yekan PORTB=0B0001000; #define res {PORTC =0xff;PORTB = PORTB & 0xF0;} #define led PORTA.4 #define delay 100 #define delay1 10 unsigned char h=0,m=0,s=0,select=0,wile=0; signed char yan=0,dan=0,san=0,han=0,zoj=0; unsigned char common_anode[16]={192,249,164,176,153,146,130,248,128,144,160,131,198,161,134,142}; void main(void){ { // Declare your local variables here DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0); // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=P Bit6=P Bit5=P Bit4=P Bit3=P Bit2=P Bit1=T Bit0=T PORTD=(1<<PORTD7) | (1<<PORTD6) | (1<<PORTD5) | (1<<PORTD4) | (1<<PORTD3) | (1<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // I2C Bus initialization // I2C Port: PORTD // I2C SDA bit: 1 // I2C SCL bit: 0 // Bit Rate: 100 kHz // Note: I2C settings are specified in the // Project|Configure|C Compiler|Libraries|I2C menu. i2c_init(); // DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0 rtc_init(0,0,0); // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 4 // D5 - PORTA Bit 5 // D6 - PORTA Bit 6 // D7 - PORTA Bit 7 // Characters/line: 16 lcd_init(16); } rtc_set_time(12,12,12); while (1) { rtc_get_time(&h,&m,&s); //secend led _________________________________________________ if(s>=10) { zoj=s%10; if(zoj==0||zoj==2||zoj==4||zoj==6||zoj==8) led=1; if(zoj==1||zoj==3||zoj==5||zoj==7||zoj==9) led=0; } if(s<10) { zoj=s; if(zoj==0||zoj==2||zoj==4||zoj==6||zoj==8) led=1; if(zoj==1||zoj==3||zoj==5||zoj==7||zoj==9) led=0; } //secend led _________________________________________________ //menu _______________________________________________________ if(PIND.7==0) { select++; if(select>4) select=0; switch (select) { case 1: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); han++; if(han>1) han=0; if(san>2&&han==1) { PORTB=0B00001111; PORTC = common_anode[14]; delay_ms(500); han=0; san=1; } } hezargan; PORTC = common_anode[han]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 2: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); san++; switch (han) { case 1:if(san>2) san=0; default:if(san>9) san=0; } } sadgan; PORTC = common_anode[san]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 3: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); dan++; if(dan>5) dan=0; } dahgan; PORTC = common_anode[dan]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; case 4: wile=0; while(wile==0) { while(PIND.7==0); if(PIND.6==0) { while(PIND.6==0); yan++; if(yan>9) yan=0; } yekan; PORTC = common_anode[yan]; if(PIND.7==0) { while(PIND.7==0) wile=1; } } break; } h=han*10+san; m=dan*10+yan; rtc_set_time(h,m,s); } //menu _______________________________________________________ //sec=0_______________________________________________________ if(PIND.6==0) { led =1; while(PIND.6==0); rtc_set_time(h,m,0); PORTB=0B00000001; PORTC = common_anode[15]; delay_ms(500); } //sec=0_______________________________________________________ han=h/10; san=h%10; dan=m/10; yan=m%10; //seg========================================================================================= if(han!=0) { hezargan; PORTC = common_anode[han]; delay_ms(delay1); res; } sadgan; PORTC = common_anode[san]; delay_ms(delay1); res; dahgan; PORTC = common_anode[dan]; delay_ms(delay1); res; yekan; PORTC = common_anode[yan]; delay_ms(delay1); res; //seg======================================================================================= // if(select!=0) // { // PORTB=0; // delay_ms(200); // } } }[left][/left]
دیدگاه