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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于单片机的智能计算机程序 可以实现加减乘除运算
7 T' j; ^6 Z1 R/ [/ ]) q) ]8 I" j! d. ^
: N% h, R1 S( V) h, Y2 b# U0 {3 D
# s& g4 t3 ~9 d& L0 g2 e: B5 o
单片机源程序:) [& D8 o, o1 i" L
/*  S16 S12 S8 S4分别是123+
) i- K9 M: D  Z" w: p- i        S15 S11 S7 S3分别是456-
2 Z: K( b  H- g, t        S14 S10 S6 S2分别是789*+ ]+ H# @+ \1 P
        S13 S9 S5 S1分别是0 CLR = /
9 o+ ]; v2 _/ X$ L# {*/
1 n% K* ?" {8 \9 E% o3 a2 O/* 实现两个数的运算,每个数的位数至少可以八位  */2 h: V4 y* M$ t5 s2 J) e6 f
#include<reg52.h>                        
2 F( a' P) x+ L- b$ p4 O. j2 i3 jtypedef unsigned char uint8;
* r# g- M* u" O# I: Q6 X0 Ytypedef unsigned int uint16;8 z6 s, k. |) c8 ]& S
sbit rw=P2^5;" P6 v8 z* `8 k; y. b4 _- m% c
sbit rs=P2^6;. v* {: U. x& ?' X
sbit en=P2^7;
5 A- f; O: \9 o+ p* |2 }3 isbit led=P3^7;; h' U7 ]  P4 D8 r* w4 @
sbit psb=P3^2;
7 l% z/ j, l. T/ P9 f5 p) g9 \6 Rsbit beep=P2^0;
8 q8 z2 W+ i( h! duint8 key,num;
5 Z+ C0 m! m: u5 G/ Huint8 fuhao;//定义具体的那个符号,是加减还是乘除。
1 B# L# f% i/ g% Luint8 flag;        //定义有没有按下符号键,这个是统称
. S. W$ C* D6 X7 Q3 D# Klong a,b,c,d;        //定义运算数据的第一个和第二个及等于的数变量
9 |, N7 e. F; Z$ p5 e" w/ t$ D4 Yuint8 k; //定义小数点后面显示的位数0 M4 f5 H; n% j' w  j0 ~- b
uint8 biao,keyflag;2 B8 f" r  D. ?5 F
uint8 dat1[]={1,2,3,0x2b-0x30,4,5,6,0x2d-0x30,7,8,9,0x2a-0x30,0,0x01-0x30,0x3d-0x30,0x2b-0x30 };//保存显示的数据
$ z* Q' x  p5 P. z8 B, F/ f: X/ y/ yvoid delay(uint16 i)
: J$ q8 N8 @& n) f! J9 u{
- ~6 p- t/ F0 s* ~        while(i--);# `4 f, o; z9 m
}- Q/ n( u4 [" X* j( ~/ Y
void write_com(uint16 com)
6 F+ Z: I/ d7 a: o3 A{5 x+ H- M& |: F4 q# M
rs=0;. |5 K1 |7 g5 G; C  f) Z
P0=com;& a4 }0 }3 i" o4 D8 ^2 d
delay(500);
- ?7 F# T) U! |& B0 \! {. k$ i en=1;9 X1 z3 \1 F0 `" f
delay(500);6 [0 h$ p3 X: I# A- R8 m7 @4 [
en=0;' m1 S5 |1 ]4 U; v! \+ J
}
( G% T6 r3 y+ r/ }. N/ Avoid write_data(uint16 date)
8 {4 }- ]& [  a8 P  D0 h. N {, s$ L5 E" a1 z( |% U1 Z8 [
rs=1;7 b5 f4 `9 N3 _1 C' J2 n, ^) w+ J
P0=date;* j& `! F: D- J% d" Z9 Z) x" E
delay(500);
+ d% @& Z! R9 C3 v9 f( A' ]* k en=1;
+ ]5 W* j) D: G delay(500);
/ K4 I! x. Y0 i' r7 P' T en=0;: f9 q, x1 D8 Z
}- }( |' ?% d# Z# O. ]" F. `
void lcdinit()8 e7 V  ^- v: f! g0 C/ c* e
{3 u8 }7 I) a9 Q+ Z: j" z
        psb=1;
  l+ o2 F* U! _" g4 X, Q rw=0;
) J( T/ H8 y7 a1 ]& H7 R1 b en=0;4 _) P2 r2 W6 @+ U  j/ r* m2 y& z
  write_com(0x30);
! V7 _& C2 g9 l: T. F delay(500);$ h" Q* J0 Z1 O) ]
  write_com(0x0c);) W0 d8 d' `1 n1 f! @$ h# R4 {
delay(500);
+ C1 h5 F. ~" X  Z( G write_com(0x01);
1 k+ D* p8 d8 ? delay(500);
9 a+ S( D( J/ h, s4 m9 j        key=0;# V" {& _% p4 R* d% _$ x
        num=0;) g: P# L9 c& W: B
        flag=0;
- O$ \! ^0 Y8 ^. [        fuhao=0;2 X! u( B' ^8 p. G
        a=0;
; Q+ s9 u4 C4 H$ |  {* W        b=0;
2 \( z: W2 M9 M6 }; T7 \+ g        c=0;
4 b2 p3 _9 h) Z$ u) i- C. y        d=0;
( o% P9 z0 y1 H; b        biao=0;* N5 b+ M; b( H
        led=0;
: `8 C4 z# e# D3 k% ]8 [+ C: _}
+ Z6 m2 a( N1 C4 Qvoid keyscan()( F4 ?" P8 s6 r# [$ h4 J9 _- |# i
{
5 K# ^# A7 U" B, ?, U        P1=0xfe;   //令第一行为0,然后判断是哪一列按下
4 F7 C* z# d, B( b1 h6 |        if(P1!=0xfe)
7 O* T' e+ g6 Q, C        {! p& c" z( C/ z! i3 d0 W- {8 q
                delay(1000);
6 V$ n  ?3 {3 z- s$ G                if(P1!=0xfe)
8 P8 `& }  S- H" K4 Q; \- J' t( K3 {                {
3 W' ]7 ]- a6 |( t. h6 a6 d4 F% h                        key=P1&0xf0;
" A! l8 T5 f+ Y' b$ m                        switch(key)! r  Y  c# \5 ]+ L2 h
                        {
6 s3 |: o& R- s4 Y3 \                                case 0xe0: num=0;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //10 f  {/ o2 J; Z6 R6 v
                                case 0xd0: num=1;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //2% B6 r; H. g. L  s$ R: l4 Z
                                case 0xb0: num=2;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //3% U0 |# f2 U4 o6 P4 H: l
                                case 0x70: num=3;break;          //加
- W) x9 l& t2 d/ H" s                        }1 H, a; o. g( ?  j) l
                }, R/ b' r4 C! u0 _; Q/ |# @7 [& z
                while(P1!=0xfe);4 v3 B0 c( Q8 l# J) |4 _8 s2 g  r
                if(num==0||num==1||num==2)         //确认第一行的数1,2,31 g" K0 C$ N$ ]. a& [8 y" q
                {
5 y8 D' i& R) Y- o* u6 _                        if(flag==0)         //没有按下符号键
# N3 N" T8 h; z                        {
! ]7 ~/ j  c4 R, g; H) n2 m                                //led=1;
6 _7 P; q+ c5 N; W                                a=a*10+dat1[num];        . S% U+ L8 s& G! X# Y" d* S* p! k
                        }
! @- K+ o. w) ?- |                        else
1 |+ q( @8 \* m/ Q9 X) B                        {' X4 m: |3 ~& T) G" v
                                //led=1;/ |4 O# [% K; A# @0 B0 S
                                b=b*10+dat1[num];
! H! B% f8 l# t  Y                        }
3 S" u' C4 k4 n4 u+ i! w                ) I# O% w4 q4 w1 @: B
                }8 _2 i' ]) ]$ P! t6 p% O
                if(num==3)
8 l: B2 j; |5 c6 ^* t% q# p6 |                {# C/ y" O0 {4 m# o0 D. I
                        //led=0;
