找回密码
 注册
关于网站域名变更的通知
查看: 453|回复: 1
打印 上一主题 下一主题

基于单片机的智能计算机程序 可以实现加减乘除运算

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-10 13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
基于单片机的智能计算机程序 可以实现加减乘除运算
1 ]# d1 r, s3 E9 B$ J  C8 I! d1 T8 H, M6 \
4 l0 Z5 A" U( h

2 T( @* K* j* k- A3 I单片机源程序:  Z) `& y, U( Q) {. q! M) q: l
/*  S16 S12 S8 S4分别是123+
7 W. Z$ Z7 O7 n# ?$ I: G. v! Q/ c        S15 S11 S7 S3分别是456-
5 y$ @# V) Y8 D2 @4 i        S14 S10 S6 S2分别是789*4 j2 ?, C# X2 x. I5 M5 V5 R8 j7 s
        S13 S9 S5 S1分别是0 CLR = /
7 B- j( X  J1 I: `- I/ k/ p*/
' @5 G7 |5 [, {$ _/ M/* 实现两个数的运算,每个数的位数至少可以八位  */
$ W" Z& l4 \6 B' m, I. s3 m#include<reg52.h>                        ! ~7 @( L& Y$ x) ]/ [
typedef unsigned char uint8;
7 x# A8 X* a4 Q. n: E' otypedef unsigned int uint16;
! s1 [) |! `0 Q5 asbit rw=P2^5;9 C( I8 r! x9 N# E
sbit rs=P2^6;6 Z. R) u% M# M: }0 G5 g6 i' @
sbit en=P2^7;
" s- f% A/ h. ^$ Csbit led=P3^7;
1 P3 m. A' X+ Q; h* n5 @9 r! Isbit psb=P3^2;
/ ?/ S. X& z8 G# w$ b; O3 jsbit beep=P2^0;' n4 F7 V) g! c6 T$ ^) V% J# W# `
uint8 key,num;3 G2 `+ f, X0 H4 A, l' @
uint8 fuhao;//定义具体的那个符号,是加减还是乘除。. F) l) s5 H  c: O( S
uint8 flag;        //定义有没有按下符号键,这个是统称8 S# e) p8 p( E8 ~
long a,b,c,d;        //定义运算数据的第一个和第二个及等于的数变量2 o1 b0 C. G5 V6 r( e
uint8 k; //定义小数点后面显示的位数
9 u$ O+ r5 j+ t' c8 auint8 biao,keyflag;
; x- Y. T. f6 G4 I/ o9 Quint8 dat1[]={1,2,3,0x2b-0x30,4,5,6,0x2d-0x30,7,8,9,0x2a-0x30,0,0x01-0x30,0x3d-0x30,0x2b-0x30 };//保存显示的数据% m! j6 T! S- O6 x  M' V4 p# b
void delay(uint16 i)9 A( M2 @6 d& \& W
{
6 {! u3 s/ B" H3 A* m( N9 E/ B        while(i--);, k3 ~8 q1 ^9 i; I* K  _: y) J& F
}
. h( e. D4 C$ g% Q# Pvoid write_com(uint16 com)# A* h$ C% e: n" s1 J, L, F
{% R2 Y2 \7 U: T# y5 K9 q2 a/ w
rs=0;
/ X9 A/ o- G* ?% q) x P0=com;$ d# n$ ]  \$ ]/ `" i# Y
delay(500);
& H1 o# \0 Y; j3 i# \: Y: V en=1;
. o. N, L% A( {' p2 J delay(500);. I6 w8 H2 q! W4 v6 V
en=0;
9 w, E) b5 n) n% i }
3 K3 y  G+ Z5 t3 j: R5 i7 ?. R8 lvoid write_data(uint16 date)
4 U; C4 b. @9 q {
' ~7 y- v% N2 z rs=1;
5 b0 G6 c+ v/ M" @5 Y P0=date;
" B' ~* I- K5 \, q1 v2 h delay(500);
. ]+ ?  \0 i  N7 l6 T9 {, X* |7 _ en=1;8 @5 Y) t- Y7 H. W0 c# q
delay(500);" \( }* m5 R) L* i! M8 j  P4 s1 D7 B. `
en=0;+ E5 Q8 @% E& t$ s# V, T9 q# Z
}
( ^) I9 @+ U+ G: U# l/ _! V1 tvoid lcdinit()+ d4 R- D8 f4 K# ^9 K
{
5 P% q2 E; R7 e7 K& [+ ]& f! R        psb=1;5 ~1 L& Q# D2 S3 E( r5 y' J
rw=0;4 z! C% Z1 [+ p  F3 d' G
en=0;9 ^1 P' x5 K% B5 N7 w6 L- `0 r
  write_com(0x30);8 y2 V8 m$ E) u( O7 F" r" P
delay(500);
, [" F8 U) i. _, O' ]3 }  write_com(0x0c);+ c- b  P# m- j' l; u- M
delay(500);- V5 O( i+ I" ~! w5 f
write_com(0x01);
: W5 w7 h* E/ r4 B2 w4 H. X delay(500);
( i/ O+ y% Q  |. w2 h% ]        key=0;
3 A0 j$ S2 A% A        num=0;) z6 G5 D) n( Q
        flag=0;
2 a3 f1 C, j7 w% z- Y        fuhao=0;
( [5 Y$ w: o2 `% J9 S: J        a=0;
+ g" l  t  S- z) v2 F        b=0;% h5 w- {; z1 a' C
        c=0;
. x8 @7 N, M/ z/ r" g        d=0;; V6 l$ s: [: F& Y) ?) y+ }
        biao=0;- [+ U' S3 b! J: {$ U& c% T" O
        led=0;
0 V3 M. }" T4 d; K  E}
4 w! o- ^$ ^5 t3 R* I7 F# L( zvoid keyscan()
6 B6 T) M; I. v0 L. J{  U% H% _# l# j2 ~1 i% Y+ }
        P1=0xfe;   //令第一行为0,然后判断是哪一列按下) ~5 S. i. u  ?, v! e0 P) I
        if(P1!=0xfe)$ C( V3 t! p8 @% g0 J
        {' ~3 c" j7 f) G: O; o
                delay(1000);
+ _( Y* f/ R: d& ^7 Y. {7 d                if(P1!=0xfe)
$ E! t( q6 P) a+ {% I/ c                {
( F$ P8 a" ]1 Q9 M% _3 U( X                        key=P1&0xf0;* {& e: J( j, {: K( S9 {
                        switch(key)
7 g' I9 I: V% K# j; p                        {# m  K* Q8 A- Z4 k( Y
                                case 0xe0: num=0;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //1
# {9 c9 Q+ z# @                                case 0xd0: num=1;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //2
8 O: L* h8 z4 v. J# V- i) `: h                                case 0xb0: num=2;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //3
8 }- A+ o8 z% S4 B                                case 0x70: num=3;break;          //加" w1 r7 M" L8 `( |0 V
                        }
- I( }3 L( L5 z# U+ h6 p                }- H! i7 A7 M" V: l6 P5 l8 o: o
                while(P1!=0xfe);5 |+ u  z) A" m: u0 a, [, c
                if(num==0||num==1||num==2)         //确认第一行的数1,2,37 ~$ Y/ _3 p; @
                {
* n+ |) t" g0 ?$ G9 H. M/ t. n                        if(flag==0)         //没有按下符号键
4 F/ T+ j+ {9 f/ b                        {
! f) {# X6 F8 Z7 F                                //led=1;' v4 ~! o( K6 v- U8 P) }) W) Q
                                a=a*10+dat1[num];        ) j6 F2 g4 ]* d# K& F8 |5 f' x
                        }- ]; r1 G* m; n+ z6 m
                        else, y! l) [! P* [, P& _; w
                        {4 }1 j8 F2 ]- t  I3 l' v, y
                                //led=1;/ O3 N3 U5 }( p+ i: r
                                b=b*10+dat1[num];" `! C# P, O5 C( q0 z5 ^
                        }
