EDA365电子论坛网

标题: Keil编译错误怎么处理 [打印本页]

作者: YJIHXK    时间: 2019-5-11 14:26
标题: Keil编译错误怎么处理
编译时这么多错误该怎么处理,我也是网上复制的,如下图:请麻烦给看看, ~& y7 X& d3 T1 J

2 \# n4 b7 j8 j9 N  o, l& X/*程序说明*/
% {8 ]1 i) A6 @//P3.3-P3.5输出3路频率500hz占空比1%-99%可调方波//! K3 j4 o) _! y
//P3.0-P3.2有3个按键单独控制3路占空比输出长按加5%
6 g2 P1 c0 v# S4 D/ q' ]//短按加1%占空比4 L2 p6 ]- G2 o5 r
#include <STC15F2K60S2.H>
; ?5 `6 ?' J: g( S, e#include <intrins.h> % ^$ ?1 _4 v+ E5 X; J& s4 V& F
#define uchar unsigned char' d1 r. u# Y4 r; P" r/ N0 H6 t
#define uint unsigned int
/ K4 c! W4 D, z  e/ q) Xsbit red=P3^3;   //红色LED输出口$ ]+ z( O5 C: E3 z& ~
sbit green=P3^4; //绿色LED输出口. ?4 S6 U5 i! Y4 h2 |
sbit blue=P3^5;     //蓝色LED输出口
! W1 a& I! q# J, s" L3 asbit k1=P3^0;     //红色LEDpwm控制% y/ i9 l/ l- ?0 Y0 k, R9 o
sbit k2=P3^1;     //绿色LEDpwm控制* X, I% a* n8 m( I* b
sbit k3=P3^2;     //蓝色LEDpwm控制
: U% \% J1 d. w5 Vuchar r_temp=1,g_temp=1,b_temp=1;  //三色占空比数值缓存: L) y; D+ s7 H! G5 L! n, V
uchar flag;                          //定时器T2定时次数标志
  x# ~* i4 o  \# W3 G//延时函数,大约延时10ms.
. M* h4 r! R5 O" t
$ q& B3 R# k0 }void Delay10ms()        //@11.0592MHz' o' n5 `7 d7 E+ }4 l# U. N
{" `+ m; d) k2 r- i6 G; B
    unsigned char i, j;
8 B* S# X1 a/ |& W1 _% {6 R4 F6 `9 D! P
    i = 108;% N8 B. p. `: r5 w, g
    j = 145;8 ]" t) \, v4 j4 R/ M; v% \: s9 u
    do
/ ~4 m2 g, F, ?: [    {6 n" b0 u! A3 o/ _' ~% N% G
        while (--j);/ B  p6 ^) v1 Y, X9 L9 ]& J) Y
    } while (--i);3 W" v- M& [+ S/ C/ l3 D
}+ {- Z; a9 {. z! o% l0 q9 t" x
5 G. _0 W0 n5 ?' }
//按键扫描程序
- p7 {7 K* E2 g$ u5 d4 Fvoid key()$ v+ k/ a; U) p4 }# ]7 w% o' B
{/ K& E; Y" b. G
  uchar    num1=0,num2=0,num3=0;
! S. x. m1 u/ {. n: M/ K& y/ c* n7 t  if(k1==0)               //按键K1处理程序
9 ]  u/ j8 u, t; e8 W% H   {1 d: S% _/ r+ Z
     Delay10ms();
  B9 d6 \: \# d& t1 B' F     if(k1==0)$ P. h) U( W, l* h( K- a, C( r
       {
, b0 s7 s2 V. y8 A+ }! m        if(r_temp<99)" _- ], I& ~% ], c# H! o
             {     
8 F. k: y1 A/ c; d. w4 O              r_temp++;
& T, f% i) f3 {$ _              while(!k1)           V1 [9 z8 V1 q( C
                 {
" T/ |2 k0 m9 F, \) n1 P- }                  num1++;      //长按标志位加到10约100ms
% B+ A' ~" G* I' y: K* @                  Delay10ms();
" _9 w+ Y+ i# x# c; [, J                  if(num1==10&&r_temp<95) 7 h! Q1 j# p# u: d, Z4 a" E
                     {2 k. h: Z. a) a% X. g
                     r_temp+=5;" Z/ N( S% Y% L& y' B6 Q4 u
                     num1=0;
* q% N7 P- |: ~                     }# k' B2 L" f1 x1 i+ V
                  if(r_temp>=95) r_temp=1;4 @$ p% W/ g3 `. R  G% T
                 }
