miguelmarve

mi semaforo: c++ (Visual Studio 2010)y pic 18f4550

Oct 28th, 2012
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. #include <conio.h>
  2. #include <iostream>
  3. #include "USB.h"
  4. #include "USB2550.h"
  5. using namespace std;
  6.  
  7. void main()
  8. {
  9. USB Miusb;
  10. //DWORD sensor;
  11. BYTE datos[10];
  12. int d, datos_en_leds;
  13. cout<< "Que dato desea mostrar por el puerto b: ";
  14. cin>>d;
  15. datos[0]=2; //Puerto B: 2, Puerto D: 3
  16. datos[1]=d; // dato que se mostrará en el puerto|
  17. Miusb.SendPacket(datos,2);
  18. Sleep(1000);
  19. datos[0]=2;
  20. datos[1]=0;//apaga los led que se indicaron en binario en el puerto B
  21. Miusb.SendPacket(datos,2);
  22. cout<<"datos enviados por USB"<<endl;
  23. getch();
  24. system("cls");
  25. do{
  26. cout<<"\n.....................................................";
  27. cout<<"\nPrograma de manejo del semaforo";
  28. cout<<"\nIndique una opcion";
  29. cout<<"\n 1. Activar el sistema de semaforos";
  30. cout<<"\n 2. Semaforos desactivados calle principal";
  31. cout<<"\n 3. Semaforos desactivados calle secundaria";
  32. cout<<"\n 4. Salir";
  33. int p;
  34. cin>>p;
  35. switch(p)
  36. {
  37.  
  38. case 1: cout<<"\nCuantas horas desea activarlo?";
  39. int horas;
  40. cin>>horas;
  41. for(int i=0;i<horas;i++)//las horas son relativas, aqui las horas seran ciclos para apreciar la duracion del semaforo activo
  42. {
  43. system("cls");
  44. datos[0]=2;//Tomamos el puerto B
  45. datos[1]=33;
  46. Miusb.SendPacket(datos,2);
  47. Sleep(50000);//Hace la accion por 50 seg
  48.  
  49. for(int k=0;k<8;k++){
  50. datos[0]=2;
  51. datos[1]=32;
  52. Miusb.SendPacket(datos,2);
  53. Sleep(1000);//1 seg
  54. datos[0]=2;
  55. datos[1]=33;
  56. Miusb.SendPacket(datos,2);
  57. Sleep(1000);//1 seg
  58. }//Parpadeo del color verde
  59. datos[0]=2;
  60. datos[1]=34;
  61. Miusb.SendPacket(datos,2);
  62. Sleep(1000);//Prendemos el amarillo
  63. datos[0]=2;//Tomamos el puerto B
  64. datos[1]=12;//Inicia el ciclo el otro semaforo
  65. Miusb.SendPacket(datos,2);
  66. Sleep(50000);//Hace la accion por 50 seg
  67. for(int k=0;k<8;k++){
  68. datos[0]=2;
  69. datos[1]=4;
  70. Miusb.SendPacket(datos,2);
  71. Sleep(1000);//1 seg
  72. datos[0]=2;
  73. datos[1]=12;
  74. Miusb.SendPacket(datos,2);
  75. Sleep(1000);//1 seg
  76. }//Parpadeo del color verde
  77. datos[0]=2;
  78. datos[1]=20;
  79. Miusb.SendPacket(datos,2);
  80. Sleep(1000);//Prendemos el amarillo}
  81.  
  82. }
  83. break;
  84. case 2:cout<<"\nCuantas horas desea activarlo?";
  85. int horas;
  86. cin>>horas;
  87. for(int i=0;i<horas;i++)
  88. {
  89. datos[0]=2;
  90. datos[1]=0;
  91. Miusb.SendPacket(datos,2);
  92. Sleep(1000);//1 seg
  93. datos[0]=2;
  94. datos[1]=18;
  95. Miusb.SendPacket(datos,2);
  96. Sleep(1000);//1 seg
  97.  
  98. } break;
  99. case 3:cout<<"\nCuantas horas desea activarlo?";
  100. int horas;
  101. cin>>horas;
  102. for(int i=0;i<horas;i++)
  103. {
  104.  
  105. datos[0]=2;
  106. datos[1]=0;
  107. Miusb.SendPacket(datos,2);
  108. Sleep(1000);//1 seg
  109. datos[0]=2;
  110. datos[1]=36;
  111. Miusb.SendPacket(datos,2);
  112. Sleep(1000);//1 seg
  113.  
  114.  
  115.  
  116. }break;
  117. case 4: break;
  118. default:cout<<"\nOpcion no valida en el menu"; break;
  119. }
  120.  
  121. }while(p!=4);
  122.  
  123. /*
  124. datos[0]=2; //indica el puerto B
  125. datos[1]=0;
  126. Miusb.SendPacket(datos,2);
  127. Sleep(3000);
  128. datos[0]=2;
  129. datos[1]=0;
  130. Miusb.SendPacket (datos, 2);
  131. Sleep (100);
  132.  
  133. datos_en_leds=1; //Corre izq
  134. int aux;
  135. for(int i=0; i<8;i++)
  136. {
  137.  
  138. datos[1]=datos_en_leds;
  139. aux=datos_en_leds;
  140. printf("\n%d",datos_en_leds);
  141. datos_en_leds<<=1;
  142. Miusb.SendPacket (datos, 2);
  143. Sleep (100);
  144. }
  145.  
  146. datos_en_leds=128; //Corre der
  147.  
  148. for(int i=0; i<8;i++)
  149. {
  150.  
  151. datos[1]=datos_en_leds;
  152. printf("\n%d",datos_en_leds);
  153. datos_en_leds>>=1;
  154. Miusb.SendPacket (datos, 2);
  155. Sleep (100);
  156. }
  157.  
  158.  
  159. datos_en_leds=255;
  160.  
  161. for(int i=0; i<10;i++)
  162. {
  163.  
  164. //Parpadeo todo
  165. //dato_en_LEDS=dato_en_LEDS^255;
  166. datos_en_leds^=255;
  167. datos[1]=datos_en_leds;
  168. printf("\n\n\t...%d\t...%d",i+1,datos_en_leds);
  169. Miusb.SendPacket (datos, 2);
  170. Sleep (250);
  171.  
  172. }
  173. printf("\nBinario....Decimal....Caracter....Octal...Hexadecimal");
  174. cout<<"\n";
  175. for(int i=0; i<10; i++)
  176. {
  177. datos[0]=2; //Puerto B: 2, Puerto D: 3
  178. datos[1]=i;
  179. Miusb.SendPacket(datos,2);
  180. //cout<<i <<" "<< oct <<i<<" "<< hex <<i<<endl;
  181.  
  182. int binario[8];
  183. int posicion;
  184. datos_en_leds=i;
  185. posicion=0;
  186. do{
  187. binario[posicion]=datos_en_leds%2;
  188. datos_en_leds=datos_en_leds/2;
  189. posicion ++;
  190.  
  191. }
  192. while (posicion<=7);
  193.  
  194.  
  195. for (posicion=7; posicion>=0; posicion--)
  196. printf("%d",binario[posicion]);
  197. printf("B ");
  198.  
  199. printf(" %d %c",i,i);
  200. cout <<" "<< oct <<i<<"Q";
  201. cout<<" "<< hex <<i<<"H"<<endl;
  202. /*for (posicion=7; posicion>=0; posicion--)
  203. printf("%d",binario[posicion]);
  204. printf("B ");
  205.  
  206. printf("%d %c",i,i);
  207. cout <<" "<< oct <<i;
  208. cout<<" "<< hex <<i<<endl;
  209. */
  210. Sleep(500);
  211.  
  212. }*/ //termina la parte del for muestra numeros en diferentes sistemas
  213. }
Advertisement
Add Comment
Please, Sign In to add comment