Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
macarena
Плз кин текст проги
Отправлено: 01.01.2011 15:51
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Ето как?
Отправлено: 31.12.2010 20:32
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Незнаю! У меня не скачиваетса
Отправлено: 30.12.2010 20:44
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Вот текст проги каторая скачиваетса:
:00000001FF что поделаеш? такая вот фигня
Отправлено: 30.12.2010 15:42
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
; Программа для простейшей цветомузыкальной приставки.
; Copyright 2006 © ARV Research ; источник: ; Const equ (0FFFFh - 1000+8); начальное значение счетчика InitTH equ high(Const) ; начальное значение TH0 InitTL equ low(Const) ; начальное значение TL0 Tickcnt equ 11 ; периодичность измерений Semafor equ PSW.5 ; семафор LED1 equ P1.7 LED2 equ P1.4 LED3 equ P1.1 ;------------------------------------------------------------------------------- dseg at 10h Cnt: ds 1 ; счетчик тиков таймера Stack: ;------------------------------------------------------------------------------- cseg org 0 jmp st ; переход на начало программы ;------------------------------------------------------------------------------- ; точка входа прерывания таймера 1 Timer1Int: ; Таймер 1 используется для счета времени org 1Bh jmp Timer1 ;------------------------------------------------------------------------------- st: mov SP, Stack ; настраиваем режимы таймеров и маску прерываний mov TMOD,#00010001b ; режимы работы таймеров T0 и Т1 ; |||||||| ; ||||||++- режим работы Т0 ; |||||+--- C/Т0: 0-таймер, 1-счетчик ; ||||+---- Т0: 0-управление по TR0, 1- управление по TR0 и INT0 ; ||++----- режим работы Т1 ; |+------- C/Т1: 0-таймер, 1-счетчик ; +-------- Т1: 0-управление по TR1, 1- управление по TR1 и INT1 mov TCON,#01000000b ; управление таймерами ; |||||||| ; |||||||+- тип INT0: 1-динамический по спаду, 0-по уровню ; ||||||+-- запрос прерывания INT0 ; |||||+--- тип INT1 ; ||||+---- запрос прерывания INT1 ; |||+----- TR0 - запуск Т0 ; ||+------ TF0 ; |+------- TR1 - запуск Т1 ; +-------- TF1 mov IE, #10001000b ; прерывания ; |||||||| ; |||||||+- INT0 ; ||||||+-- TF0 ; |||||+--- INT1 ; ||||+---- TF1 ; |||+----- TI+RI - посл. порт ; ||+------ TF2+exF2+SPI ; |+------- резерв ; +-------- общее разрешение прерываний mov Cnt, #Tickcnt clr Semafor ; сбрасываем семафор setb TF1 ; первый раз для инициализации main_loop: clr TR0 mov TH0, #0 mov TL0, #0 clr TF0 wait_semafor: ; ждем семафора jbc Semafor, Done jmp wait_semafor Done: mov P1, #0FFh ; гасим все светодиоды mov A, #1 ; измерение и анализ jb INT0, wait_0 ; если 1 на входе - ждем нуля wait_1: ; ждем 1 jb INT0, Mess1 ; если 1 - измеряем cjne A, Cnt, wait_1; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) wait_10: ; ждем нуля на входе jnb INT0, Mess1 cjne A, Cnt, wait_10; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) Mess1: ; измеряем длительность 1 setb TR0 ; включаем таймер wait_end_1: jnb INT0, stop_mess cjne A, Cnt, wait_end_1; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) stop_mess: clr TR0 jb TF0, on_3 ; если переполнились - ВЧ ; проверим значение счетчика mov A, TH0 ; берем старший байт jz on_3 ; TH=0 - ВЧ cjne A, #5, m1 m1: jnc on_1 ; если TH <= 7 - НЧ on_2: clr LED2 jmp main_loop on_1: clr LED1 jmp main_loop on_3: mov A, TL0 cjne A, #100, m2 m2: jc main_loop clr LED3 jmp main_loop wait_0: ; ждем нуля на входе jnb INT0, Mess0 cjne A, Cnt, wait_0; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) wait_01: ; ждем 1 jb INT0, Mess1 ; если 1 - измеряем cjne A, Cnt, wait_01; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) Mess0: ; измеряем длительность 1 setb TR0 ; включаем таймер wait_end_0: jb INT0, stop_mess cjne A, Cnt, wait_end_0; если ждем не слишком долго - ждем дальше jmp main_loop ; если ждем долго - больше не ждем :-) ; обработчик прерывания timer1: mov TH1, #InitTH; заносим начальное значение TH0 mov TL1, #InitTL ; заносим начальное значение TL0 djnz Cnt, tmr1_ex mov Cnt, #TickCnt ; тут включаем семафор setb Semafor tmr1_ex: reti ; обработчик завершен end А такую прогу мош сделать? Качал по такой Помогите кто может и имеет лишнее время. Заране спасибо!!!
Отправлено: 25.12.2010 15:39
Отредактировано пользователем MACTEP 26.12.2010 3:53:41
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
evildesign мож закинуть хекс фаил?
Отправлено: 17.12.2010 22:44
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
А мож закинуть хекс фаил?
Отправлено: 17.12.2010 21:41
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Я знаю но не умею ею пользоваться
Отправлено: 17.12.2010 19:39
Отредактировано пользователем MACTEP 26.12.2010 3:54:02
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Извените, но уменя плохо ком пахал так што текст проги воттакой:
1. #include 2. 3. #define nop() {asm("nop");}//функция необходимая для реализации задержки 4. 5. unsigned int i,p,pp,c,buf,ms,x;//перечисление переменных 6. 7. // функция задержки 8. void delay_ms(int ms) 9. { 10. for (x=ms;x>0;x--) 11. nop (); 12. } 13. 14. // функция включения красного светодиода 15. void ledon0(int ms) 16. { 17. PORTD &= ~_BV(PD0); 18. delay_ms(ms); 19. } 20. 21. // функция включения зеленого светодиода 22. void ledon1(int ms) 23. { 24. PORTD &= ~_BV(PD1); 25. delay_ms(ms); 26. } 27. 28. // функция включения синего светодиода 29. void ledon2(int ms) 30. { 31. PORTD &= ~_BV(PD2); 32. delay_ms(ms); 33. } 34. 35. // функция выключения красного светодиода 36. void ledoff0(int ms) 37. { 38. PORTD |= _BV(PD0); 39. delay_ms(ms); 40. } 41. 42. // функция выключения зеленого светодиода 43. void ledoff1(int ms) 44. { 45. PORTD |= _BV(PD1); 46. delay_ms(ms); 47. } 48. 49. // функция выключения синего светодиода 50. void ledoff2(int ms) 51. { 52. PORTD |= _BV(PD2); 53. delay_ms(ms); 54. } 55. 56. int main( void ) //главная программа 57. { 58. //конфигурирование на вывод порта D 59. DDRD |= _BV(PD0);//конфигурирование битов 60. DDRD |= _BV(PD1);//PD0, PD1 и PD2 61. DDRD |= _BV(PD2);//на выход 62. 63. PORTD = 0xFF; //включаем подтягивающие резисторы 64. 65. pp=1000; //задаем скорость зажигания /гашения 66. 67. for(;;) //бесконечный цикл 68. { 69. //Зажигаем красный светодиод 70. PORTD &= ~_BV(PD0); 71. 72. //плавное зажигание зеленого светодиода 73. for (i = 20; i < pp; i++) 74. { 75. p=pp-i; 76. ledon1(i); 77. ledoff1(p); 78. } 79. //Зеленый светодиод остается гореть 80. PORTD &= ~_BV(PD1); 81. 82. //плавное гашение красного светодиода 83. for (i = 20; i < pp; i++) 84. { 85. p=pp-i; 86. ledon0(p); 87. ledoff0(i); 88. } 89. 90. //Зеленый светодиод остается гореть 91. PORTD &= ~_BV(PD1); 92. 93. //плавное зажигание синего светодиода 94. for (i = 20; i < pp; i++) 95. { 96. p=pp-i; 97. ledon2(i); 98. ledoff2(p); 99. } 100. 101. //Синий светодиод продолжает гореть 102. PORTD &= ~_BV(PD2); 103. 104. //Плавное гашение зеленого светодиода 105. for (i = 20; i < pp; i++) 106. { 107. p=pp-i; 108. ledon1(p); 109. ledoff1(i); 110. } 111. 112. //Синий светодиод продолжает гореть 113. PORTD &= ~_BV(PD2); 114. 115. //постепенное зажигание красного светодиода 116. for (i = 20; i < pp; i++) 117. { 118. p=pp-i; 119. ledon0(i); 120. ledoff0(p); 121. } 122. 123. //Красный светодиод продолжает гореть 124. PORTD &= ~_BV(PD0); 125. 126. //Плавно тушим синий светодиод 127. for (i = 20; i < pp; i++) 128. { 129. p=pp-i; 130. ledon2(p); 131. ledoff2(i); 132. } 133. } 134. } прога из
Отправлено: 17.12.2010 19:00
|
|
Технолог
Зарегистрирован:
24.01.2010 19:37 Из: Львов,Укриана.
Сообщений:
152
|
Спасибо evildesign.
Отправлено: 16.12.2010 21:21
|
|