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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6693|回復: 1
打印 上一主題 下一主題
收起左側

全彩LED合集-紅外遙控全彩LED控制器制作

[復制鏈接]
跳轉到指定樓層
樓主
ID:90014 發表于 2015-9-15 22:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
【第八個程序-紅外遙控全彩LED控制器】

原理圖





樂云兄  辛苦了, 來頂一下。
還缺一個亮度加減或者是漸變速度加減功能沒有加進去哦


  1. //////////////////////////////////////
  2. C語言
  3. //////////////////////////////////////
  4. //*******************************************************************************************/
  5. //* 紅外遙控LED R-G-B全彩控制器程序 */
  6. //*遙 控 器:市面上通用24鍵超薄帶單色指示遙控器,功能控制器 FLASH STROBE FADE SMOOTH */
  7. //*單片機型號:STC90C52RC PWM輸出端口:R=P1.3 G=P1.4 B=1.5 遙控接收頭(HS0038)P3.2 */
  8. //*程序作者 : 高山云先生 2012年3月31日 重慶 */
  9. //*程序版本 :VER:2.0 */
  10. //*程序功能 :本版本程序在原VER:1.0 VER:1.1 VER:1.2的基礎上增加了EEROM斷電數據記憶功能, */
  11. //* watchdog_timer看門狗定時器功能,確保程序跑飛時自動復位。 */
  12. //*******************************************************************************************/
  13. //*******************************************************************************************/

  14. #include "STC90.h"
  15. #include < intrins.h >
  16. #define uchar unsigned char
  17. #define uint unsigned int
  18. #define led_port P1

  19. sbit IR_RE = P3^2;
  20. sbit led_r = P1^3;
  21. sbit led_g = P1^4;
  22. sbit led_b = P1^5;
  23. sbit led_wd = P1^7;


  24. sbit K1 =P3^0 ; //增加鍵
  25. sbit K2 =P3^1 ; //減少鍵
  26. sbit BEEP =P3^7 ; //蜂鳴器
  27. uchar temp,temp1;
  28. bit k=0; //紅外解碼判斷標志位,為0則為有效信號,為1則為無效
  29. bit Flag2;
  30. uchar date[4]={0,0,0,0}; //date數組為存放地址原碼,反碼,數據原碼,反碼
  31. uint lade_1,lade_2,lade_3,lade_4;
  32. uint num;
  33. uchar date_ram,ee_temp,ee_temp1;
  34. uchar WDT_NUM=0;

  35. uchar const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值01234567
  36. uchar code seg[]={7,6,5,4,3,2,1,0};//分別對應相應的數碼管點亮,即位碼
  37. unsigned long disp_date;


  38. void fade();
  39. void fade1();
  40. /*************************** 看門狗子程序*************************/
  41. void watchdog_timer()
  42. {
  43. if(WDT_NUM==5)
  44. {
  45. WDT_NUM=0;
  46. led_wd=!led_wd;
  47. }
  48. WDT_NUM++;
  49. WDT_CONTR=0x3f;
  50. }
  51. /******************************************************************/
  52. void delay(unsigned int cnt)
  53. {
  54. while(--cnt);
  55. }

  56. /*--------------------------延時1ms程子程序-----------------------*/
  57. void delay_1ms(uint z)
  58. {
  59. uint x,y;
  60. for(x=z;x>0;x--)
  61. for(y=126;y>0;y--);
  62. }

  63. /*--------------------------延時1ms程子程序-----------------------*/
  64. delay1000()
  65. {
  66. uchar i,j;
  67. i=5;
  68. do{j=95;
  69. do{j--;}
  70. while(j);
  71. i--;
  72. }
  73. while(i);
  74. }
  75. /*---------------------------延時882us子程序-----------------------*/
  76. delay882()
  77. {
  78. uchar i,j;
  79. i=6;
  80. do{j=71;
  81. do{j--;}
  82. while(j);
  83. i--;
  84. }while(i);
  85. }
  86. /*--------------------------延時2400us程子程序-----------------------*/
  87. delay2400()
  88. {
  89. uchar i,j;
  90. i=5;
  91. do{j=237;
  92. do{j--;}
  93. while(j);
  94. i--;
  95. }while(i);
  96. }

  97. /**********************************************************************/
  98. /*
  99. void display()
  100. {
  101. uchar i;
  102. for(i=0;i<8;i++)
  103. {
  104. P0=dofly[disp_date%10];//取顯示數據,段碼
  105. P2=seg[i]; //取位碼
  106. delay_1ms(1);
  107. disp_date/=10;
  108. }
  109. }
  110. */
  111. /*********************************************************************/

  112. uchar EEPROM_read(uint addr)//EEPROM字節讀
  113. {
  114. ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M
  115. ISP_CMD=1; //字節讀
  116. ISP_ADDRH=(addr&0xff00)>>8;
  117. ISP_ADDRL=addr&0x00ff;
  118. ISP_TRIG=0x46;
  119. ISP_TRIG=0xb9;
  120. _nop_();
  121. _nop_();

  122. return ISP_DATA;
  123. }
  124. //--------------------------------------------------------------------
  125. void EEPROM_write(uint addr,uchar dat)//EEPROM字節寫
  126. {
  127. ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M
  128. ISP_CMD=2; //字節編程
  129. ISP_ADDRH=(addr&0xff00)>>8;
  130. ISP_ADDRL=addr&0x00ff;
  131. ISP_DATA=dat;
  132. ISP_TRIG=0x46;
  133. ISP_TRIG=0xb9;
  134. _nop_();
  135. _nop_();
  136. }
  137. //--------------------------------------------------------------------

  138. void EEPROM_ERASE(uint addr)//EEPROM扇區擦除
  139. {
  140. ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M
  141. ISP_CMD=3; //扇區擦除
  142. ISP_ADDRH=(addr&0xff00)>>8;
  143. ISP_ADDRL=addr&0x00ff;
  144. ISP_TRIG=0x46;
  145. ISP_TRIG=0xb9;
  146. _nop_();
  147. _nop_();
  148. }

  149. //**************************************************************

  150. /*----------------------------------------------------------*/
  151. /*-----------------------紅外解碼程序(核心)-----------------*/
  152. /*----------------------------------------------------------*/
  153. void IR_decode()
  154. {
  155. uchar i,j;
  156. while(IR_RE==0);
  157. delay2400();
  158. if(IR_RE==1) //延時2.4ms后如果是高電平則是新碼
  159. {
  160. delay1000();
  161. delay1000();

  162. for(i=0;i<4;i++)
  163. {
  164. for(j=0;j<8;j++)
  165. {
  166. while(IR_RE==0); //等待地址碼第1位高電平到來
  167. delay882(); //延時882us判斷此時引腳電平
  168. ///CY=IR_RE;
  169. if(IR_RE==0)
  170. {
  171. date[i]>>=1;
  172. date[i]=date[i]|0x00;
  173. }
  174. else if(IR_RE==1)
  175. {
  176. delay1000();
  177. date[i]>>=1;
  178. date[i]=date[i]|0x80;
  179. }
  180. } //1位數據接收結束
  181. } //32位二進制碼接收結束
  182. }
  183. }

  184. /*
  185. void LED_PWM()
  186. {
  187. lade_2=num; //384
  188. lade_4=num; //384
  189. while(lade_2!=0&Flag2==1)
  190. {
  191. for(lade_3=512;lade_3>lade_4;lade_3--)
  192. //512
  193. {
  194. led_port=0x00;
  195. delay(1);
  196. }
  197. lade_3=512; //512
  198. lade_4--;
  199. for(lade_1=0;lade_1<lade_2;lade_1++)
  200. {
  201. led_port=0x38; //c7
  202. delay(1);
  203. }
  204. lade_1=0;
  205. lade_2--;
  206. if(temp!=0x0c&Flag2==1)
  207. {
  208. lade_2=0;
  209. }
  210. lade_2=num; //384
  211. lade_4=num; //384
  212. }
  213. }
  214. */
  215. void calc()
  216. {
  217. EEPROM_read(0x2000);
  218. ee_temp1=ISP_DATA;

  219. ee_temp=ee_temp1&0x0f;

  220. //************************************* 1
  221. /*
  222. if(date[3]==0xff&Flag2==1)
  223. {
  224. if(num>=20)
  225. {
  226. num=num-80;
  227. }
  228. //else num=1;
  229. LED_PWM();
  230. }
  231. if(date[3]==0xfe&Flag2==1)
  232. {
  233. if(num<=500)
  234. {
  235. num=num+80;
  236. }
  237. // else num=511;
  238. LED_PWM();
  239. }

  240. if(ee_temp1==0xfd)
  241. {
  242. led_port=0x00;
  243. watchdog_timer();
  244. }
  245. if(ee_temp1==0xfc)
  246. {
  247. led_port=0x00;
  248. led_r=1;
  249. led_g=1;
  250. led_b=1;
  251. watchdog_timer();
  252. }
  253. */

  254. //********************************************** 2


  255. if(ee_temp1==0xfb)
  256. {
  257. led_port=0x00;
  258. led_r=1;
  259. watchdog_timer();
  260. }

  261. if(ee_temp1==0xfa)
  262. {
  263. led_port=0x00;
  264. led_g=1;
  265. watchdog_timer();
  266. }

  267. if(ee_temp1==0xf9)
  268. {
  269. led_port=0x00;
  270. led_b=1;
  271. watchdog_timer();
  272. }

  273. if(ee_temp1==0xf8)
  274. {
  275. led_port=0x00;
  276. led_r=1;
  277. led_g=1;
  278. led_b=1;
  279. watchdog_timer();
  280. }

  281. //************************************** 3

  282. if(ee_temp1==0xf7)
  283. {
  284. uint fade_1,fade_2,fade_3,fade_4;
  285. fade_2=448; //384
  286. fade_4=448; //384
  287. while(fade_2!=0&ee_temp==0x07)
  288. {
  289. for(fade_3=512;fade_3>fade_4;fade_3--)
  290. //512
  291. {
  292. led_port=0x10;
  293. delay(1);

  294. }
  295. fade_3=512; //512
  296. fade_4--;
  297. watchdog_timer();
  298. for(fade_1=0;fade_1<fade_2;fade_1++)
  299. {
  300. led_port=0x08;
  301. delay(1);
  302. }
  303. fade_1=0;
  304. fade_2--;
  305. if(ee_temp!=0x07)
  306. {
  307. fade_2=0;
  308. }
  309. watchdog_timer();
  310. fade_2=448; //384
  311. fade_4=448; //384
  312. }
  313. }
  314. if(ee_temp1==0xf6)
  315. {
  316. uint fade_1,fade_2,fade_3,fade_4;
  317. fade_2=448; //384
  318. fade_4=448; //384
  319. while(fade_2!=0&ee_temp==0x06)
  320. {
  321. for(fade_3=512;fade_3>fade_4;fade_3--)
  322. //512
  323. {
  324. led_port=0x20;
  325. delay(1);
  326. }
  327. fade_3=512; //512
  328. fade_4--;
  329. watchdog_timer();
  330. for(fade_1=0;fade_1<fade_2;fade_1++)
  331. {
  332. led_port=0x10;
  333. delay(1);

  334. }
  335. fade_1=0;
  336. fade_2--;
  337. if(ee_temp!=0x06)
  338. {
  339. fade_2=0;
  340. }
  341. watchdog_timer();
  342. fade_2=448; //384
  343. fade_4=448; //384
  344. }
  345. }

  346. if(ee_temp1==0xf5)
  347. {
  348. uint fade_1,fade_2,fade_3,fade_4;
  349. fade_2=448; //384
  350. fade_4=448; //384
  351. while(fade_2!=0&ee_temp==0x05)
  352. {
  353. for(fade_3=512;fade_3>fade_4;fade_3--)
  354. //512
  355. {
  356. led_port=0x08;
  357. delay(1);
  358. }
  359. fade_3=512; //512
  360. fade_4--;
  361. watchdog_timer();
  362. for(fade_1=0;fade_1<fade_2;fade_1++)
  363. {
  364. led_port=0x20;
  365. delay(1);
  366. }
  367. fade_1=0;
  368. fade_2--;
  369. if(ee_temp!=0x05)

  370. {
  371. fade_2=0;
  372. }
  373. watchdog_timer();
  374. fade_2=448; //384
  375. fade_4=448; //384
  376. }
  377. }

  378. if(ee_temp1==0xf4)
  379. {
  380. while(ee_temp==4)
  381. {
  382. led_port=0x00;
  383. led_r=1;
  384. delay_1ms(200);

  385. led_port=0x00;
  386. led_r=1;
  387. led_g=1;
  388. delay_1ms(200);
  389. led_port=0x00;
  390. led_g=1;
  391. delay_1ms(200);
  392. watchdog_timer();
  393. led_port=0x00;
  394. led_g=1;
  395. led_b=1;
  396. delay_1ms(200);

  397. led_port=0x00;
  398. led_b=1;
  399. delay_1ms(200);

  400. led_port=0x00;
  401. led_b=1;
  402. led_r=1;
  403. delay_1ms(200);

  404. watchdog_timer();
  405. }
  406. }

  407. //************************************** 4
  408. if(ee_temp1==0xf3)
  409. {
  410. uint fade_1,fade_2,fade_3,fade_4;
  411. fade_2=416; //384
  412. fade_4=416; //384
  413. while(fade_2!=0&ee_temp==0x03)
  414. {
  415. for(fade_3=512;fade_3>fade_4;fade_3--)
  416. //512
  417. {
  418. led_port=0x10;
  419. delay(1);
  420. }
  421. fade_3=512; //512
  422. fade_4--;
  423. watchdog_timer();
  424. for(fade_1=0;fade_1<fade_2;fade_1++)
  425. {
  426. led_port=0x08;
  427. delay(1);
  428. }
  429. fade_1=0;
  430. fade_2--;
  431. if(ee_temp!=0x03)
  432. {
  433. fade_2=0;
  434. }
  435. watchdog_timer();
  436. fade_2=416; //384
  437. fade_4=416; //384
  438. }
  439. }
  440. if(ee_temp1==0xf2)
  441. {
  442. uint fade_1,fade_2,fade_3,fade_4;
  443. fade_2=384; //384
  444. fade_4=384; //384
  445. while(fade_2!=0&ee_temp==0x02)
  446. {
  447. for(fade_3=512;fade_3>fade_4;fade_3--)
  448. //512
  449. {
  450. led_port=0x20;
  451. delay(1);
  452. }
  453. fade_3=512; //512
  454. fade_4--;
  455. watchdog_timer();
  456. for(fade_1=0;fade_1<fade_2;fade_1++)
  457. {
  458. led_port=0x10;
  459. delay(1);
  460. }
  461. fade_1=0;
  462. fade_2--;
  463. if(ee_temp!=0x02)
  464. {
  465. fade_2=0;
  466. }
  467. watchdog_timer();
  468. fade_2=384; //384
  469. fade_4=384; //384
  470. }
  471. }
  472. if(ee_temp1==0xf1)
  473. {
  474. uint fade_1,fade_2,fade_3,fade_4;
  475. fade_2=348; //384
  476. fade_4=348; //384
  477. while(fade_2!=0&ee_temp==0x01)
  478. {
  479. for(fade_3=512;fade_3>fade_4;fade_3--)
  480. //512
  481. {
  482. led_port=0x08;
  483. delay(1);
  484. }

  485. fade_3=512; //512
  486. fade_4--;
  487. watchdog_timer();
  488. for(fade_1=0;fade_1<fade_2;fade_1++)
  489. {
  490. led_port=0x20;
  491. delay(1);
  492. }
  493. fade_1=0;
  494. fade_2--;
  495. if(ee_temp!=0x01)
  496. {
  497. fade_2=0;
  498. }
  499. watchdog_timer();
  500. fade_2=348; //384
  501. fade_4=348; //384
  502. }
  503. }

  504. if(ee_temp1==0xf0)
  505. {
  506. while(ee_temp==0)
  507. {
  508. led_port=0x00;
  509. led_r=1;
  510. delay_1ms(500);

  511. watchdog_timer();
  512. led_port=0x00;
  513. led_g=1;
  514. delay_1ms(500);
  515. led_port=0x00;
  516. led_b=1;
  517. delay_1ms(500);
  518. watchdog_timer();
  519. }
  520. }


  521. //******************************************** 5
  522. if(ee_temp1==0xef)
  523. {
  524. uint fade_1,fade_2,fade_3,fade_4;
  525. fade_2=384; //384
  526. fade_4=384; //384
  527. while(fade_2!=0&ee_temp==0x0f)
  528. {
  529. for(fade_3=512;fade_3>fade_4;fade_3--)
  530. //512
  531. {
  532. led_port=0x10;
  533. delay(1);
  534. }
  535. fade_3=512; //512
  536. fade_4--;
  537. watchdog_timer();
  538. for(fade_1=0;fade_1<fade_2;fade_1++)
  539. {
  540. led_port=0x08;
  541. delay(1);
  542. }
  543. fade_1=0;
  544. fade_2--;
  545. if(ee_temp!=0x0f)
  546. {
  547. fade_2=0;
  548. }
  549. watchdog_timer();
  550. fade_2=384; //384
  551. fade_4=384; //384
  552. }
  553. }
  554. if(ee_temp1==0xee)
  555. {
  556. uint fade_1,fade_2,fade_3,fade_4;
  557. fade_2=320; //384
  558. fade_4=320; //384
  559. while(fade_2!=0&ee_temp==0x0e)
  560. {
  561. for(fade_3=512;fade_3>fade_4;fade_3--)
  562. //512
  563. {
  564. led_port=0x20;
  565. delay(1);
  566. }
  567. fade_3=512; //512
  568. fade_4--;
  569. watchdog_timer();
  570. for(fade_1=0;fade_1<fade_2;fade_1++)
  571. {
  572. led_port=0x10;
  573. delay(1);
  574. }
  575. fade_1=0;
  576. fade_2--;
  577. if(ee_temp!=0x0e)
  578. {
  579. fade_2=0;
  580. }
  581. watchdog_timer();
  582. fade_2=320; //384
  583. fade_4=320; //384
  584. }
  585. }
  586. if(ee_temp1==0xed)
  587. {
  588. uint fade_1,fade_2,fade_3,fade_4;
  589. fade_2=320; //384
  590. fade_4=320; //384
  591. while(fade_2!=0&ee_temp==0x0d)
  592. {
  593. for(fade_3=512;fade_3>fade_4;fade_3--)
  594. //512
  595. {
  596. led_port=0x08;
  597. delay(1);
  598. }

  599. fade_3=512; //512
  600. fade_4--;
  601. watchdog_timer();
  602. for(fade_1=0;fade_1<fade_2;fade_1++)
  603. {
  604. led_port=0x20;
  605. delay(1);
  606. }
  607. fade_1=0;
  608. fade_2--;
  609. if(ee_temp!=0x0d)
  610. {
  611. fade_2=0;
  612. }
  613. watchdog_timer();
  614. fade_2=320; //384
  615. fade_4=320; //384
  616. }
  617. }
  618. if(ee_temp1==0xec)
  619. fade();
  620. //******************************************* 6
  621. if(ee_temp1==0xeb)
  622. {
  623. led_port=0x00;
  624. led_r=1;
  625. led_g=1;
  626. watchdog_timer();
  627. }
  628. if(ee_temp1==0xea)
  629. {
  630. led_port=0x00;
  631. //led_r=0;
  632. led_g=1;
  633. led_b=1;
  634. watchdog_timer();
  635. }
  636. if(ee_temp1==0xe9)
  637. {
  638. led_port=0x00;
  639. led_r=1;
  640. //led_g=0;
  641. led_b=1;
  642. watchdog_timer();
  643. }
  644. if(ee_temp1==0xe8)
  645. fade1();
  646. }

  647. void fade()
  648. {
  649. // uchar i;
  650. uint fade_1,fade_2,fade_3,fade_4;
  651. fade_2=512;
  652. fade_4=511;
  653. while(fade_2!=0&ee_temp==0x0c)
  654. {
  655. for(fade_3=512;fade_3>fade_4;fade_3--)
  656. {
  657. led_port=0x10;
  658. delay(1);

  659. }
  660. fade_3=512;
  661. fade_4--;
  662. watchdog_timer();
  663. for(fade_1=0;fade_1<fade_2;fade_1++)
  664. {
  665. led_port=0x08;
  666. delay(1);
  667. }
  668. fade_1=0;
  669. fade_2--;
  670. if(ee_temp!=0x0c)
  671. {
  672. fade_2=0;
  673. }
  674. }
  675. watchdog_timer();
  676. fade_2=512;
  677. fade_4=511;
  678. while(fade_2!=0&ee_temp==0x0c)
  679. {
  680. if(ee_temp!=0x0c)
  681. {
  682. fade_2=0;
  683. }
  684. for(fade_3=512;fade_3>fade_4;fade_3--)
  685. {
  686. led_port=0x20;
  687. delay(1);
  688. // watchdog_timer();
  689. }
  690. fade_3=512;
  691. fade_4--;
  692. watchdog_timer();
  693. for(fade_1=0;fade_1<fade_2;fade_1++)
  694. {
  695. led_port=0x10;
  696. delay(1);
  697. // watchdog_timer();
  698. }
  699. fade_1=0;
  700. fade_2--;
  701. }
  702. watchdog_timer();
  703. fade_2=512;
  704. fade_4=511;
  705. while(fade_2!=0&ee_temp==0x0c)
  706. {
  707. if(ee_temp!=0x0c)
  708. {
  709. fade_2=0;
  710. }
  711. for(fade_3=512;fade_3>fade_4;fade_3--)
  712. {
  713. led_port=0x08;
  714. delay(1);
  715. watchdog_timer();
  716. }
  717. fade_3=512;
  718. fade_4--;
  719. watchdog_timer();
  720. for(fade_1=0;fade_1<fade_2;fade_1++)
  721. {
  722. led_port=0x20;
  723. delay(1);
  724. watchdog_timer();
  725. }
  726. fade_1=0;
  727. fade_2--;
  728. }
  729. watchdog_timer();
  730. }

  731. void fade1()
  732. {
  733. // uchar i;

  734. uint fade_1,fade_2,fade_3,fade_4;
  735. fade_2=128;
  736. fade_4=127;
  737. while(fade_2!=0&ee_temp==0x08)
  738. {
  739. for(fade_3=128;fade_3>fade_4;fade_3--)
  740. {
  741. led_port=0x10;
  742. delay(1);
  743. }
  744. fade_3=128;
  745. fade_4--;

  746. for(fade_1=0;fade_1<fade_2;fade_1++)
  747. {
  748. led_port=0x08;
  749. delay(1);
  750. }
  751. fade_1=0;
  752. fade_2--;
  753. if(ee_temp!=0x08)
  754. {
  755. fade_2=0;
  756. }
  757. }
  758. watchdog_timer();
  759. fade_2=128;
  760. fade_4=127;
  761. while(fade_2!=0&ee_temp==0x08)
  762. {
  763. if(ee_temp!=0x08)
  764. {
  765. fade_2=0;
  766. }
  767. for(fade_3=128;fade_3>fade_4;fade_3--)
  768. {
  769. led_port=0x20;
  770. delay(1);
  771. }
  772. fade_3=128;
  773. fade_4--;
  774. for(fade_1=0;fade_1<fade_2;fade_1++)
  775. {
  776. led_port=0x10;
  777. delay(1);
  778. }
  779. fade_1=0;
  780. fade_2--;
  781. }
  782. watchdog_timer();
  783. fade_2=128;
  784. fade_4=127;
  785. while(fade_2!=0&ee_temp==0x08)
  786. {
  787. if(ee_temp!=0x08)
  788. {
  789. fade_2=0;
  790. }
  791. for(fade_3=128;fade_3>fade_4;fade_3--)
  792. {
  793. led_port=0x08;
  794. delay(1);
  795. }
  796. fade_3=128;
  797. fade_4--;
  798. for(fade_1=0;fade_1<fade_2;fade_1++)
  799. {
  800. led_port=0x20;
  801. delay(1);
  802. }
  803. fade_1=0;
  804. fade_2--;
  805. }
  806. watchdog_timer();
  807. }

  808. void init()
  809. {
  810. led_port=0x00;
  811. /*
  812. led_r=1;
  813. delay_1ms(500);

  814. led_port=0x00;
  815. led_g=1;
  816. delay_1ms(500);
  817. led_port=0x00;
  818. led_b=1;
  819. delay_1ms(500);
  820. led_port=0x00;
  821. */
  822. delay_1ms(2);
  823. WDT_CONTR=0x3f;
  824. delay_1ms(500);
  825. }

  826. //********************************
  827. void main()
  828. {
  829. init();
  830. Flag2=0;

  831. SP=0x60; //堆棧指針
  832. EX0=1; //允許外部中斷0,用于檢測紅外遙控器按鍵
  833. EA=1;
  834. num=255;

  835. while(1)
  836. {
  837. calc();
  838. }
  839. }

  840. //********************************************************************
  841. /*------------------------外部中斷0程序-------------------------*/
  842. /*------------------主要用于處理紅外遙控鍵值--------------------*/
  843. void int0() interrupt 0
  844. {
  845. uchar i;
  846. Flag2=0; ///////
  847. k=0;
  848. EX0=0; //檢測到有效信號關中斷,防止干擾
  849. for(i=0;i<4;i++)
  850. {
  851. delay1000();
  852. if(IR_RE==1){k=1;} //剛開始為9ms的引導碼.
  853. }
  854. led_port=0x00;
  855. if(k==0)
  856. {

  857. IR_decode(); //如果接收到的是有效信號,則調用解碼程序

  858. if(date[3]>=0xe8)
  859. {
  860. if(date[3]<=0xfb)
  861. {
  862. temp1=date[3];

  863. EEPROM_ERASE(0x2000); //STC_EEROM_0X2000 temp1
  864. EEPROM_write(0x2000,temp1);

  865. EEPROM_read(0x2000);
  866. ee_temp1=ISP_DATA;
  867. ee_temp=ee_temp1&0x0f;
  868. /*
  869. temp=date[3]&0x0f;
  870. EEPROM_ERASE(0x2004); //STC_EEROM_0X2004 temp
  871. EEPROM_write(0x2004,temp);
  872. */
  873. }
  874. else
  875. {
  876. EEPROM_read(0x2000);
  877. ee_temp1=ISP_DATA;
  878. ee_temp=ee_temp1&0x0f;
  879. }

  880. }
  881. delay2400();
  882. delay2400();
  883. delay2400();
  884. delay_1ms(500);
  885. }
  886. EX0=1; //開外部中斷,允許新的遙控按鍵
  887. }

  888. //*********************************************************************
