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

QQ登錄

只需一步,快速開始

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

51單片機(jī)通過(guò)按鍵控制流水燈方向源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:256407 發(fā)表于 2017-12-2 17:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
通過(guò)按鍵控制流水方向
單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. unsigned char i = 0, temp;
  4. unsigned char bdata j; //在位尋址區(qū)定義字節(jié)變量
  5. sbit j0 = j ^ 0; //定義位變量
  6. void main(void)
  7. {
  8.   TMOD = 0x01; //設(shè)定T0定時(shí)方式1
  9.   TH0 = (65536 - 10000) / 256; //定時(shí)
  10.   TL0 = (65536 - 10000) % 256;
  11.   TR0 = 1;
  12.   ET0 = 1; //允許T0中斷
  13.   PT0 = 1; //設(shè)定T0為高優(yōu)先級(jí)

  14.   IT0 = 1; //外部中斷輸入下降沿有效
  15.   EX0 = 1; //允許X0中斷
  16.   EA = 1; //開放總中斷

  17.   temp = 0xfe;
  18.   P1 = temp;
  19.   while(1);
  20. }
  21. void T0_int(void) interrupt 1 //每隔10ms執(zhí)行一次
  22. {
  23. TH0 = (65536 - 10000) / 256; //定時(shí)
  24. TL0 = (65536 - 10000) % 256;
  25. i++;
  26. if(i >= 100) {
  27.   i = 0;
  28. if(j0 == 0) temp = _crol_(temp, 1);
  29. if(j0 == 1) temp = _cror_(temp, 1);
  30. P1 = temp;
  31. }
  32. }
  33. void X0_int(void) interrupt 0 using 1
  34. {
  35.   unsigned char k;
  36.   j0 = ~j0; //改變運(yùn)動(dòng)方向
  37.   for(k = 200; k > 0; k--); //延時(shí)一會(huì)再退出,以避免抖動(dòng)
  38. }

復(fù)制代碼

所有資料51hei提供下載:
通過(guò)按鍵控制流水方向.rar (21.51 KB, 下載次數(shù): 36)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:437990 發(fā)表于 2018-12-6 21:03 | 只看該作者
請(qǐng)問(wèn)為什么按下按鍵j0 取反要重新在外部中斷里面取反 謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表