1 [& \7 j0 V2 E+ d* ]0 O* T               
; \/ j9 x, [9 n6 e/ @. y# B9 Q                }5 ?% X% r6 ?5 e0 j; G
                if(num==3)% z" K$ i) J0 W- {% h5 N) M
                {( d" h8 c. Z3 T: S) k
                        //led=0;' H5 H1 z2 ]5 v
                        flag=1;
* l4 T& a9 c( c0 }1 b                        fuhao=1;//加号+        ; |# h' k2 p: b7 A  Q
                }
- y/ H7 \2 t( v; t, D                write_data(0x30+dat1[num]);
8 I0 `8 ?5 i2 m" |& H, E        }/ l8 N+ u% c+ ]/ w

: d' s) K: q. K" P! L3 N        P1=0xfd;                                //令第二行为0,判断是哪一列按下
: ^; c% l' T: d( ?3 i2 C3 D( f        if(P1!=0xfd)
- V% K8 U1 k- T7 R9 D        {6 Q  K  b0 j' A0 Y
                delay(1000);  B) [) R" c. }9 B- ^2 `) _0 H# E4 d
                if(P1!=0xfd)
- g0 i, _+ B4 L, q* w$ p, c+ F                {  v' c. m* R% C* M) r0 h
                        key=P1&0xf0;3 r0 a$ H( Y# y, |# O
                        switch(key)" f+ `) H. P% S$ `$ C: O
                        {8 E5 K5 q5 Z* H" F
                                case 0xe0: num=4;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //4                                 
' ^/ v9 k7 F* u8 z& C& T                                case 0xd0: num=5;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //53 ^# ?9 T6 z" B
                                case 0xb0: num=6;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //6' c) z0 o* k# N7 @
                                case 0x70: num=7;break;          //减—
" u9 @/ S4 Q5 |                        }        ) j1 @0 n" C: g: I7 u: O, w* I
                }
- Z1 O( O  W1 r2 y4 V: l* f                while(P1!=0xfd);
  R& W* f* w- \; r                if(num==4||num==5||num==6)9 j  j1 S% l6 t8 D% x
                {$ f( u- U2 h- Y+ c4 h* d
                        if(flag==0)         //没有按下符号键
/ b3 [9 E3 s! ^& A% P                        {
6 p" \2 w  n; T+ H                                //led=1;" n' a1 p+ {2 F; W: D
                                a=a*10+dat1[num];          S5 W7 l+ z" c! }+ b1 `" a$ d
                        }: D  @# N/ E6 }9 e$ @" z( a
                        else9 P5 A7 a1 T9 ~; ?* Q% \, _# p
                        {
, Q9 B) z% T5 q7 o) C) v! h                                //led=1;
2 n# u  A% l$ b4 o- H                                b=b*10+dat1[num];' b( {4 |% v9 J+ K2 {% d9 K
                        }                        
/ V5 M( Q: b/ o7 h7 y                }7 e/ v' I$ k3 c" X2 W$ n" S
                else
7 f9 W; o& i0 G1 F8 `$ Q5 r: M                {
) l! v# T: d0 R, y                        flag=1;% \3 V( ?7 ]: r! g
                        fuhao=2;//带表减号: l$ \9 C" {* h' D2 K6 j. B
                }1 \; }# y& w- R6 m% a  @
                write_data(0x30+dat1[num]);2 E% R: v7 i# n8 l
        }5 m# P' x+ `7 t! w

- h# Z! r9 |& ]! J& S        P1=0xfb;                 //令第三行为0,判断哪一列按下
+ Y  V9 G' g+ Q6 P* o8 ^  @        if(P1!=0xfb)
+ Y% f3 a! m4 |( ]4 B        {/ H; S  w# B1 E8 B/ O) h
                delay(1000);8 J' j* \& G8 x& ~  d4 y5 ^
                if(P1!=0xfb)
' {( i8 ^) t& H$ e7 G) ^                {% V5 ~' l6 S  `1 `9 w
                        key=P1&0xf0;
2 e9 I: O" v$ U                        switch(key); Q8 _. {/ ]1 ~2 R
                        {
3 k( c* t8 m: X" g! @. J                                case 0xe0: num=8;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //7# Y9 W3 \) `, }4 q
                                case 0xd0: num=9;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //80 O: ^8 T) @, p& }. W4 w
                                case 0xb0: num=10;if(keyflag==1){keyflag=0;write_com(0x01);};break;  //9
$ n+ ]: E7 ^0 @4 {% }                                case 0x70: num=11;break;  //乘*
' o% x+ M4 ]+ J$ G( O* a, d                        }        
; w7 Y2 e2 ~1 F                }
0 B) b# E2 s! L8 Y                while(P1!=0xfb);# Y3 X5 x4 \- `6 Q
                if(num==8||num==9||num==10)6 P- C( \9 x2 C$ n
                {7 U0 O! O$ H5 A3 Y) f; B
                        if(flag==0)         //没有按下符号键
- W7 n3 |/ i( `+ ^$ e1 ~                        {
! @, h. r! G: {8 M5 D                                //led=1;% E, T9 `7 R$ z7 r. d/ b% J6 w' c
                                a=a*10+dat1[num];        
- o  R2 ]5 N2 z+ t                        }" M9 L7 b+ Q! Q/ J6 f  @; R* z
                        else
/ b6 J" t. Q$ F& p2 Z                        {
- e/ L1 m2 J3 R, N; D. E( e/ Z2 Q                                //led=1;
0 l& u" g0 h; ^0 g; l/ ~9 R0 o3 a! `                                b=b*10+dat1[num];  T4 ^# V1 y3 W& `+ Y- _8 L& N+ F' U
                        }                        
% b$ L+ Z) z" J% ^/ ?2 {7 B8 }4 X                }
1 a( M! D; y4 w2 S( S                else' F0 z0 j0 A. k0 _$ s
                {" l' R4 d, t" E3 U# Y3 y
                        flag=1;
0 h  Y$ J7 g. k5 I: `                        fuhao=3;//带表乘号*
( K5 _' Y. B, t                }% J0 o- `& u( H2 Z, j& @
                write_data(0x30+dat1[num]);
1 H9 B7 _1 s- t" K9 a        }! U3 [) f9 k% m
; J% Z1 F% G$ x9 w+ l$ ?
        P1=0xf7;                 //令第四行为0,判断哪一列按下2 b1 G3 G' ^( h$ P4 B
        if(P1!=0xf7)
7 ^  F. l% ~  i9 j5 B        {7 k  s* |4 r/ d. p2 E
                delay(1000);( @& x; x5 F' d8 ~) R8 a
                if(P1!=0xf7)2 P; |1 Z/ c5 I- E' m. K. ]
                {
# i  g0 t( P) u1 _' E$ X2 P                        key=P1&0xf0;
4 k& v4 K9 u0 D6 L6 H. @3 E: N" {                        switch(key)  C, P8 P( }$ G3 ?) d: T
                        {/ ^5 i- U2 C4 h6 V( q6 z" N
                                case 0xe0: num=12;if(keyflag==1){keyflag=0;write_data(0x01);};break;  //0$ \9 _7 B% L+ |+ ]# u0 \+ w
                                case 0xd0: num=13;break;  //清除rst$ }+ W+ |6 T! w  D- h, }
                                case 0xb0: num=14;break;  //等号=
$ i8 e& b, z- l) S9 o7 ~                                case 0x70: num=15;break;  //除/' G: C+ n, \4 I3 l
                        }        5 t& O& d9 A; h0 b+ B3 ~  Q% I
                }/ E% w" r" H9 W0 B- W
                while(P1!=0xf7);( b& g; Q% z3 d% h5 b. g
                switch(num)8 E6 g2 a) Y0 T! s$ v
                {- |  ]$ E( b' x9 \6 R  J
                        case 12:
3 w% O; K2 v8 ^: v* A                                        if(flag==0)         //没有按下符号键4 U# J" x; H4 |3 A$ i
                                        {" H. w8 K4 T8 ^0 \  M
                                                //led=1;
9 j- q- C: J. ~/ Y5 h. j8 U                                                a=a*10+dat1[num];! d  k3 L( ]6 {4 G) C9 g" z
                                                write_data(0x30);        
: E: \: f. L) u  x$ K& B                                        }
& Z& N3 J$ U+ R0 V                                        else' T( S+ x" G- V8 Z% |0 F6 o1 h9 A
                                        {
8 Z& f; o( M7 Y" K' S; @                                                //led=1;
& P/ _& Q) A4 z1 P3 j7 Y9 s0 U                                                b=b*10+dat1[num];0 |! H7 G  P9 h4 r' M% _
                                                write_data(0x30);
* n6 b( |1 }, C7 w7 L' F. p% ?/ O                                        }
: ^( e  m4 @' [) ]                                        break;# @- U5 e+ e# I: @8 b$ \
                        8 y& w6 L0 o/ P3 R
                        case 13: ' }/ V7 a0 X  `; J0 e; y- G2 z
                                        write_com(0x01);        //清屏指令                        7 Z# c+ f. H5 x+ g: L) W
                                        a=0;
) |- Z6 [+ C( V0 d6 R                                        b=0;" f7 n) }0 k& w" e* G
                                        flag=0;9 k# v7 S+ k& X6 @2 S
                                        fuhao=0;
: l0 R8 X5 O  M: E6 o1 z4 J                                        break;
* ^' A! L( I- Y% j' @! y: G( a                        case 15:9 d# c6 \1 ]* F  M, U3 O$ Q
                        
) p- D+ v: p+ p' H; u: @                                        flag=1;: W+ s* l- L" h7 J+ n, {! Z3 Q
                                        fuhao=4;) N# U. Q+ x8 o* ?
                                        write_data(0x2f);//除号/2 U" f: Y" g. V4 H4 k* S
                                        break;
& E1 b5 J7 v2 C" d9 `9 [                                       
% x! l: s- v) H% P0 U- S                        case 14:                                 * o/ [! f3 n8 r# w1 F) i
                                        if(fuhao==1)//加1 |. J3 o( T. \" z- I
                                        {
, _! ~# h0 e4 \- H$ m8 I' x2 b                                            write_com(0x4f+0x80);
- H% P8 A) T5 [: W8 z                                                write_com(0x04);//设置光标左移,屏幕不移动
5 ?$ Y- \6 j  n' {* A                                                c=a+b;9 y8 {5 T& G# U1 Z6 R
                                                while(c!=0)         //一位一位显示
5 |1 }' R& \& E: Z* x                                                {
8 S; Q& ?: G0 V) ?                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置# R% v7 `" E( \
                                                        c=c/10;//取前面的结果数据        + P% r4 j2 [7 `; X# f
                                                        keyflag=1;& n. d4 z7 k) O/ f" y/ h# }! }
                                                }
) F/ F) f2 ?5 a8 H. h1 h                                                write_data(0x3d); //显示等于号=2 h9 a( S7 m; g# m2 H8 o4 ]
                                                a=0;* x* V0 W8 w4 h4 _1 l9 v. P( c
                                                b=0;0 R/ B* d( h- \' v& Y
                                                flag=0;) ?# [: a& [' f
                                                fuhao=0;//全部清除为0) S) L- Y* E) P+ \" m
                                        }
; e9 S& f; a( h5 w4 w                                        if(fuhao==2)   //减
- j' F  g5 |8 ~2 Y( @                                        {5 `, x/ J- _4 q
                                                write_com(0x4f+0x80);
2 |3 j. l# \* y( b2 e! f' l! Y# k                                            write_com(0x04);//设置光标左移,屏幕不移动
8 Z; y+ u2 p3 I' V+ q                                                if(a>b)
6 S5 U! P7 u9 W" a" A0 Z- _                                                        c=a-b;
/ ?) N  {$ X$ n! {9 ~' R                                                else/ X0 x+ E8 ?; Y6 Y
                                                        c=b-a;8 M9 o2 z4 t2 q, l4 k8 E1 l
                                                9 M: `% w: _- k
                                                while(c!=0)         //一位一位显示& S8 A+ j: r$ ]& C( o
                                                {
" _7 d  @7 r; ?# V7 g                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置$ F. C+ V/ u* O+ E" l' W
                                                        c=c/10;//取前面的结果数据        8 o. `% _- X% q
                                                        keyflag=1;1 R; Y+ o, T1 H6 b6 D- K! {
                                                }
) t5 o( j( _. u+ V  P6 l                                                if(a<b)        write_data(0x2d); //显示-号  B, r$ E1 i4 [1 [, @# t
                                                write_data(0x3d); //显示等于号=' j* i2 r3 ~, T; @
                                                a=0;
) V* U! n. k3 L8 Y" g                                                b=0;
% K3 Q$ w4 M! _! p8 u) m5 ?2 D0 B                                                flag=0;' o* ^& q( H* ]" Z& w0 ]
                                                fuhao=0;//全部清除为09 o, ^) L: m4 I2 r4 ^8 |$ H
                                        }* I$ u$ \1 d0 J+ ]. |! t
                                        if(fuhao==3)//乘法                , s; R5 l) y) v8 d( G
                                        {- `7 y# ^' `7 b; H5 ?5 z5 P, ~! Y# N1 q
                                                write_com(0x4f+0x80);$ }7 _) P2 Z/ U
                                                write_com(0x04);//设置光标左移,屏幕不移动
( O; d5 ~0 q9 J( S7 R                                                c=a*b;4 p+ u4 w. w1 ?- r, U
                                                while(c!=0)         //一位一位显示% U/ p" n. W, J: ]5 G5 M
                                                {$ l: ~0 s! X2 X! y$ t. l
                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置
- L, ?5 U9 K, h& b                                                        c=c/10;//取前面的结果数据        
: g, c# F, }# n$ R' E' R                                                        keyflag=1;( T3 }/ I& R) R; G) O
                                                }
7 i* Q  ~7 e4 n1 P3 |5 z  O                                                write_data(0x3d); //显示等于号=4 b" U" K# z& i2 o' j
                                                a=0;- B/ T! N- q  S; a, y
                                                b=0;
( F; U% r- f8 A: k- C1 f4 X5 @; V# m5 g                                                flag=0;* O* z1 r; _- C% |4 o" U0 F
                                                fuhao=0;//全部清除为0        " N# R9 Y/ o6 x+ R8 T, f( `) [
                                        }
5 A  ~7 N: M5 o" T                                        if(fuhao==3)//乘法               
5 A8 a: @5 m0 o; I' F                                        {5 y# B( N; z5 e( t+ t# L
                                                write_com(0x4f+0x80);7 F( U3 E  J8 g: W  G/ S0 C. W
                                                write_com(0x04);//设置光标左移,屏幕不移动
& B  ]# N3 G9 L  a- b                                                c=a*b;1 ]/ U( v6 ^/ ?9 E
                                                while(c!=0)         //一位一位显示
0 e& [" z) `% e; T! {0 Z9 o  d                                                {
: g. u  y  |+ W4 u5 i( _; o                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置- x% f; s: e8 ^& r" r% P
                                                        c=c/10;//取前面的结果数据        
2 s$ C; P: @/ ^2 O- M0 k3 W3 Z                                                        keyflag=1;, U6 C* p+ U7 z1 Q
                                                }5 C* p$ [3 ~$ K
                                                write_data(0x3d); //显示等于号=
) U5 M' M1 e+ o                                                a=0;
2 ?# a9 k# O2 c                                                b=0;
9 d- b! q: [8 a                                                flag=0;
+ c9 v# Z/ [  ^0 V. ~7 Y. F4 A3 j                                                fuhao=0;//全部清除为0        
; a4 E# o: [' f2 @1 V9 c( |                                        }
! r$ v# B" P" W, V, v                                        if(fuhao==4)
9 K# |+ N! L5 @$ T/ C* y( E                                        {1 X3 M, m7 J' H7 Z+ }
                                                k=0;) y/ n) D9 ^& ]1 y
                                                write_com(0x4f+0x80);
2 A3 N6 K  @# g" ?) H6 l1 ~                                                write_com(0x04);//设置光标左移,屏幕不移动. e: R- v  C4 \2 D1 R6 u
                                                c=(long)(((float)a/b)*1000);//强制转换为long。
2 F$ f% U2 J/ K7 h  H/ ^                                                while(c!=0)         //一位一位显示
* h% |. y3 z- A3 `5 e                                                {
5 c9 V3 E9 {- @- }1 a                                                        k++;
3 V6 k9 q) s; d  X' T- _; ~                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置
$ ]: R: V8 |* W2 l) n, ~& j7 `                                                        c=c/10;//取前面的结果数据9 U' e0 J) m' E! A' V
                                                        if(k==3)# e/ l  Y2 y. W# `1 T. s  ]% D
                                                        {
) \2 d$ z# r& s- D, i- a                                                                write_data(0x2e);* N6 U' Z3 s% ?5 C
                                                                k=0;
2 b, {3 B; c- p* ]7 C                                                        }               
% Z/ g6 f! h9 I: _+ C, m                                                        keyflag=1;
" d2 [% D: G5 x* e4 K3 ?                                                }; Y! x  z  W0 F) P4 s8 k* v
                                                if(a/b<0)          //如果a比b小的话那么除的结果最高位是0
8 t: F" [( }. y2 z                                                {
/ t& [0 y+ @" K1 _  v: u                                                        write_data(0x30);        
0 S. d% ^" g& R                                                }
4 W' p8 H; j$ H                                                write_data(0x3d); //显示等号
' m% I/ l, U9 O, E9 I2 I" c3 V3 ~2 L2 Q( c+ E3 z& Y/ I
…………限于本文篇幅 余下代码请下载附件…………1 m3 w  u6 m* V, b7 X6 J
游客,如果您要查看本帖隐藏内容请回复

* ?5 ?7 G. h( C
5 v( _' c2 I5 h, l

该用户从未签到

2#
发表于 2019-1-10 17:01 | 只看该作者
看看楼主的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 06:20 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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