Moderator: frank11
C51 napisal/-a:Program Size: data=11.0 xdata=0 code=144
C51 COMPILER V7.50 BEZECALUC 02/25/2005 14:03:30 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE BEZECALUC
OBJECT MODULE PLACED IN bezecaluc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bezecaluc.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG901.H>
2 extern void timers_init (void); // inicializacija timerja
3 extern void timers_starttimer0(void); // vklopi timer 0
4 extern void timers_stoptimer0(void); // izklopi timer 0
5 extern unsigned int ms10; // se poveča za 1 vsakih 10ms
6
7
8 #define MAXLED 32
9 #define ZAKASNITEV 10 /* enota je 10ms */
10
11 sbit STR = P0^4;
12 sbit DAT = P0^5;
13 sbit CLK = P1^2;
14 sbit KEY1 = P3^1;
15 sbit KEY2 = P3^0;
16 sbit RELE = P1^5;
17
18
19 void prizgi_led(unsigned char koliko)
20 {
21 1 unsigned char bit_count=MAXLED;
22 1
23 1 while(bit_count)
24 1 {
25 2 CLK = 1;
26 2 DAT = (bit_count<koliko)?1:0;
27 2 CLK = 0;
28 2 bit_count--;
29 2 }
30 1
31 1 }
32
33
34
35 /* LED STOLPEC - TEST */
36 /* TODO: tipke */
37
38
39 void main() {
40 1
41 1 unsigned char i;
42 1
43 1 RELE = 0; // po resetu rele izklopi
44 1
45 1 timers_init();
46 1 EA = 1; // zagon interuptov
47 1 ms10 = 0;
48 1
49 1 timers_starttimer0();
50 1
51 1 for (i=0; i<MAXLED; i++){
52 2 prizgi_led(i);
53 2 while (ms10<ZAKASNITEV); // pocakaj da se zadeva konca
54 2 }
55 1
C51 COMPILER V7.50 BEZECALUC 02/25/2005 14:03:30 PAGE 2
56 1 timers_stoptimer0();
57 1
58 1 RELE = 1; // pa se vklop releja
59 1
60 1 while(1);
61 1
62 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 63 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
C51 COMPILER V7.50 TIMERS 02/25/2005 14:02:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TIMERS
OBJECT MODULE PLACED IN timers.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timers.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************************
2 MODULE: Timers
3 VERSION: 1.00
4 CONTAINS: Routines for controlling the timers on the Philips
5 P89LPC932
6 COPYRIGHT: Embedded Systems Academy, Inc. - www.esacademy.com
7 LICENSE: May be freely used in commercial and non-commercial code
8 without royalties provided this copyright notice remains
9 in this file and unaltered
10 WARNING: IF THIS FILE IS REGENERATED BY CODE ARCHITECT ANY CHANGES
11 MADE WILL BE LOST. WHERE POSSIBLE USE ONLY CODE ARCHITECT
12 TO CHANGE THE CONTENTS OF THIS FILE
13 GENERATED: On "Feb 25 2005" at "13:43:49" by Code Architect 2.06
14 ***********************************************************************/
15
16 // SFR description needs to be included
17 #include <reg932.h>
18 #include "timers.h"
19
20 unsigned int ms10;
21
22 /***********************************************************************
23 DESC: Initializes timers
24 Timer 0 generates an interrupt every 10ms
25 Timer 1 is not used
26 RETURNS: Nothing
27 CAUTION: If interrupts are being used then EA must be set to 1
28 after calling this function
29 ************************************************************************/
30 void timers_init
31 (
32 void
33 )
34 {
35 1 // configure timer 0
36 1 TMOD &= 0xF0;
37 1 TMOD |= 0x01;
38 1 TAMOD &= 0xFE;
39 1
40 1 // timer values
41 1 TH0 = 0x70;
42 1 TL0 = 0x00;
43 1
44 1 // set timer 0 isr priority to 0
45 1 IP0 &= 0xFD;
46 1 IP0H &= 0xFD;
47 1
48 1 // enable timer 0 interrupt
49 1 ET0 = 1;
50 1
51 1 // start timer 0
52 1 TR0 = 1;
53 1
54 1 } // timers_init
55
C51 COMPILER V7.50 TIMERS 02/25/2005 14:02:37 PAGE 2
56 /***********************************************************************
57 DESC: Timer 0 Interrupt Service Routine
58 RETURNS: Nothing
59 CAUTION: timers_init must be called first
60 EA must be set to 1
61 ************************************************************************/
62 void timers_isr0
63 (
64 void
65 ) interrupt 1 using 1
66 {
67 1 // reinitialize
68 1 TH0 = 0x70;
69 1 TL0 = 0x00;
70 1 ms10++;
71 1 } // timers_isr0
72
73 /***********************************************************************
74 DESC: Starts timer 0
75 RETURNS: Nothing
76 CAUTION: timers_init must be called first
77 ************************************************************************/
78 void timers_starttimer0
79 (
80 void
81 )
82 {
83 1 TR0 = 1;
84 1 } // timers_starttimer0
85
86 /***********************************************************************
87 DESC: Stops timer 0
88 RETURNS: Nothing
89 CAUTION: timers_init must be called first
90 ************************************************************************/
91 void timers_stoptimer0
92 (
93 void
94 )
95 {
96 1 TR0 = 0;
97 1 } // timers_stoptimer0
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 51 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Po forumu brska: 0 registriranih uporabnikov in 4 gostov