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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

此單片機程序如何讓不需要的0不顯示?

  [復制鏈接]
跳轉到指定樓層
樓主
定義和顯示函數如下
#include <REG52.H>
#define uint  unsigned int
#define uchar unsigned char
#define     Hidden  16  //DispTab[15]=0xff
uchar ms,shij,miao;
uchar shu1,shu2,shu_f;
bit a1;
sbit s1=P3^2;
sbit s2=P3^3;
sbit s3=P3^4;
sbit s4=P3^5;
sbit lin=P3^7;
sbit w1=P2^0;
sbit w2=P2^1;
sbit w3=P2^2;
sbit w4=P2^3;
sbit w5=P2^4;
sbit w6=P2^5;
sbit w7=P2^6;
sbit w8=P2^7;

uchar code su[]={
   0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void delay(uchar ms)
    {       //
  uchar i ;
  while(ms--)
  {
    for(i = 0 ; i<250;i++) ;
  }
   }


void xianshi()
      {
    P0=su[shij%100/10];
    w1=1;
    delay(1);
    w1=0;
    P0=su[shij%10];
    w2=1;
    delay(1);
    w2=0;
  
    P0=su[miao%100/10];
    w3=1;
    delay(1);
    w3=0;
    P0=su[miao%10];
    w4=1;
    delay(1);
    w4=0;
     P0=su[shu1%100/10];
     w5=1;
   delay(1);
   w5=0;
    P0=su[shu1%10];
    w6=1;
    delay(1);
    w6=0;
    P0=su[shu2%100/10];
    w7=1;
    delay(1);
    w7=0;
    P0=su[shu2%10];
    w8=1;
    delay(1);
    w8=0;
   
   }


QQ圖片20190624091841.png (142.49 KB, 下載次數: 42)

籃球計分器

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

使用道具 舉報

沙發
ID:570488 發表于 2019-6-24 10:59 | 只看該作者
通過if之類的條件判斷語句。比如當只有后面一位的時候,執行一種顯示模式。如果有高位大于零的時候,再顯示出來。
回復

使用道具 舉報

板凳
ID:570685 發表于 2019-6-24 11:37 | 只看該作者
把表示0的oxc0直接換成0xff讓他熄滅就好了
回復

使用道具 舉報

地板
ID:140275 發表于 2019-6-24 11:39 | 只看該作者
判斷首位為0送#20H顯示空,不為0正常顯示,依次類推
回復

使用道具 舉報

5#
ID:565305 發表于 2019-6-24 11:42 | 只看該作者
說個簡單的邏輯代碼,

假定 number 為待顯示的數
假定 show_enable 函數為顯示數碼管的函數(亮),入口參數分別為 顯示位置 和 顯示值。
假定 show_disable 函數為禁止顯示數碼管的函數(滅),入口參數為 顯示位置。

u8 seek=0; u16 t;
do
{
    t=number%10;  
    number=number/10;
    show(seek,t);
    seek++;
} while(number>0);

for(;seek<5;seek++)
{
    show_disable(seek);
}

簡單手工模擬下:

number=00078 時, 斷點在 while 處看到值
t=8,number=7,seek=1
t=7,number=0,seek=2

number=00100 時, 斷點在 while 處看到值
t=0,number=10,seek=1
t=0,number=1,seek=2
t=1,number=0,seek=3

正負數可以先判斷符號位,然后轉成正數再弄
回復

使用道具 舉報

6#
ID:332444 發表于 2019-6-24 11:45 | 只看該作者
P0=su[(miao%100/10>0?miao%100/10:255)];
回復

使用道具 舉報

7#
ID:529540 發表于 2019-6-24 11:46 | 只看該作者
額,你把位選關了不就行了,不過關了的話,10幾分時怎么辦?嗯。。加個判斷,=0就把位選關了。
回復

使用道具 舉報

8#
ID:105364 發表于 2019-6-24 11:49 | 只看該作者
判斷高位是不是0,是0關顯示
回復

使用道具 舉報

9#
ID:460466 發表于 2019-6-24 12:35 | 只看該作者
記得有的芯片有“無效零”顯示腳,,,,,,,,,,我說的是數字集成電路
回復

使用道具 舉報

10#
ID:570759 發表于 2019-6-24 13:39 | 只看該作者
把表示0的oxc0直接換成0xff讓他熄滅就好了
回復

使用道具 舉報

11#
ID:522502 發表于 2019-6-24 14:49 | 只看該作者
吧第一個管腳屏蔽了就行
回復

使用道具 舉報

12#
ID:245053 發表于 2019-6-24 14:51 | 只看該作者
在第一個非0數字出現前的數字都不顯示,其后的都要顯示,除非有小數點的個位數的0要顯示
回復

使用道具 舉報

13#
ID:564631 發表于 2019-6-24 16:44 | 只看該作者
顯示的時候判斷一下就可以了,當第一位數據是0的時候關掉第一位數碼的共同端就可以了,其他的數據管正常顯示,比如  P0=su[shij%100/10];
    w1=1;
    delay(1);
    w1=0;
語句中的W1,如果這個是首位數碼管的顯示是0就W1全部=0,使數碼管不工作,OK
回復

使用道具 舉報

14#
ID:569475 發表于 2019-6-24 17:14 | 只看該作者
將定義的位選由1變為0,比如w1=1改為w1=0;或者刪除該位選也可以
回復

使用道具 舉報

15#
ID:160500 發表于 2019-6-24 19:02 | 只看該作者
判斷要顯示的數是否小于10,是則把十位顯示關閉,否則顯示
回復

使用道具 舉報

16#
ID:7485 發表于 2019-6-24 19:26 | 只看該作者
如果最高位是“0”,則各段全部熄滅。然后判斷第二位,如果也是“0”.......
回復

使用道具 舉報

17#
ID:483407 發表于 2019-6-24 19:54 | 只看該作者
這么改:
void xianshi()
      {
    P0=su[shij%100/10];
    w1=1;   ////此行改為:if(P0==0xc0)w1=0;else w1=1;  //下面w3=1;w5=1;w7=1;類推
    delay(1);
    w1=0;
    P0=su[shij%10];
    w2=1;
    delay(1);
    w2=0;
回復

使用道具 舉報

18#
ID:207421 發表于 2019-6-24 21:36 | 只看該作者
判斷兩次
1. 判斷兩位數是否大于0,如果不大于0就關閉位選
2. 如果十位數大于0,就顯示十位數和個位數,否則只顯示個位數

如判斷 shij
        if(shij>0)
        {
                if((shij/10)>0)
                {
                        P0=su[shij/10];
                        w1=1;
                        delay(1);
                        w1=0;
                }else{
                        delay(1);
                        w1=0;
                }
                P0=su[shij%10];
                w2=1;
                delay(1);
                w2=0;
        }else{
                w1 = 0;
                w2 = 0;
                delay(1);
        }

下面的都這樣改,或封裝成函數也行
回復

使用道具 舉報

19#
ID:332444 發表于 2019-6-25 10:41 | 只看該作者
更正P0=(miao%100/10>0?su[miao%100/10]:255);
回復

使用道具 舉報

20#
ID:171556 發表于 2019-6-25 16:10 | 只看該作者
掃描時判斷要現實的值是否為0,是0就跳過這一位
回復

使用道具 舉報

21#
ID:160500 發表于 2019-6-25 16:53 | 只看該作者
個位的零還是要顯示的吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美一区 | 一区二区三区四区免费观看 | 精品久久国产 | 日韩一区二区免费视频 | 午夜一区 | 亚洲成人av| 青春草91 | 精品无码久久久久久国产 | 成人免费黄视频 | 日韩av成人在线观看 | 国产欧美一区二区精品久导航 | 欧美国产日韩一区二区三区 | 午夜午夜精品一区二区三区文 | 欧美精品在线播放 | 密桃av| 性福视频在线观看 | 成人av一区二区在线观看 | 欧美888| 久久午夜国产精品www忘忧草 | 亚洲国产精品一区二区三区 | 欧美日韩精品久久久免费观看 | 日韩另类| 欧美精品福利 | 久久伊人精品 | 国产福利精品一区 | 亚洲欧美视频一区 | 一区二区三区国产在线观看 | 风间由美一区二区三区在线观看 | 97综合在线 | 日本三级网 | 久久九九99 | 桃色五月| 精品视频在线观看 | 亚洲综合久久精品 | 日本在线视频一区二区 | 97精品超碰一区二区三区 | 亚洲国产精品一区二区第一页 | 欧洲色综合 | 97国产精品视频人人做人人爱 | 一区二区三区国产 | 国产精品视频免费观看 |