" A$ T7 R7 O4 o( H2 o                        flag=1;
+ A* K( @- L9 J+ z& r0 d" \2 d, ~                        fuhao=1;//加号+        
1 c& G3 D1 G% s                }  d6 G- G1 J$ i. G9 K
                write_data(0x30+dat1[num]);8 k- V1 L# D" e* Q/ t! z
        }& x% ^  r$ X4 M; _' e0 D

  ]' T, L( i& I8 v        P1=0xfd;                                //令第二行为0,判断是哪一列按下4 c* L5 O, w( ]3 w) B
        if(P1!=0xfd)( ^, i& y5 `( d5 J; w
        {
4 b/ `* f& ^$ Z( R                delay(1000);
. V4 A2 N, w$ v5 s                if(P1!=0xfd)& `- A9 G. L. f
                {
% _! d3 c* G# `& _( U                        key=P1&0xf0;
0 @* \2 ^1 f3 E3 e  x                        switch(key)
1 [3 J% T9 C6 s3 u, @. y" ~                        {% h* g; _: X+ p0 c9 y% \
                                case 0xe0: num=4;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //4                                 
* a4 Y- H( Z+ x. l                                case 0xd0: num=5;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //5
6 j+ n/ i6 f/ g: n                                case 0xb0: num=6;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //6
% {5 T  T( u+ R* r0 Z; l' f                                case 0x70: num=7;break;          //减—
& r2 J, T  `/ q                        }        
8 R: ~; Y) X& r; [4 i0 i' }( C                }
8 l( k- T" I1 h; ]8 z                while(P1!=0xfd);
% }) F1 h% f' Q9 O! T                if(num==4||num==5||num==6)9 t; T6 _6 r, S2 n8 Y+ i
                {& X) [4 @) y8 P0 l0 y" c
                        if(flag==0)         //没有按下符号键
: b0 X0 l2 }# y$ O                        {
3 _3 k# ~6 P+ ]                                //led=1;' p0 T1 x# F2 L5 X  g+ u. Q2 M) l, L
                                a=a*10+dat1[num];        
6 j8 p" m3 L6 _( }/ `9 b( w                        }* W, L- }7 n4 B# ^0 Z! e0 w' e: ~2 o7 s
                        else, P4 I5 R& |4 A0 K- t
                        {
7 t: W$ w" \5 I                                //led=1;0 k' F% j9 p2 ~, K( I. g2 A4 A/ z
                                b=b*10+dat1[num];% x7 u* ^+ W2 e3 j5 U7 T
                        }                        
- S$ {* H. @! Z$ B: s: q                }0 Z+ g0 O. S+ T' ^
                else
5 [5 U! z* Y8 ~# C! G, b6 T                {
1 W& B" j2 V; a& O: e! F                        flag=1;& L0 k; m1 H) ]2 v- _2 G% A
                        fuhao=2;//带表减号
  \8 P" _) M7 w; ?/ h# E2 r" T                }6 P/ Y( s; V& p; |" i
                write_data(0x30+dat1[num]);0 q( h; x/ N1 _  l7 r  j
        }
( |, b! z, w' R+ x- D2 b* @, {% F/ m/ i# c/ a
        P1=0xfb;                 //令第三行为0,判断哪一列按下: L1 n2 c( j$ q2 W2 I; T5 x
        if(P1!=0xfb)
* E. X1 B( d7 ^! Y        {' m9 M$ h4 X6 Q4 |3 e3 C7 S
                delay(1000);7 x* t" c/ W) q+ @/ z
                if(P1!=0xfb)
2 L0 R! W1 d) Q7 }* K) H# x/ s. x- M                {
) ~" s& g& }9 _* n( ]# R4 H+ K3 I                        key=P1&0xf0;
2 w# d0 X% Y8 ?                        switch(key)7 _$ _: \2 @# o6 d, `# A
                        {% U( V- _7 N$ n- A
                                case 0xe0: num=8;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //7/ \  j2 |- |- @$ L9 a8 Y
                                case 0xd0: num=9;if(keyflag==1){keyflag=0;write_com(0x01);};break;          //8
. `& l! `( _# v/ q0 a* K                                case 0xb0: num=10;if(keyflag==1){keyflag=0;write_com(0x01);};break;  //9
' S& W8 }" z! G8 ~/ Y                                case 0x70: num=11;break;  //乘*
4 S. Z, h- s2 Z+ U: R3 R                        }        ; X- q# n$ }4 [
                }
+ M( H' c3 c2 [                while(P1!=0xfb);
9 p0 M, Y9 S( G3 O$ K! Y4 \& P$ K                if(num==8||num==9||num==10)" x' `* H& r' A- I
                {" `8 a0 R$ X/ {6 S* N, U
                        if(flag==0)         //没有按下符号键( p3 B$ p' G+ _" h3 ?( E
                        {
! Q( S3 I' f% g; ^* g# H                                //led=1;
3 K: t3 m8 S: B, P% y: u                                a=a*10+dat1[num];        9 m* _# e# s- q
                        }
2 N+ |# Z7 Q  d. v9 d' B                        else
3 R9 t: r2 w* `' N% [, s2 ?2 |  J                        {
. f0 j  Q, W: I7 H                                //led=1;4 r9 D4 \2 |) i6 [0 c
                                b=b*10+dat1[num];* u2 ?7 e% X' U) R/ Y
                        }                        
# @* @! x, f6 L0 U                }
9 n1 J7 ?) }6 O3 u                else
$ Q3 x, }6 U  I, k' I; p5 \                {9 r6 \: J" l2 \$ @5 w- A
                        flag=1;
; _5 M5 K2 Z+ {  P' g                        fuhao=3;//带表乘号*
/ y6 i& s! g: l5 `& o$ S7 d                }
  n1 Y! `, v" o+ R7 D1 C                write_data(0x30+dat1[num]);
* T3 y1 \/ H8 b" ~) z2 Q' ~! A        }
. }2 b( S$ S6 o4 [. ~
* m. l" b; g6 }. I; X        P1=0xf7;                 //令第四行为0,判断哪一列按下% ?/ h% C$ K; m4 k
        if(P1!=0xf7)
* b1 t6 F' }# p9 l# B        {
9 H+ [1 s3 F5 u$ D                delay(1000);" d7 Z- V3 n# B8 |0 X6 ?
                if(P1!=0xf7)! H/ u5 g# i6 h* ~% H( t+ Z
                {! L1 o0 I" U& l/ P, Y4 J: P8 X+ a
                        key=P1&0xf0;
: r6 V: R( m- _7 n8 Y7 \+ x0 I% w                        switch(key)6 s; i; q* T" w8 j) o
                        {
+ _! L0 O4 U5 P' O                                case 0xe0: num=12;if(keyflag==1){keyflag=0;write_data(0x01);};break;  //07 N! ]3 |; F. D! C$ L
                                case 0xd0: num=13;break;  //清除rst
/ w3 R0 A& a$ `4 c& o' L4 g) }                                case 0xb0: num=14;break;  //等号=* q" P. D9 l. k& d; N
                                case 0x70: num=15;break;  //除/1 K9 ^5 {* b2 j6 Y
                        }        3 \$ ?3 u7 z6 p  b  W
                }
1 _$ n9 Q$ h) _5 I0 \1 S                while(P1!=0xf7);8 s: Y) ~2 g; i1 G8 x, w5 e" R8 v
                switch(num)0 W, {( k. _. u) a
                {
, P; d: U8 d/ L8 k' R7 V; Z                        case 12: - G. B- i1 e' t3 ?/ ~
                                        if(flag==0)         //没有按下符号键
4 j9 y2 D5 U5 ^$ O                                        {/ h) S1 B1 o5 n4 g$ i: T( q
                                                //led=1;
/ B4 x9 r+ E* u" ]                                                a=a*10+dat1[num];
  o+ G5 w( Y& |1 ]+ H1 a) }                                                write_data(0x30);        3 D! \3 \7 a5 C
                                        }
4 T* S% _+ a; }, {) I' B1 {- M* n                                        else
' s, ^2 A4 s* z, D6 \9 N                                        {
9 V' N, F, H5 `                                                //led=1;- U/ R+ \3 T- @, j" U  L' A
                                                b=b*10+dat1[num];
8 Q1 y/ j1 l" i# K3 h( P, h: {                                                write_data(0x30);
' \7 a' j/ G7 @                                        }! e; _& Q; m, b8 M9 t
                                        break;4 c+ Q% \# c5 S' e/ K" c0 h( t
                        % u% z* n9 {& M
                        case 13: & R& V5 D7 ~! e/ ?3 S
                                        write_com(0x01);        //清屏指令                        : R  _& @* Z/ p
                                        a=0;
5 u8 J$ ~& L7 V& B1 m. l/ l, j6 s% u                                        b=0;/ V, R) ^! q8 n; }8 Q) n7 N$ N
                                        flag=0;  \/ n% {( L, ^2 M6 y: E
                                        fuhao=0;. \! D+ p0 a+ G! I* H) p( I
                                        break;
2 {, q8 g# y  a                        case 15:* n- d3 R6 U+ L% s  h
                        
& L+ X1 ^& b1 s6 [5 Z                                        flag=1;
  p/ T" \2 I# O  K& G0 L                                        fuhao=4;( y: g7 w, b+ y! @! g5 z
                                        write_data(0x2f);//除号/3 z0 I! Q# T) T6 ^
                                        break;
$ N* _2 ~4 M6 N/ f4 K7 y$ J                                       
9 u% L% a) X: {/ d2 s                        case 14:                                 ! W& r, Q8 h& o8 u8 Q/ g
                                        if(fuhao==1)//加5 T/ o( y6 {) N( J3 ^3 ~
                                        {
/ W8 ~, _  D" X( n                                            write_com(0x4f+0x80);+ E  A% I2 P# b6 f2 }' m8 h5 e
                                                write_com(0x04);//设置光标左移,屏幕不移动
$ h; u; ~9 ^5 q$ K" m+ F& Q                                                c=a+b;
5 Q* l! r% m0 s. S6 E4 t: d                                                while(c!=0)         //一位一位显示
& I# w8 a5 [5 }' Q: k                                                {
, d5 B7 c( F/ Z1 w+ J. M) \! u                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置5 d* |& @8 g, q
                                                        c=c/10;//取前面的结果数据        
# B' E- x: l' v$ W6 l7 B                                                        keyflag=1;
- Q" H) \6 ^' {4 E* @9 J  ]7 A                                                }
7 F) u! D! K$ I# ^                                                write_data(0x3d); //显示等于号=
- V! o, w7 Z. B8 d! ]                                                a=0;8 Z: w+ S  O0 L1 c! D
                                                b=0;
9 F. n$ u& i; Y. O$ Q7 H  a                                                flag=0;! o" x4 ]! ^5 ^. |! Z' J
                                                fuhao=0;//全部清除为0" [5 T! e) m) {+ E
                                        }9 R5 V5 J( `* }* m/ F, k+ {" D
                                        if(fuhao==2)   //减* q% y: ^+ P' F1 o2 Q. f/ w
                                        {
! F/ L3 k- t# e0 w# q3 {% d9 p                                                write_com(0x4f+0x80);& ^6 S  i' ~* p) E( s# V' n
                                            write_com(0x04);//设置光标左移,屏幕不移动
' q7 d% d  P. |$ I; f& P                                                if(a>b)# k5 R) [& H6 `. h2 ^6 C6 g
                                                        c=a-b;  |( j+ ?  o+ J3 Q7 _- }
                                                else1 G) f' L* A: C  }
                                                        c=b-a;
* _3 h' c3 u) G; e1 G; Z* H                                                
% W: z  w( J. B. O9 F( B                                                while(c!=0)         //一位一位显示
! I! j+ H( X- f+ K. K                                                {& P3 H; w+ |& `% x( w
                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置
# c3 [) O/ g* v                                                        c=c/10;//取前面的结果数据        5 M8 K7 B5 Z% a+ j
                                                        keyflag=1;
: L0 c- Q# U* Q( ]$ f* W                                                }2 l7 x& Q& C7 q# J
                                                if(a<b)        write_data(0x2d); //显示-号2 ?8 e/ i) y, Z3 J1 s0 e' e
                                                write_data(0x3d); //显示等于号=. r9 f8 Z4 y9 N4 u9 O; N
                                                a=0;7 D. }  Y6 h5 l5 d  x
                                                b=0;
; v* H) m1 \8 a. f% q' U) S  C# w) D                                                flag=0;
4 N+ h: N- N; U% v+ O                                                fuhao=0;//全部清除为0
5 z. q7 s4 n3 K                                        }0 @1 q: p' D( K* R3 Y5 p' d2 g( a
                                        if(fuhao==3)//乘法                ) @! `  e' S/ R1 F& C) z  a4 }4 Q
                                        {% n3 e$ h4 o( B  `! C" R* M
                                                write_com(0x4f+0x80);
3 Q4 C5 E. n2 g; w5 ?2 H; ~/ e                                                write_com(0x04);//设置光标左移,屏幕不移动$ b" P/ C9 h2 U3 F
                                                c=a*b;
) A* ~! e9 ^( G, }1 a+ i. N- E                                                while(c!=0)         //一位一位显示. M2 ~8 O& z7 ^: U3 M0 v% _6 Q
                                                {
$ N" v$ |, h  R; }. g                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置
* u0 c( j( y3 y9 |7 {4 c                                                        c=c/10;//取前面的结果数据          W% I% o7 n5 ]$ x
                                                        keyflag=1;# C4 A0 S8 K- a/ e4 l% ?5 }
                                                }" F5 @0 x& n3 `; R0 V
                                                write_data(0x3d); //显示等于号=+ i; j" z# v: S
                                                a=0;
. b3 {' _! X' e$ n. |& T                                                b=0;
$ N& O" K+ A2 y5 c. x0 a; U5 t                                                flag=0;$ c- t  K/ W; I! V3 `4 s
                                                fuhao=0;//全部清除为0        
/ x7 i9 x8 `- @0 w                                        }
6 W" Z6 t% J% F; \                                        if(fuhao==3)//乘法                . U" c/ ^% x, W3 o  N+ P1 C3 S
                                        {
9 o! K/ Z& I9 I; g8 c                                                write_com(0x4f+0x80);
& S( f+ B! |" G                                                write_com(0x04);//设置光标左移,屏幕不移动
( Z) h. g# _) ?: z! c                                                c=a*b;
5 J, T2 T+ n2 n' U2 e/ O! ]                                                while(c!=0)         //一位一位显示: k/ s6 x: X* \0 ]4 g
                                                {
+ ~$ P3 d0 N7 t4 G3 f. i* }" N$ F                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置! `7 G, q) B( @/ `4 `+ b
                                                        c=c/10;//取前面的结果数据        
1 q6 W3 ^; `; z) O                                                        keyflag=1;
0 k5 l$ O: y" k0 H                                                }; Q  W5 y- L. H. O# Y1 Q% r5 b
                                                write_data(0x3d); //显示等于号=
" w* o7 F6 }- C                                                a=0;
  f  E' H3 |- A# X8 w9 `& i6 e                                                b=0;
/ k8 P# ^9 G  V3 L& ?; i& A- G1 s! O                                                flag=0;
/ f5 V4 }& l9 B+ R9 P" Y                                                fuhao=0;//全部清除为0        1 |/ [( n2 r) `+ D* v' Z3 J
                                        }
1 o+ Y8 S+ W7 K                                        if(fuhao==4)
" B& }, V, r- D4 N! n* ]: m                                        {+ d" n9 r' D- M3 }( _1 u4 B
                                                k=0;
+ f% K6 e  L. w( S* \; ^0 V                                                write_com(0x4f+0x80);
0 L7 C$ s6 |/ `                                                write_com(0x04);//设置光标左移,屏幕不移动
& m' W  L6 m1 o3 W                                                c=(long)(((float)a/b)*1000);//强制转换为long。
+ Z+ m2 e3 ~5 U2 i- Y' C: h                                                while(c!=0)         //一位一位显示( m& D) c: H- S( K  G+ [5 x
                                                {3 a; `. B4 G2 m. Z  F% t, l
                                                        k++;( p/ Y; }/ [9 A" {
                                                        write_data(0x30+c%10);//显示结果的最后一位在0x4f的位置$ k: T, C5 @  V) B/ V4 X
                                                        c=c/10;//取前面的结果数据
4 Z! p( G  g! _5 q' j                                                        if(k==3)6 C  E# @; a: J: [6 E- j" Z8 b
                                                        {( _4 }4 o% j8 w1 k
                                                                write_data(0x2e);$ |% V2 {7 O  [' s. p8 _; z
                                                                k=0;4 y3 b! y1 P$ c
                                                        }               
' @5 r8 G* u/ a0 t" a% L                                                        keyflag=1;/ ?2 Y5 x9 E; r' ]$ U& i
                                                }
9 U4 z7 b8 w% x* f9 q                                                if(a/b<0)          //如果a比b小的话那么除的结果最高位是01 \5 u( K1 {& j* b0 b
                                                {- u$ G& t! e' h* g
                                                        write_data(0x30);        
9 g8 {7 y5 m; k( ?* o$ I                                                }% s2 ~1 Q7 {& x9 {! ?! b. k6 u8 b: v/ k
                                                write_data(0x3d); //显示等号' E% w4 v: J) [
' a6 K5 a- Y$ X
…………限于本文篇幅 余下代码请下载附件…………( @; o4 p" p: U" b
游客,如果您要查看本帖隐藏内容请回复

; ^7 E# q& G2 h; Z! @
2 G, m. }, r) d! n1 {/ d; ^

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-1 03:12 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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