|
| 1 | +;/* |
| 2 | +; * Mohammadreza_exe(1).c |
| 3 | +; * |
| 4 | +; * Created: 11/8/2021 2:09:21 PM |
| 5 | +; * Author: Administrator |
| 6 | +; */ |
| 7 | +; |
| 8 | +;#include <mega16.h> |
| 9 | +;PCODE: $00000000 VOL: 0 |
| 10 | + #ifndef __SLEEP_DEFINED__ |
| 11 | +;PCODE: $00000001 VOL: 0 |
| 12 | + #define __SLEEP_DEFINED__ |
| 13 | +;PCODE: $00000002 VOL: 0 |
| 14 | + .EQU __se_bit=0x40 |
| 15 | +;PCODE: $00000003 VOL: 0 |
| 16 | + .EQU __sm_mask=0xB0 |
| 17 | +;PCODE: $00000004 VOL: 0 |
| 18 | + .EQU __sm_powerdown=0x20 |
| 19 | +;PCODE: $00000005 VOL: 0 |
| 20 | + .EQU __sm_powersave=0x30 |
| 21 | +;PCODE: $00000006 VOL: 0 |
| 22 | + .EQU __sm_standby=0xA0 |
| 23 | +;PCODE: $00000007 VOL: 0 |
| 24 | + .EQU __sm_ext_standby=0xB0 |
| 25 | +;PCODE: $00000008 VOL: 0 |
| 26 | + .EQU __sm_adc_noise_red=0x10 |
| 27 | +;PCODE: $00000009 VOL: 0 |
| 28 | + .SET power_ctrl_reg=mcucr |
| 29 | +;PCODE: $0000000A VOL: 0 |
| 30 | + #endif |
| 31 | +;PCODE: $0000000B VOL: 0 |
| 32 | +;PCODE: $0000000C VOL: 0 |
| 33 | +;#include <delay.h> |
| 34 | +; |
| 35 | +;void main(void){ |
| 36 | +; 0000 000B void main(void){ |
| 37 | + |
| 38 | + .CSEG |
| 39 | +;PCODE: $0000000D VOL: 0 |
| 40 | +; 0000 000C char seg[]={0b10111111,0b00111111,0b00000111,0b01111101}; |
| 41 | +; 0000 000D DDRA=0XFF; //port A is being used to switch 7-seg |
| 42 | +;PCODE: $0000000E VOL: 0 |
| 43 | +;PCODE: $0000000F VOL: 0 |
| 44 | +;PCODE: $00000010 VOL: 0 |
| 45 | +;PCODE: $00000011 VOL: 0 |
| 46 | +;PCODE: $00000012 VOL: 0 |
| 47 | +;PCODE: $00000013 VOL: 0 |
| 48 | +;PCODE: $00000014 VOL: 0 |
| 49 | +;PCODE: $00000015 VOL: 0 |
| 50 | +;PCODE: $00000016 VOL: 0 |
| 51 | +; seg -> Y+0 |
| 52 | +;PCODE: $00000017 VOL: 0 |
| 53 | +;PCODE: $00000018 VOL: 0 |
| 54 | +; 0000 000E DDRD=0X00; //port D is being used for the Button |
| 55 | +;PCODE: $00000019 VOL: 0 |
| 56 | +;PCODE: $0000001A VOL: 0 |
| 57 | +; 0000 000F PORTD=0x01; //res for the pull up button in pin 1 |
| 58 | +;PCODE: $0000001B VOL: 0 |
| 59 | +;PCODE: $0000001C VOL: 0 |
| 60 | +; 0000 0010 DDRB=0xFF; //port B is the output for the LEDs & the DP,G,F,E,D,C,B,A parts of each 7-seg |
| 61 | +;PCODE: $0000001D VOL: 0 |
| 62 | +;PCODE: $0000001E VOL: 0 |
| 63 | +; 0000 0011 PORTB=0X00; //default value for port B |
| 64 | +;PCODE: $0000001F VOL: 0 |
| 65 | +;PCODE: $00000020 VOL: 0 |
| 66 | +; 0000 0012 |
| 67 | +; 0000 0013 while (1){ |
| 68 | +;PCODE: $00000021 VOL: 0 |
| 69 | +; 0000 0014 if(PIND.0==1); //so that the it does't start untill the Button is pressed |
| 70 | +;PCODE: $00000022 VOL: 0 |
| 71 | +;PCODE: $00000023 VOL: 0 |
| 72 | +;PCODE: $00000024 VOL: 0 |
| 73 | +; 0000 0015 delay_ms(200); //so that the circuit knows you have pressed the button |
| 74 | +;PCODE: $00000025 VOL: 0 |
| 75 | +;PCODE: $00000026 VOL: 0 |
| 76 | +;PCODE: $00000027 VOL: 0 |
| 77 | +;PCODE: $00000028 VOL: 0 |
| 78 | +; 0000 0016 |
| 79 | +; 0000 0017 if(PIND.0==0){ //so that it can start |
| 80 | +;PCODE: $00000029 VOL: 0 |
| 81 | +;PCODE: $0000002A VOL: 0 |
| 82 | +;PCODE: $0000002B VOL: 0 |
| 83 | +; 0000 0018 delay_ms(200); |
| 84 | +;PCODE: $0000002C VOL: 0 |
| 85 | +;PCODE: $0000002D VOL: 0 |
| 86 | +;PCODE: $0000002E VOL: 0 |
| 87 | +; 0000 0019 |
| 88 | +; 0000 001A while (1){ |
| 89 | +;PCODE: $0000002F VOL: 0 |
| 90 | +; 0000 001B PORTA= 0b11111110; |
| 91 | +;PCODE: $00000030 VOL: 0 |
| 92 | +;PCODE: $00000031 VOL: 0 |
| 93 | +; 0000 001C PORTB=seg[0]; |
| 94 | +;PCODE: $00000032 VOL: 0 |
| 95 | +;PCODE: $00000033 VOL: 0 |
| 96 | +; 0000 001D delay_ms(10); |
| 97 | +;PCODE: $00000034 VOL: 0 |
| 98 | +;PCODE: $00000035 VOL: 0 |
| 99 | +;PCODE: $00000036 VOL: 0 |
| 100 | +; 0000 001E |
| 101 | +; 0000 001F PORTA= 0b11111101; |
| 102 | +;PCODE: $00000037 VOL: 0 |
| 103 | +;PCODE: $00000038 VOL: 0 |
| 104 | +; 0000 0020 PORTB=seg[1]; |
| 105 | +;PCODE: $00000039 VOL: 0 |
| 106 | +;PCODE: $0000003A VOL: 0 |
| 107 | +; 0000 0021 delay_ms(10); |
| 108 | +;PCODE: $0000003B VOL: 0 |
| 109 | +;PCODE: $0000003C VOL: 0 |
| 110 | +;PCODE: $0000003D VOL: 0 |
| 111 | +; 0000 0022 |
| 112 | +; 0000 0023 PORTA= 0b11111011; |
| 113 | +;PCODE: $0000003E VOL: 0 |
| 114 | +;PCODE: $0000003F VOL: 0 |
| 115 | +; 0000 0024 PORTB=seg[2]; |
| 116 | +;PCODE: $00000040 VOL: 0 |
| 117 | +;PCODE: $00000041 VOL: 0 |
| 118 | +; 0000 0025 delay_ms(10); |
| 119 | +;PCODE: $00000042 VOL: 0 |
| 120 | +;PCODE: $00000043 VOL: 0 |
| 121 | +;PCODE: $00000044 VOL: 0 |
| 122 | +; 0000 0026 |
| 123 | +; 0000 0027 PORTA= 0b11110111; |
| 124 | +;PCODE: $00000045 VOL: 0 |
| 125 | +;PCODE: $00000046 VOL: 0 |
| 126 | +; 0000 0028 PORTB=seg[3]; |
| 127 | +;PCODE: $00000047 VOL: 0 |
| 128 | +;PCODE: $00000048 VOL: 0 |
| 129 | +; 0000 0029 delay_ms(10); |
| 130 | +;PCODE: $00000049 VOL: 0 |
| 131 | +;PCODE: $0000004A VOL: 0 |
| 132 | +;PCODE: $0000004B VOL: 0 |
| 133 | +; 0000 002A |
| 134 | +; 0000 002B if (PIND.0==0){ //if the button is pressed again |
| 135 | +;PCODE: $0000004C VOL: 0 |
| 136 | +;PCODE: $0000004D VOL: 0 |
| 137 | +;PCODE: $0000004E VOL: 0 |
| 138 | +; 0000 002C delay_ms(200); |
| 139 | +;PCODE: $0000004F VOL: 0 |
| 140 | +;PCODE: $00000050 VOL: 0 |
| 141 | +;PCODE: $00000051 VOL: 0 |
| 142 | +; 0000 002D PORTB=0; |
| 143 | +;PCODE: $00000052 VOL: 0 |
| 144 | +;PCODE: $00000053 VOL: 0 |
| 145 | +; 0000 002E break; |
| 146 | +;PCODE: $00000054 VOL: 0 |
| 147 | +; 0000 002F } |
| 148 | +; 0000 0030 } |
| 149 | +;PCODE: $00000055 VOL: 0 |
| 150 | +;PCODE: $00000056 VOL: 0 |
| 151 | +;PCODE: $00000057 VOL: 0 |
| 152 | +; 0000 0031 } |
| 153 | +; 0000 0032 } |
| 154 | +;PCODE: $00000058 VOL: 0 |
| 155 | +;PCODE: $00000059 VOL: 0 |
| 156 | +;PCODE: $0000005A VOL: 0 |
| 157 | +; 0000 0033 } |
| 158 | +;PCODE: $0000005B VOL: 0 |
| 159 | +;PCODE: $0000005C VOL: 0 |
| 160 | +;PCODE: $0000005D VOL: 0 |
| 161 | +;PCODE: $0000005E VOL: 0 |
0 commit comments