Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.89 KB | None | 0 0
  1. #include<p18f452.h>
  2. #define m1_1 PORTCbits.RC0
  3. #define m1_2 PORTCbits.RC1
  4. #define m2_1 PORTCbits.RC2
  5. #define m2_2 PORTCbits.RC3
  6. #define rs PORTAbits.AN0
  7. #define rw PORTAbits.AN1
  8. #define en PORTAbits.AN2
  9. #pragma config WDT=OFF
  10. unsigned int cmd[]={0x38,0x0E,0x01,0x06,0x80};
  11. unsigned char disp1[]="Gsm Control boot";
  12. unsigned char c;
  13. unsigned char c1[]="backward";
  14. unsigned char c2[]="forward";
  15. unsigned char c3[]="Right";
  16. unsigned char c4[]="left";
  17. unsigned char c5[]="Stop";
  18. unsigned char den[]="Denied";
  19. void delay1()
  20. {
  21. T1CONbits.TMR1ON=1;
  22. TMR1H=0;
  23. TMR1L=0;
  24. while(PIR1bits.TMR1IF==0);
  25. T1CONbits.TMR1ON=0;
  26. PIR1bits.TMR1IF=0;
  27. }
  28. void delay_nxt()
  29. {
  30. TMR2=0;
  31. PR2=255;
  32. T2CONbits.TMR2ON=1;
  33. while(PIR1bits.TMR2IF==0);
  34. PIR1bits.TMR2IF=0;
  35. T2CONbits.TMR2ON=0;
  36.  
  37.  
  38. }
  39. void send()
  40. {
  41. rs=1;
  42. rw=0;
  43. en=1;
  44. delay1();
  45. en=0;
  46. }
  47. void command()
  48. {
  49. rs=0;
  50. rw=0;
  51. en=1;
  52. delay1();
  53. en=0;
  54. }
  55. void lcd()
  56. {
  57. int i;
  58. delay1();
  59. delay1();
  60. for(i=0;i<5;i++)
  61. {
  62. PORTB=cmd[i];
  63. command();
  64. }
  65. PORTB=0x01;
  66. command();
  67. }
  68. void kickStart()
  69. {
  70. int i ;
  71. for(i=0;i<16;i++)
  72. {
  73. PORTB=disp1[i];
  74. send();
  75. }
  76. PORTB=0xC0;
  77. command();
  78. }
  79. void main(void)
  80. {
  81. int i,a;
  82. TRISA=0;
  83. TRISB=0;
  84. TRISCbits.TRISC0=0;
  85. TRISCbits.TRISC1=0;
  86. TRISCbits.TRISC2=0;
  87. TRISCbits.TRISC3=0;
  88. ADCON1=0x07;
  89. T1CON=0;
  90. TRISDbits.TRISD1=1;
  91. TRISDbits.TRISD2=1;
  92. TRISDbits.TRISD3=1;
  93. TRISCbits.TRISC7=1;
  94. RCSTA=0x90;
  95. T2CON=0;
  96. SPBRG=25;
  97. lcd();
  98. kickStart();
  99. while(1)
  100. {
  101. while(PIR1bits.RCIF==0);
  102. c=RCREG;
  103. PIR1bits.RCIF=0;
  104. switch (c)
  105. {
  106. case 'r':
  107. m1_1=1;
  108. m1_2=0;
  109. m2_1=0;
  110. m2_2=0;
  111. PORTB=0x01;
  112. command();
  113. for(i=0;i<5;i++)
  114. {
  115. PORTB=c3[i];
  116. send();
  117. }
  118. break;
  119. case 'l':
  120. m1_1=0;
  121. m1_2=0;
  122. m2_1=0;
  123. m2_2=1;
  124. PORTB=0x01;
  125. command();
  126. for(i=0;i<4;i++)
  127. {
  128. PORTB=c4[i];
  129. send();
  130. }
  131. break;
  132. case 's':
  133. m1_1=0;
  134. m1_2=0;
  135. m2_1=0;
  136. m2_2=0;
  137. PORTB=0x01;
  138. command();
  139. for(i=0;i<4;i++)
  140. {
  141. PORTB=c5[i];
  142. send();
  143. }
  144. break;
  145. case 'b':
  146. m1_1=0;
  147. m1_2=1;
  148. m2_1=0;
  149. m2_2=1;
  150. PORTB=0x01;
  151. command();
  152. for(i=0;i<8;i++)
  153. {
  154. PORTB=c1[i];
  155. send();
  156. }
  157. break;
  158. case 'f':
  159. PORTB=0x01;
  160. command();
  161. for(i=0;i<7;i++)
  162. {
  163. PORTB=c2[i];
  164. send();
  165. }
  166. if((PORTDbits.RD3==1)&&(PORTDbits.RD2==0)&&(PORTDbits.RD1==0))
  167. {
  168. m1_1=1;
  169. m1_2=0;
  170. m2_1=1;
  171. m2_2=0;
  172.  
  173. }
  174. else if((PORTDbits.RD2==1)&&(PORTDbits.RD3==0)&&(PORTDbits.RD1==0))
  175. while((PORTDbits.RD2==1)&&(PORTDbits.RD3==0)&&(PORTDbits.RD1==0))
  176. {
  177. m1_1=1;
  178. m1_2=0;
  179. m2_1=1;
  180. m2_2=0;
  181. for(a=0;a<13;a++)
  182. delay_nxt();
  183. m1_1=~m1_1;
  184. m2_1=~m2_1;
  185. ` delay_nxt();
  186.  
  187. }
  188. else if((PORTDbits.RD1==1)&&(PORTDbits.RD2==0)&&(PORTDbits.RD3==0))
  189. while((PORTDbits.RD1==1)&&(PORTDbits.RD2==0)&&(PORTDbits.RD3==0))
  190. {
  191. m1_1=1;
  192. m1_2=0;
  193. m2_1=1;
  194. m2_2=0;
  195. for(a=0;a<6;a++)
  196. delay_nxt();
  197. m1_1=~m1_1;
  198. m2_1=~m2_1;
  199. delay_nxt();
  200.  
  201.  
  202. }
  203. break;
  204.  
  205. default:
  206. PORTB=0x01;
  207. command();
  208. for(i=0;i<6;i++)
  209. {
  210. PORTB=den[i];
  211. send();
  212. }
  213. break;
  214. }
  215. }
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement