久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4196|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

avr單片機(jī)流水燈和 按鍵抗干擾,左右按鍵要松開才行 帶仿真和程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
第一次做。都是用的avr單片機(jī)ATMEGA16仿真。。有3個(gè)按鍵控制流水燈程序 和1個(gè)單片機(jī)按鍵抗干擾,左右按鍵要松開才行.

單片機(jī)源碼:
  1. #include <iom16v.h>
  2. void delay(unsigned int x)
  3. {
  4.   int i,j;
  5.   for(i=0;i<x;i++)
  6.     for(j=0;j<1141;j++);
  7. }

  8. void button(int i)
  9. {
  10. if((PINC&(1<<PC0))==0)
  11. {
  12. delay(20);
  13. if((PINC&(1<<PC0))==0)
  14. {
  15. up(i);
  16. }
  17. while((PINC&(1<<PC0))==0);
  18. }
  19. if((PINC&(1<<PC1))==0)
  20. {
  21. delay(20);
  22. if((PINC&(1<<PC1))==0)
  23. {
  24. down(i);
  25. }
  26. while((PINC&(1<<PC1))==0);
  27. }if((PINC&(1<<PC2))==0)
  28. {
  29. delay(20);
  30. if((PINC&(1<<PC2))==0)
  31. {
  32. left(i);
  33. }
  34. while((PINC&(1<<PC2))==0);

  35. }
  36. if((PINC&(1<<PC3))==0)
  37. {
  38. delay(20);
  39. if((PINC&(1<<PC3))==0)
  40. {
  41. right(i);
  42. }
  43. while((PINC&(1<<PC3))==0);
  44. }
  45. }

  46. void down(int i)
  47. {
  48. while(i<4)
  49. {
  50. int k = i;
  51. for(i+=4;i<8;i+=4)
  52. {
  53. PORTA = 1<<i;
  54. delay(50);
  55. PORTA = 0x00;
  56. button(i);
  57. }
  58. i-=4;
  59. for(i+=4;i<16;i+=4)
  60. {
  61. PORTB = 1<<(i-8);
  62. delay(50);
  63. PORTB=0x00;
  64. button(i);
  65. }
  66. i-=4;
  67. i=k;
  68. PORTA = 1<<i;
  69. delay(50);
  70. button(i);
  71. }
  72. while(i>3&&i<8)
  73. {
  74. for(i+=4;i<16;i+=4)
  75. {
  76. PORTB = 1<<(i-8);
  77. delay(50);
  78. PORTB=0x00;
  79. button(i);
  80. }
  81. i-=4;
  82. for(i-=12;i<8;i+=4)
  83. {
  84. PORTA=1<<i;
  85. delay(50);
  86. PORTA=0x00;
  87. button(i);
  88. }
  89. i-=4;
  90. }
  91. while(i>7&&i<12)
  92. {
  93. for(i+=4;i<16;i=+4)
  94. {
  95. PORTB=1<<(i-8);
  96. delay(50);
  97. PORTB=0x00;
  98. button(i);
  99. }
  100. i-=4;
  101. for(i-=12;i<8;i+=4)
  102. {
  103. PORTA=1<<i;
  104. delay(50);
  105. PORTA=0x00;
  106. button(i);
  107. }
  108. PORTB=1<<(i-8);
  109. delay(50);
  110. PORTB=0x00;
  111. button(i);
  112. }
  113. while(i<16&&i>11)
  114. {
  115. for(i-=12;i<8;i+=4)
  116. {
  117. PORTA=1<<i;
  118. delay(50);
  119. PORTA=0x00;
  120. button(i);
  121. }
  122. for( ;i<16;i+=4)
  123. {
  124. PORTB=1<<(i-8);
  125. delay(50);
  126. PORTB=0x00;
  127. button(i);
  128. }
  129. i-=4;
  130. }
  131. }


  132. void up(int i)
  133. {
  134. while(i<4)
  135. {
  136. PORTA=0x00;
  137. for(i+=12;i<16&&i>7;i-=4)
  138. {
  139. PORTB = 1<<(i-8);
  140. delay(50);
  141. button(i);
  142. }
  143. PORTB=0x00;
  144. i+=4;
  145. for(i-=4;i>=0&&i<8;i-=4)
  146. {
  147. PORTA=1<<i;
  148. delay(50);
  149. PORTA=0x00;
  150. button(i);
  151. }
  152. i+=4;
  153. }
  154. while(i>3&&i<8)
  155. {
  156. for(i-=4;i>=0;i-=4)
  157. {
  158. PORTA = 1<<i;
  159. delay(50);
  160. PORTA=0x00;
  161. button(i);
  162. }
  163. i=+4;
  164. for(i+=12;i<16&&i>7;i-=4)
  165. {
  166. PORTB=1<<(i-8);
  167. delay(50);
  168. PORTB=0x00;
  169. button(i);
  170. }
  171. PORTA=1<<i;
  172. delay(50);
  173. button(i);
  174. }
  175. while(i>7&&i<12)
  176. {
  177. for(i-=4;i<8&&i>=0;i=-4)
  178. {
  179. PORTA=1<<i;
  180. delay(50);
  181. PORTA=0x00;
  182. button(i);
  183. }
  184. i+=4;
  185. for(i+=12;i<16&&i>7;i-=4)
  186. {
  187. PORTB=1<<(i-8);
  188. delay(50);
  189. PORTB=0x00;
  190. button(i);
  191. }
  192. i+=4;
  193. }
  194. while(i>11&&i<16)
  195. {
  196. for(i-=4;i<16&&i>7;i=-4)
  197. {
  198. PORTB=1<<(i-8);
  199. delay(50);
  200. PORTB=0x00;
  201. button(i);
  202. }
  203. for( ;i<8&&i>=0;i-=4)
  204. {
  205. PORTA=1<<i;
  206. delay(50);
  207. PORTA=0x00;
  208. button(i);
  209. }
  210. i+=16;
  211. PORTB=1<<(i-8);
  212. delay(50);
  213. button(i);
  214. }
  215. }


  216. void right(int i)
  217. {
  218. while(i<4)
  219. {
  220. i-=1;
  221. for(i+=1;i>=0&&i<4;i+=1)
  222. {
  223. PORTA = 1<<i;
  224. delay(50);
  225. button(i);
  226. }
  227. i-=4;
  228. }
  229. while(i>3&&i<8)
  230. {
  231. i-=1;
  232. for(i+=1;i>3&&i<8;i+=1)
  233. {
  234. PORTA = 1<<i;
  235. delay(50);
  236. button(i);
  237. }
  238. i-=4;
  239. }
  240. while(i>7&&i<12)
  241. {
  242. i-=1;
  243. for(i+=1;i>7&&i<12;i+=1)
  244. {
  245. PORTA = 1<<(i-8);
  246. delay(50);
  247. button(i);
  248. }
  249. i-=4;
  250. }
  251. while(i>11&&i<16)
  252. {
  253. i-=1;
  254. for(i+=1;i>11&&i<16;i+=1)
  255. {
  256. PORTA = 1<<(i-8);
  257. delay(50);
  258. button(i);
  259. }
  260. i-=4;
  261. }
  262. }

  263. void left(int i)
  264. {
  265. while(i<4)
  266. {
  267. i+=1;
  268. for(i-=1;i>=0&&i<4;i-=1)
  269. {
  270. PORTA = 1<<i;
  271. delay(50);
  272. button(i);
  273. }
  274. i+=4;
  275. }
  276. while(i>3&&i<8)
  277. {
  278. i+=1;
  279. for(i-=1;i>3&&i<8;i-=1)
  280. {
  281. PORTA = 1<<i;
  282. delay(50);
  283. button(i);
  284. }
  285. i+=4;
  286. }
  287. while(i>7&&i<12)
  288. {
  289. i+=1;
  290. for(i-=1;i>7&&i<12;i-=1)
  291. {
  292. PORTA = 1<<(i-8);
  293. delay(50);
  294. button(i);
  295. }
  296. i+=4;
  297. }
  298. while(i>11&&i<16)
  299. {
  300. i+=1;
  301. for(i-=1;i>11&&i<16;i-=1)
  302. {
  303. PORTA = 1<<(i-8);
  304. delay(50);
  305. button(i);
  306. }
  307. i+=4;
  308. }
  309. }


  310. void main()
  311. {
  312. int i;
  313. DDRA = 0xFF;
  314. DDRB = 0xFF;
  315. PORTC|=(1<<PC0);
  316. PORTC|=(1<<PC1);
  317. PORTC|=(1<<PC2);
  318. PORTC|=(1<<PC3);
  319. while(1)
  320. {
  321. for(i=0;i<4;i++)
  322. {
  323. PORTA = 1<<i;
  324. delay(50);
  325. button(i);
  326. }
  327. }
  328. }
