Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include"lcd.h"
- #include"reg515.sfr"
- unsigned int komutacje[3][8] = {{8,2,4,1,8,2,4,1}, {9,10,6,5,9,10,6,5},{8,10,2,6,4,5,1,9}};
- unsigned int rodzajKomutacji = 0;
- unsigned int pozycja = 0;
- unsigned int lewoPrawo = 1;
- _interrupt 5 void int_T2(void)
- {
- TF2 = 0;
- P1 = komutacje[rodzajKomutacji][pozycja];
- if(lewoPrawo == 0){
- pozycja--;
- if(pozycja > 7)
- pozycja = 0;
- if(pozycja < 0)
- pozycja = 7;
- }
- if(lewoPrawo == 1){
- pozycja++;
- if(pozycja > 7)
- pozycja = 0;
- if(pozycja < 0)
- pozycja = 7;
- }
- }
- void czekaj (unsigned int czas);
- int main()
- {
- unsigned int f = 0;
- unsigned char znak;
- unsigned int liczba=0;
- unsigned int flaga = 0;
- EAL = 1;
- ET2 = 1;
- T2I0= 1;
- T2R1 = 1;
- lcd_init();
- while(1)
- {
- znak = get_kb();
- if(znak >= '0' && znak <= '9')
- {
- if(flaga == 1)
- {
- flaga =0;
- out_instr(1);
- }
- out_char(znak);
- liczba = 10*liczba + ((int)znak -48);
- }
- if(znak == 'e' && flaga == 0)
- {
- /*out_instr(1);
- out_char((char)liczba); */
- f = liczba;
- if(f < 17){
- f= 17;
- }
- if(f > 600) {
- f = 600;
- }
- CRCH = (0xFFFF - 1000000/f) >> 8;
- CRCL = 1000000/f;
- liczba = 0;
- flaga = 1;
- }
- if( znak == 'g'){
- rodzajKomutacji++;
- }
- if( znak == 'd'){
- rodzajKomutacji--;
- }
- if(rodzajKomutacji > 2){
- rodzajKomutacji = 2;
- }
- if(rodzajKomutacji < 0){
- rodzajKomutacji = 0;
- }
- if(znak == 'l'){
- lewoPrawo = 0;
- }
- if(znak == 'p'){
- lewoPrawo = 1;
- }
- czekaj(15000);
- }
- return 0;
- }
- void czekaj (unsigned int czas)
- {
- unsigned int i=0;
- for(i; i<czas; i++);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement