找回密码
 注册
查看: 345|回复: 3
打印 上一主题 下一主题

为什么只能显示个位,显示不了十位百位?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-16 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
求大佬帮忙看一看改一改吧,为什么只能显示个位,显示不了十位百位?
2 p( ]( t5 d6 W+ Q#include<reg51.h>
' V/ g; g6 E& Q8 g9 X2 m3 R, x#define uint unsigned int
9 J: o- m% @) x, N3 C#define uchar unsigned charsbit P2_3=P2^3;
3 Z" ?6 Z- j' Dsbit k1=P3^4;, N1 Y( b$ D$ c) Y" U
sbit k2=P3^5;
' ~( x* `* F$ Y$ U* `sbit k3=P3^6;
* Y7 q# Q( k) a2 R6 Esbit k4=P3^7;2 H% i0 u) m  w' b
sbit dula=P2^6;" H5 F- x; x& F5 ?5 v
sbit wela=P2^7;
$ m7 Q. k7 L+ g& q; y9 Nuint pwm,num;
7 Z: i' n% [. ?7 Kuchar temp,a;: q* n. ]8 d- Q) J5 ]! y
uchar code table[]=3 }  w1 O) ?- E& p/ ?
{ 0x3f ,0x06 ,0x5b ,0x4f,0x66 ,0x6d, 0x7d ,0x07 ,0x7f, 0x6f}& C+ G# F: r" M6 ^- T1 z
;' M! E( b- J! m, _) T1 a0 U+ n
uint G_H,G_L,D_H,D_L;void delay(uint t){uint x,y;for(x=t;x>0;x--)( L" ~9 O. d) Q+ D8 ?* ^
        for(y=150;y>0;y--);
, B  V3 l4 B& E}
2 R; {- e, R/ p! b- vvoid display(pwm)
& v5 y3 `) r$ M; W" K  f0 L4 [{
. G9 @  L+ V3 y3 b9 v" Dunsigned char m,n,q;m=pwm/100;n=pwm/100%10;q=pwm%10;
4 |) N( Q& d( w5 v0 d# M( i        dula=10=table[m];dula=0;wela=10=0xfe;wela=0;delay(1);* x9 {& H" V( A5 ]4 H- r
        dula=10=table[n];dula=0;wela=1;P0=0xfd;wela=0;delay(1);, u) V. {: H8 H. A
dula=1;7 \6 A4 L1 D) T' x/ P/ w
P0=table[q];
0 F6 }1 ~+ Q5 b; C, Y: n6 kdula=0;2 F5 t5 ?- Y9 }" r8 [
wela=1;
2 K. s1 ?! ~3 e7 CP0=0xfb;9 g1 H  Y, W  l8 T: q2 B2 |
wela=0;, ]9 @1 M5 Z% c# q, {
delay(1);
' \& R1 A/ [8 Q( Z! p}3 o! N! o8 i: S. x
void main()
  d' D( r1 @  d+ [, M3 i{        EA=1;  ET0=1;  TMOD=0x01;  TR0=1;        P2_3=0; while(1)        {    G_H=(65536-pwm)/256;    G_L=(65536-pwm)%256;    D_H=(65536-100+pwm)/256;    D_L=(65536-100+pwm)%256;     if(k1==0) {delay(10);while(!k1);TR0=1;pwm=50;}                 if(k2==0) {delay(10);while(!k2);pwm=(pwm==100)?100pwm+1);}                 if(k3==0) {delay(10);while(!k3);pwm=(pwm==0)?0pwm-1);}                 if(k4==0) {delay(10);while(!k4);TR0=0;P2_3=0;pwm=0;}                TF0=0;          display(pwm);                }}( ^6 I6 `" I! M8 t5 ^% e% l
void timer0() interrupt 1{    P2_3=~P2_3;    if(P2_3==1) {TH0=G_H;TL0=G_L;}    if(P2_3==0) {TH0=D_H;TL0=D_L;}}
$ {  d, z0 z1 i/ }+ e2 a& S1 o
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    推荐
    发表于 2022-11-16 11:04 | 只看该作者
    可以DEBUG看看

    该用户从未签到

    3#
    发表于 2022-11-16 11:13 | 只看该作者
    代码没有具体看,不过你不显示,应当是算错了吧,51单片机可以单步调试的。可以DEBUG看看

    该用户从未签到

    4#
    发表于 2022-11-16 13:23 | 只看该作者
    我看了,你是算错了。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-5-29 09:19 , Processed in 0.093750 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表