第六步:又重新焊接了   成功了 
 
 
 
 
 
 
- //#include "shumaguan.h"
 - 
 - #include "stc32g.h"
 - 
 - #include "intrins.h"
 - 
 - 
 - #define  wei1 P34
 - #define  wei2 P35
 - #define  wei3 P36
 - #define  wei4 P37
 - 
 - #define  duan P2
 - 
 - int i;
 - 
 - unsigned char s,f,m,d;
 - unsigned char sg,ss,fg,fs;
 - 
 - unsigned char duanma[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//不带小数点
 - unsigned char duanma1[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};//带小数点
 - 
 - void Timer0_Init(void)                //1000微秒@11.0592MHz
 - {
 -         AUXR |= 0x80;                        //定时器时钟1T模式
 -         TMOD &= 0xF0;                        //设置定时器模式
 -         TL0 = 0xCD;                                //设置定时初始值
 -         TH0 = 0xD4;                                //设置定时初始值
 -         TF0 = 0;                                //清除TF0标志
 -         TR0 = 1;                                //定时器0开始计时
 -         ET0 = 1;                                //使能定时器0中断
 - }
 - 
 - 
 - void Delay1000ms(void)        //@11.0592MHz
 - {
 -         unsigned long edata i;
 - 
 -         _nop_();
 -         _nop_();
 -         i = 2764798UL;
 -         while (i) i--;
 - }
 - 
 - void Delay1ms(void)        //@11.0592MHz
 - {
 -         unsigned long edata i;
 - 
 -         _nop_();
 -         _nop_();
 -         i = 2763UL;
 -         while (i) i--;
 - }
 - 
 - void Delay3ms(void)        //@11.0592MHz
 - {
 -         unsigned long edata i;
 - 
 -         _nop_();
 -         i = 8293UL;
 -         while (i) i--;
 - }
 - 
 - 
 - void Delay2us(void)        //@11.0592MHz
 - {
 -         unsigned long edata i;
 - 
 -         _nop_();
 -         i = 4UL;
 -         while (i) i--;
 - }
 - 
 - 
 - // 延时函数
 - void delay(unsigned char z)
 - {
 -     unsigned char x,y;
 -     for(x=z;x>0;x--)
 -         for(y=110;y>0;y--);
 - }
 - 
 - void main()
 - {
 -         
 -          WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
 -    EAXFR = 1; //扩展寄存器(XFR)访问使能
 -    CKCON = 0; //提高访问XRAM速度
 - 
 -         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
 -   P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
 -   P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
 -   P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
 -   P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
 -   P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
 -   P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
 -   P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
 -         P3M0 = 0xf0; P3M1 = 0x00;   //p34 p35 36 37 设为推完
 -         wei1 = 0;
 -         wei2 = 0;
 -         wei3 = 0;
 -         wei4 = 0;
 -         Timer0_Init();
 -         EA = 1;                                        //CPU开放中断,打开总中断。
 -         s = 13;
 -         f = 51;
 -         while(1)
 -         {
 -                 wei1 = 1;
 -     P2 = duanma[s/10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
 -                 Delay3ms();
 -                 wei1 = 0;
 -                 
 -                 
 -                 if(i<=500)
 -                 {
 -                         wei2 = 1;
 -                         P2 = duanma[s%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
 -                         Delay3ms();
 -                         wei2 = 0;                                
 -                 }else if(i>500 &&i<1000)
 -                 {
 -                         wei2 = 1;
 -                         P2 = duanma1[s%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
 -                         Delay3ms();
 -                         wei2 = 0;        
 -                 }
 -                 
 -         
 -                 
 - 
 -                 wei3 = 1;
 -     P2 = duanma[f/10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
 -                 Delay3ms();
 -                 wei3 = 0;
 - 
 - 
 -                 wei4 = 1;
 -     P2 = duanma[f%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
 -                 Delay3ms();
 -                 wei4 = 0;                
 - //                wei1 = 1;
 - //                wei2 = 0;
 - //                wei3 = 0;
 - //                wei4 = 0;
 - //                P2 = duanma[0];        
 - //                Delay2us();
 - //                wei1 = 0;
 - //                wei2 = 1;
 - //                wei3 = 0;
 - //                wei4 = 0;
 - 
 - //                P2 = duanma[1];        
 - 
 - //                
 - //                Delay2us();
 - //                wei1 = 0;
 - //                wei2 = 0;
 - //                wei3 = 1;
 - //                wei4 = 0;
 - //                if(i<=10)
 - //                {
 - //                        P2 = duanma[f/10];
 - //                }else
 - //                {
 - //                        P2 = duanma1[f/10];
 - //                }
 - //                
 - //                Delay2us();
 - //                wei1 = 0;
 - //                wei2 = 0;
 - //                wei3 = 0;
 - //                wei4 = 1;
 - //                P2 = duanma[f%10];
 - //                Delay2us();
 - //                
 - //                P2 = 0xff;
 - //                Delay2us();
 -         }
 - }
 - 
 - 
 - void Timer0_Isr(void) interrupt 1
 - {
 -         i++;
 -         if(i==1000)
 -         {
 -                 m++;
 -                 i=0;
 -                 if(m==60)
 -                 {
 -                         f++;
 -                         m=0;
 -                         if(f==60)
 -                         {
 -                                 s++;
 -                                 f=0;
 -                                 if(s==24)
 -                                 {
 -                                         s=0;
 -                                 }
 -                         }
 -                 }
 -         }
 -         
 - }
 
  复制代码
  
 
 
代码简单 
 |