欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機60秒倒計時可以了,把它變成9999倒計時 該怎么辦? [打印本頁]

作者: shenqiwei    時間: 2022-7-12 22:57
標題: 單片機60秒倒計時可以了,把它變成9999倒計時 該怎么辦?
謝謝大家

%3W99DYA%1Y)6Z~C9)SS}2F.png (7.46 KB, 下載次數: 13)

%3W99DYA%1Y)6Z~C9)SS}2F.png

1.png (18.78 KB, 下載次數: 69)

1.png

2.png (12.69 KB, 下載次數: 62)

2.png

作者: wulin    時間: 2022-7-13 07:46

  1. #include <reg51.H>

  2. sbit P_HC595_SER   = P2^0;
  3. sbit P_HC595_SRCLK = P2^1;
  4. sbit P_HC595_RCLK  = P2^2;

  5. unsigned char code table[]={
  6. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. unsigned char code wela[]={
  8. 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  9. unsigned char data dis_buf[8];                //緩存數組
  10. unsigned int Cnt_ms=0,Cnt_s=9999;

  11. /**************** 初始化定時器0函數 ******************/
  12. void Timer0Init(void)                //1毫秒@12.000MHz
  13. {
  14.         TMOD &= 0xF0;                //設置定時器模式
  15.         TMOD |= 0x01;                //設置定時器模式
  16.         TL0 = 0x18;                //設置定時初始值
  17.         TH0 = 0xFC;                //設置定時初始值
  18.         TF0 = 0;                //清除TF0標志
  19.         TR0 = 1;                //定時器0開始計時
  20.         ET0 = 1;
  21.         EA  = 1;
  22. }

  23. /**************** 向HC595發送一個字節函數 ******************/
  24. void Send_595(unsigned char dat)
  25. {               
  26.         unsigned char i;
  27.         for(i=0;i<8;i++)
  28.         {
  29.                 dat <<= 1;
  30.                 P_HC595_SER  = CY; //溢出位賦值數據輸出端
  31.                 P_HC595_SRCLK = 1; //移位時鐘
  32.                 P_HC595_SRCLK = 0;
  33.         }
  34. }
  35. /**************** 向HC595發送2個字節驅動碼 ******************/
  36. void DisplayScan(void)
  37. {       
  38.         static unsigned char i;
  39.         Send_595(wela[i]);//向HC595發送位碼
  40.         Send_595(dis_buf[i]);//向HC595發送段碼
  41.         P_HC595_RCLK = 1;//鎖存輸出數據
  42.         P_HC595_RCLK = 0;
  43.         i=++i%4;
  44. }

  45. void main()
  46. {
  47.         P_HC595_SRCLK = 0;//初始化移位時鐘端
  48.         P_HC595_RCLK  = 0;//初始化鎖存輸出端
  49.         Timer0Init();
  50.         while(1)
  51.         {
  52.                 dis_buf[0]=table[Cnt_s/1000%10];
  53.                 dis_buf[1]=table[Cnt_s/100%10];
  54.                 dis_buf[2]=table[Cnt_s/10%10];
  55.                 dis_buf[3]=table[Cnt_s%10];
  56.         }
  57. }

  58. void Timer0Interrupt(void) interrupt 1
  59. {
  60.         TL0 = 0x18;                //設置定時初始值
  61.         TH0 = 0xFC;                //設置定時初始值
  62.         if(++Cnt_ms>=1000)
  63.         {
  64.                 Cnt_ms=0;
  65.                 if(Cnt_s>0)Cnt_s--;
  66.         }
  67.         DisplayScan();
  68. }

復制代碼




作者: haiyang201    時間: 2022-7-13 07:47
直接擴展不就行了  數組4位都有賦值
作者: man1234567    時間: 2022-7-13 08:23
看來你也和格力一樣掌握了核心科技,代碼都不貼全而且只有圖示
作者: lkc8210    時間: 2022-7-13 11:06


作者: 君工創    時間: 2022-7-13 11:16
把60換成9999它就從9999開始倒啦。
作者: 大漠落日    時間: 2022-7-13 12:36
這么簡單的問題,只要動動手,很快就找到解決方法了
作者: shenqiwei    時間: 2022-7-13 16:24
小弟謝謝,各位大神.
作者: herui2128    時間: 2022-7-13 20:08
定義就錯了unsigned char 是0-255。要改unsigned int,那個小姐姐頭像注釋得好
作者: shenqiwei    時間: 2022-7-13 21:24
lkc8210 發表于 2022-7-13 11:06

可以了,謝謝





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1