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

QQ登錄

只需一步,快速開始

搜索
查看: 1995|回復(fù): 6
收起左側(cè)

不用中斷實(shí)現(xiàn)51單片機(jī)0-99的動(dòng)態(tài)顯示?求指導(dǎo)

[復(fù)制鏈接]
ID:1022415 發(fā)表于 2022-4-28 15:32 來自觸屏版 | 顯示全部樓層 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請(qǐng)教一下大致的實(shí)現(xiàn)方法與思路,理清頭緒后我自己來寫程序去實(shí)現(xiàn),謝謝大家

不用中斷實(shí)現(xiàn)按鍵控制0-99的顯示,一個(gè)加一鍵,一個(gè)減一鍵,還有一個(gè)清零鍵。想問我怎么用c語言語句實(shí)現(xiàn)此功能?
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-4-28 16:56 來自觸屏版 | 顯示全部樓層
你至少說一下單片機(jī)型號(hào)吧?有些單片機(jī)帶硬件按鍵處理的,本來就不需要中斷
回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2022-4-28 17:17 | 顯示全部樓層
數(shù)碼管顯示任意數(shù)字                        https://www.acfun.cn/v/ac15187311_16
獨(dú)立按鍵的短按和長(zhǎng)按                          https://www.acfun.cn/v/ac15187311_20
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-4-28 18:51 | 顯示全部樓層
不能用什么中斷?定時(shí)中斷可不可以用?
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2022-4-28 20:56 | 顯示全部樓層
不要把中斷看作萬能膠,在主函數(shù)內(nèi)很容易實(shí)現(xiàn)此功能。 無標(biāo)題.jpg

  1. #include <REG51.H>

  2. sbit W1=P2^0;//十位
  3. sbit W2=P2^1;//個(gè)位
  4. sbit S1=P2^2;//++
  5. sbit S2=P2^3;//--
  6. sbit S3=P2^4;//清0

  7. unsigned char code table[]={//共陰數(shù)碼管段碼"0~f-."
  8.                 0x3f,0x06,0x5b,0x4f,
  9.                 0x66,0x6d,0x7d,0x07,
  10.                 0x7f,0x6f,0x77,0x7c,
  11.                 0x39,0x5e,0x79,0x71,0x40,0x80};

  12. void Delay(unsigned t)
  13. {
  14.         unsigned i,j;
  15.         for(i=t;i>0;i--)
  16.                 for(j=120;j>0;j--);
  17. }

  18. void main()
  19. {
  20.         unsigned char num=0;
  21.         unsigned char count=0;
  22.         bit sign=0;
  23.         bit flag=0;
  24.         while(1)
  25.         {
  26.                 if(!S1||!S2||!S3)
  27.                 {
  28.                         if(++count>=10 && sign==0)
  29.                         {
  30.                                 sign=1;
  31.                                 if(!S1){if(num<99)num++;}
  32.                                 if(!S2){if(num>0)num--;}
  33.                                 if(!S3)num=0;
  34.                         }
  35.                 }
  36.                 else{count=0;sign=0;}

  37.                 if(flag)
  38.                 {
  39.                         W1=1;W2=1;
  40.                         P0=table[num/10];
  41.                         W1=0;W2=1;flag=0;
  42.                 }
  43.                 else
  44.                 {
  45.                         W1=1;W2=1;
  46.                         P0=table[num%10];
  47.                         W1=1;W2=0;flag=1;
  48.                 }
  49.                 Delay(1);
  50.         }
  51. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:68468 發(fā)表于 2022-4-28 21:25 | 顯示全部樓層
動(dòng)態(tài)顯示跟中斷并沒有必然的聯(lián)系,不用中斷完全可以實(shí)現(xiàn)0-99的動(dòng)態(tài)顯示。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-4-28 22:21 | 顯示全部樓層
0、讓MM=0,跳到第5步。
1、查詢+1鍵,有則將MM+1,到100時(shí)清0,跳到第5步。
2、查詢-1鍵,有則將MM-1,這負(fù)時(shí)改成99,跳到第5步。
3、查詢清0鍵,有則將MM=0,跳到第5步。
4、跳到第1步
5、顯示變量MM的數(shù)字。這里可以加個(gè)延時(shí),也可以不加。
6、跳到第1步。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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