復制代碼





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

使用道具 舉報

沙發
ID:79544 發表于 2015-11-13 12:27 | 只看該作者
好資料謝謝分享。樓主屏蔽的語句是不用片內PWM的部分嗎?求不用內部PWM的程序謝謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级黑人aaaaaaa做受 | 国产区在线 | 久久久久久国产精品免费免费狐狸 | 97色伦网| 午夜免费视频观看 | 天堂亚洲网 | 国产成人精品免费视频大全最热 | 精产国产伦理一二三区 | 久草热线 | 日日夜夜精品免费视频 | 亚洲欧美一区二区三区在线 | 成人欧美一区二区三区黑人孕妇 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 国产综合精品一区二区三区 | 日本三级电影在线观看视频 | 免费黄色录像片 | 成人激情视频免费在线观看 | 99精品久久 | 日本三级网站在线观看 | 国产精品久久久久久模特 | 成人不卡 | 日韩中文字幕视频 | 日本免费在线看 | 中午字幕在线观看 | 欧美 中文字幕 | 国产成人精品网站 | 欧美日韩一区二区在线 | 中文字幕一区在线观看视频 | 成人不卡| 日韩成人免费av | 日韩在线电影 | 欧美精品三区 | 国产欧美日韩综合精品一区二区 | caoporn免费 | 午夜伦4480yy私人影院 | 91色视频在线观看 | 成人做爰9片免费看网站 | 自拍视频一区二区三区 | 欧美在线色视频 | 精品国产一区三区 | 久久久国产一区二区三区 |