復(fù)制代碼


下載地址:
流水燈和按鍵.zip (60.58 KB, 下載次數(shù): 11)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:27916 發(fā)表于 2017-2-24 08:40 | 只看該作者
表示支持一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区在线看 | 亚洲欧美日韩电影 | 另类一区 | 在线精品观看 | 欧美精品久久 | 日韩成人在线免费观看 | 亚洲国产日韩欧美 | 国产一级片免费在线观看 | av av在线| 国产精品日韩欧美一区二区三区 | 成人av网站在线观看 | 精品欧美色视频网站在线观看 | 日日操夜夜干 | 欧美www在线 | 欧美成人免费 | 欧美精品乱码99久久影院 | 97caoporn国产免费人人 | 华丽的挑战在线观看 | 嫩草懂你的影院入口 | 成人福利 | 精品视频99 | 久久国内 | 99精品久久 | 91视视频在线观看入口直接观看 | 国产精品成人一区二区三区夜夜夜 | 成人av电影天堂 | 国产丝袜一区二区三区免费视频 | 九九热在线免费视频 | 久久综合九九 | 日韩一区二区视频 | 国产日韩精品一区二区三区 | 国产免费福利 | 五月花丁香婷婷 | 亚洲区一区二 | 伊人久久免费 | 精品国产乱码一区二区三区a | 久久精品国产亚洲一区二区三区 | 国产乱码一二三区精品 | 欧美精品一区二区三区在线播放 | 羞羞网站在线免费观看 | 欧美一级大片免费看 |