|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
求大佬帮忙看一看改一改吧,为什么只能显示个位,显示不了十位百位?
4 S( `& D; T. g/ l; l#include<reg51.h>
2 @0 t D& u: R6 q#define uint unsigned int* y& N' P8 ]+ U; R
#define uchar unsigned charsbit P2_3=P2^3;
# X, K/ C9 A/ a jsbit k1=P3^4;/ Z9 t2 O* d T" o
sbit k2=P3^5;
! p3 k# s+ d5 C# i: x, t# `+ Ksbit k3=P3^6;
0 k$ E) E; z2 \% b# Gsbit k4=P3^7;
. U1 T7 [( k8 \# _, nsbit dula=P2^6;2 C6 m0 N; [0 E' C9 ]% y
sbit wela=P2^7;/ ^/ m( o8 G2 g2 v; z
uint pwm,num;
* A! v7 @) Y- p. E s1 Wuchar temp,a;
4 w9 J4 q7 \4 C/ Y7 Xuchar code table[]=
$ i' i* e6 w) ]4 g3 E{ 0x3f ,0x06 ,0x5b ,0x4f,0x66 ,0x6d, 0x7d ,0x07 ,0x7f, 0x6f}
% V* U, O+ `1 U2 E+ i+ T;- D8 a! d! g+ a5 Y1 p. @* ~, }' j
uint G_H,G_L,D_H,D_L;void delay(uint t){uint x,y;for(x=t;x>0;x--)
" u* f4 U4 @7 F8 v3 j) v: F for(y=150;y>0;y--);1 ^. Z, f4 ]7 _6 m5 c6 W
}4 d# w6 k9 s9 d% U4 @/ ?& p
void display(pwm)
& Q0 ^# ~' N- N' x% `/ Y9 z8 R& M{& A2 \5 R* ?3 x" D8 Z3 B: H4 t
unsigned char m,n,q;m=pwm/100;n=pwm/100%10;q=pwm%10;
& C2 a, G1 b' y. ^+ k! Y dula=1 0=table[m];dula=0;wela=1 0=0xfe;wela=0;delay(1);
5 h" g# I$ ~+ x8 j% A0 n- C, X dula=1 0=table[n];dula=0;wela=1;P0=0xfd;wela=0;delay(1);; E1 Y8 a* p# c2 _7 [: E
dula=1;
/ }/ o2 ]/ s8 ~; O: g" MP0=table[q];
# h' ` D5 o5 O& Cdula=0;0 e9 {) H* W7 D. J3 o
wela=1;/ j9 v! {7 @5 Q# |3 f9 y( U
P0=0xfb;3 v& L: x& P$ P) O, F
wela=0;
4 c* Q$ ?% |: }9 r3 fdelay(1);
7 Y# {8 V9 v0 u7 ]}/ ]6 y+ v- e/ g- z( F$ o( m, y' e3 d
void main()
. ?4 K) z4 H6 {# Z{ 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)?100 pwm+1);} if(k3==0) {delay(10);while(!k3);pwm=(pwm==0)?0 pwm-1);} if(k4==0) {delay(10);while(!k4);TR0=0;P2_3=0;pwm=0;} TF0=0; display(pwm); }}) m0 t4 J) s3 N9 V. [ V3 }1 D/ M' d
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;}}2 F% ]# ]9 P/ @" S
|
|