7 A  B& ~( E, Y5 y7 p: t( n            }
' ~! k9 _. F+ a5 x- a+ v# }/ |        else r_temp=1;         " \/ t  J/ }0 t7 T, I4 j
        }( x, P" f; t  a( ^0 p2 S$ n
    }
: p" j, e$ D) M3 W- j; f7 |# p' g; }9 t/ S8 v3 F+ t
  if(k2==0)               //按键K2处理程序0 I& }  @' ~2 t$ n% c+ g& j
   {
6 J( z4 [2 r6 Z! h+ ~8 X$ ^0 K     Delay10ms();0 v( d) W) S/ f3 o* B  ]1 p5 y
     if(k2==0): h9 `: w4 I, T3 F
       {
! G" S# a+ J% a" c( I3 P         if(g_temp<99)
2 F2 m, {4 e9 o           {
3 Q+ V- [& o3 ?* ]8 U* c* ^             g_temp++;
/ X% x# x) O# R6 N- s, k4 d1 ^             while(!k2)
; u" X+ [5 C* j- o* n  b                 {! u# [) d2 p. d+ ?7 I# ~
                   num2++;          //长按标志位加到10约100ms- f! s8 M! B5 h6 V: J+ w
                   Delay10ms();: n% X1 n# r1 R/ i7 h
                   if(num2==10&&g_temp<95)# v5 `  y0 A( ]/ l( K5 q% k- X% N
                        {
1 {9 m# j; a: C                          g_temp+=5;$ n. l5 Z, V# ^5 ~5 w' Q; i; d$ Q
                          num2=0;, W" j. T' U, }: ], o
                        }3 p1 e5 F3 _: J1 I* o
                   if (g_temp>=95) g_temp=1;# z! I! \+ N- f' T
                  }# ]% T2 ]& a2 f9 q" O5 I
            }
0 e8 e! R) q- ]& X* M3 R; h+ U8 z4 e          else g_temp =1;0 i- X5 T! B8 _% J0 P! E
       }# l5 g3 K0 m* E+ I
    }6 D" Q7 e+ V% i0 h
  if(k3==0)                       //按键K3处理程序
/ y/ X2 b) V2 O" Y6 ?0 X    {, U. i2 p9 M) h4 C* ?
    Delay10ms();
# W  M& V0 Q  `) h5 `- J5 t     if(k3==0)4 w4 i8 c/ b: F' l( a0 n
     {: x; i  U. G, o+ V& U
       if(b_temp<99)3 ?' f1 q, c* q; `4 o- G3 }. M9 Q
           {: y; f. n1 s7 x- f7 K. a
            b_temp++;6 |% H6 \+ A$ o' l
            while(!k3)
2 ?) P0 a  r# r- J                {
4 ~. b8 K( |+ m7 I7 Y+ N5 ^                 num3++;         //长按标志位加到10约100ms( K, E0 r2 Z6 [) B  K7 C9 k
                 Delay10ms();& G1 \! Q# B! G  B# c" g
                 if(num3==10&&b_temp<95)
% r+ [2 p. ~) x2 a& L8 p                    {/ g) m  X# E8 A" y$ d' O* U' ]# e
                     b_temp+=5;
. g* Z0 f6 ?6 |( i, Q4 J$ z0 S                     num3=0;
5 u6 {( y2 w9 s# |  x9 A$ l. I3 n8 k                    }
1 Z) A5 L- ?( E/ q& `6 r" ~2 C5 x' j                 if(b_temp>=95) b_temp=1;: D, E) P  ^! F3 I6 A4 v) Q
                }: B" J- C$ U+ l; t9 B; Q0 \1 P
           }" y0 h# u& ]" p. ?1 x; H
     else b_temp =1;
$ J- A, Z, H2 F      }+ Q5 L9 p8 [+ A) Y. a
    }* N) G+ D: N' A$ }6 k
}
: n+ L. Z& E8 W* n$ D% x
6 ]7 f; ?* Z  ]9 X! A//定时器T0 16位自动模式定时1ms 控制灯灭时间
$ p1 k# r! v! {, G4 N3 Z
/ n9 t! C- H: ^; Rvoid InitTimer0() interrupt 1  // 1毫秒@11.0592MHz/ P7 L. }* N, ?6 I0 F, [, g
{   
; O2 R& H: A, v+ g: T2 L    IE2 = 0x00;   //关闭定时器2中断" r( t; t6 t5 }8 y0 V, _
    AUXR=0XE4;    //关闭定时器2计数
3 z% e, a& h. x    TL0 = 0xCD;0 M$ K, V) _! {- U3 H
    TH0 = 0xD4;' U5 e6 G1 _3 y6 S& N7 ]4 M% W
    red=1;
6 [2 M$ A. x% s* U% g* M- J& W    green=1;
+ H- G/ j% P" h    blue=1;7 e- g9 R+ l5 }% g" t& o
    flag=1; 7 {: V8 g  s( o! v% ^
    AUXR=0xF4;        //开启定时器2计数
4 C  y1 Q( }5 R9 B8 p! ^    IE2=0x04;       //开启定时器2中断允许9 z: n( A& u* ~/ D
}
6 P8 G: ~0 @8 Q: l! V+ }# o! h* \//定时器T2 16位自动模式定时10us    控制等亮时间  I+ ~; H/ D  O1 h( Y# d, {6 [
void InitTimer2() interrupt 12    //     10微秒@11.0592MHz
9 ]( P9 R0 u# s8 N  z* P  |{   
- f/ g. K; D6 i8 Z    flag++;7 n. g' v7 ~6 K4 ^! `
    T2L = 0x91;        //设置定时初值
* I' _6 _  D2 J; t2 u" P+ z    T2H = 0xFF;        //设置定时初值" K& i) T7 G: g9 i8 d! J
    if(r_temp==flag) red=0;
3 }& d* l% Y+ U' \, L    if(g_temp==flag) green=0;5 j  e5 ]' J& ^; n
    if(b_temp==flag) blue=0;
  Z) u9 X1 J& U" M4 Q) g}
# F. U; ?: N2 @void init()
5 e, @/ Z$ L3 U% j: i' H# A{
) ~8 D( b/ l/ A8 R    AUXR =0XE4;//设置定时器0和2为1T模式2 Z# k. ^- B% L* b: h7 d1 u' K9 H
    TMOD= 0x00;
4 V+ U, l! E, I' s  y    TL0 = 0xCD;
# z4 P+ y/ z' w5 s& q: b4 I! Q' V    TH0 = 0xD4;1 W" T" i9 `% S) c( E: B; l, g) O
    T2L = 0x91;        //设置定时初值
; x: E/ E7 E/ |* h( c. R/ }    T2H = 0xFF;        //设置定时初值; P2 Q7 K+ @% n, n* _
    EA = 1;
7 m( V$ c0 O1 c7 u+ M! L    ET0 = 1;2 c5 O6 J, `% V, `5 Y
    TR0 = 1;
; l- D2 Z, H, B& p* f}    4 D) ^: a, h8 i, I! \
void main()- V7 t6 A% F* K, s- T- u; h
{   
5 r8 Y6 g" ?" {2 Kinit();
2 F* t4 t5 [+ _, A6 I* n  Lwhile(1)
" ^/ n0 b  l$ N4 p! |! d   {
7 x! b* s* O6 P2 t3 m. ?: h6 }# U   key();
1 S' z0 P6 b: c" k4 h2 p- L   }
; D1 N; E4 G, t+ x}3 ]( N$ }) x0 Y3 X8 E0 h

* Z' T, {8 |% s' s8 y, t* ^
; M0 G* B  y5 A/ v

QQ截图20190511140111.png (76.59 KB, 下载次数: 1)

QQ截图20190511140111.png

作者: YJIHXK    时间: 2019-5-16 09:48
那位大神帮看看,在线等




欢迎光临 EDA365电子论坛网 (https://eda365.com/) Powered by Discuz! X3.2