找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人發表文章前請先閱讀相關版規安全提問(回答) 和 永久尊貴會員 事宜
mgmega 無gejulia中文高中kkbox
book of teachingking exi沢村花恋歧路旅人sex ghou関西出身

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]為美好的世界獻上

桃園觀音文林路 女子

[繁]迷宮飯16-

[繁]魔王學院的不適任

[繁]關於我轉生變成史

[繁]為美好的世界獻上
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 955|回復: 0
打印上一主題下一主題

[作業]C語言 89S51修改 上數 →奇數 下數→偶數[複製鏈接]

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
69
積分
1499 點
潛水值
45418 米
跳轉到指定樓層
樓主
發表於 2013-5-16 02:00 PM|只看該作者|倒序瀏覽
本帖最後由 pop90231 於 2013-5-16 02:06 PM 編輯
  1. /* ch04-3-4.c -按鈕閞關應用(兩按鈕控制七段顯示器上下數) - P4-21 */
  2. //==宣告區==========================================
  3. #include    <reg51.h>    //    定義8051暫存器之標頭檔,P2-17~19
  4. #define    SEG    P0            //    定義七節顯示器接至Port 0
  5. /* 宣告七節顯示器驅動信號陣列(共陽) */
  6. char code TAB[10]={    0xc0, 0xf9, 0xa4, 0xb0, 0x99,    // 數字0-4
  7.                        0x92, 0x83, 0xf8, 0x80, 0x98 };    // 數字5-9
  8. sbit  PB1=P2^0;            //    宣告按鈕1接至P2.0
  9. sbit  PB2=P2^1;            //    宣告按鈕2接至P2.1
  10. void debouncer(void);    //    宣告防彈跳函數
  11. //==主程式=================================
  12. main()                    // 主程式開始
  13. {    unsigned char i=0;    //    宣告變數i初值=0
  14.     PB1=PB2=1;            //    規劃輸入埠
  15.     SEG=TAB[i];            //    輸出數字至七段顯示器
  16.     while(1)            //    無窮迴圈,程式一直跑
  17.     {    if (PB1==0)        //    判斷PB1是否按下
  18.         {    debouncer();//    呼叫防彈跳函數
  19.             i= (i<9)? i+1:0;//    若i<9則i=i+1,若i>=9清除為0
  20.             SEG=TAB[i];    //    輸出數字至七段顯示器
  21.             while(PB1==0);    //    PB1是否按住?
  22.             debouncer();    //    呼叫防彈跳函數
  23.         }                //    if敘述結束
  24.         if (PB2==0)        //    判斷PB2是否按下     
  25.         {    debouncer();//    呼叫防彈跳函數
  26.             i= (i>0)? i-1:9;//    若i>0則i=i-1,i<=0重設為9
  27.             SEG=TAB[i];    //    輸出數字至七段顯示器
  28.             while(PB2==0);    //    PB1是否按住?
  29.             debouncer();    //    呼叫防彈跳函數
  30.         }                //    if敘述結束
  31.     }                    //    while迴圈結束   
  32. }                        //    主程式結束
  33. //==副程式==================================
  34. /* 防彈跳函數函數,延遲約20ms */
  35. void debouncer(void)    //    防彈跳函數開始
  36. {    int i;                //    宣告整數變數i
  37.     for(i=0;i<2400;i++);    //    計數2400次,延遲約20ms
  38. }                        //    防彈跳函數結束
複製代碼

...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部