欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
此單片機程序如何讓不需要的0不顯示?
[打印本頁]
作者:
花花草草2018
時間:
2019-6-24 09:22
標題:
此單片機程序如何讓不需要的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)
下載附件
2019-6-24 09:21 上傳
籃球計分器
作者:
阿怪狗HDD
時間:
2019-6-24 10:59
通過if之類的條件判斷語句。比如當只有后面一位的時候,執行一種顯示模式。如果有高位大于零的時候,再顯示出來。
作者:
Moamore
時間:
2019-6-24 11:37
把表示0的oxc0直接換成0xff讓他熄滅就好了
作者:
1534545848
時間:
2019-6-24 11:39
判斷首位為0送#20H顯示空,不為0正常顯示,依次類推
作者:
egypt
時間:
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
正負數可以先判斷符號位,然后轉成正數再弄
作者:
xianfajushi
時間:
2019-6-24 11:45
P0=su[(miao%100/10>0?miao%100/10:255)];
作者:
ccdmcu
時間:
2019-6-24 11:46
額,你把位選關了不就行了,不過關了的話,10幾分時怎么辦?嗯。。加個判斷,=0就把位選關了。
作者:
47okey
時間:
2019-6-24 11:49
判斷高位是不是0,是0關顯示
作者:
海闊天空8
時間:
2019-6-24 12:35
記得有的芯片有“無效零”顯示腳,,,,,,,,,,我說的是數字集成電路
作者:
gjh147369
時間:
2019-6-24 13:39
把表示0的oxc0直接換成0xff讓他熄滅就好了
作者:
AZAZELl
時間:
2019-6-24 14:49
吧第一個管腳屏蔽了就行
作者:
pcf2000
時間:
2019-6-24 14:51
在第一個非0數字出現前的數字都不顯示,其后的都要顯示,除非有小數點的個位數的0要顯示
作者:
quanquan12
時間:
2019-6-24 16:44
顯示的時候判斷一下就可以了,當第一位數據是0的時候關掉第一位數碼的共同端就可以了,其他的數據管正常顯示,比如 P0=su[shij%100/10];
w1=1;
delay(1);
w1=0;
語句中的W1,如果這個是首位數碼管的顯示是0就W1全部=0,使數碼管不工作,OK
作者:
ligeyu
時間:
2019-6-24 17:14
將定義的位選由1變為0,比如w1=1改為w1=0;或者刪除該位選也可以
作者:
liuzx66
時間:
2019-6-24 19:02
判斷要顯示的數是否小于10,是則把十位顯示關閉,否則顯示
作者:
ahshmj
時間:
2019-6-24 19:26
如果最高位是“0”,則各段全部熄滅。然后判斷第二位,如果也是“0”.......
作者:
wangwing
時間:
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;
作者:
lwh999995
時間:
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);
}
下面的都這樣改,或封裝成函數也行
作者:
xianfajushi
時間:
2019-6-25 10:41
更正P0=(miao%100/10>0?su[miao%100/10]:255);
作者:
wadz3652002
時間:
2019-6-25 16:10
掃描時判斷要現實的值是否為0,是0就跳過這一位
作者:
liuzx66
時間:
2019-6-25 16:53
個位的零還是要顯示的吧
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1