⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
📖 第 1 页 / 共 4 页
字号:
 589   3                   Temp2=Temp2>>1;
 590   3                   Temp2=Temp2+0x80;  }
 591   2                 else
 592   2                   Temp2=Temp2>>1;
 593   2                 CLK = 1; 
 594   2               }
 595   1         CS = 1;
 596   1         if(Temp1==Temp2)             //判断数据采集是否有效
 597   1         {  
 598   2            error=0;
 599   2            return Temp1;
 600   2              }
 601   1         else
 602   1         {
 603   2           error=1;
 604   2           return Temp1;
 605   2         }
 606   1      }
 607          
 608          
 609          /*
 610          void timer0() interrupt 1 using 1 
 611          {
 612           TH0=~(500/256) ;
C51 COMPILER V7.20   TEXT1                                                                 08/18/2007 22:40:15 PAGE 11  

 613           TL0=-(500%250);
 614           beep=!beep;
 615           }
 616          */
 617          
 618          
 619          
 620          
 621          void main()                                                                                                                                                      
 622          {       
 623   1              unsigned int  result;
 624   1          uchar i;
 625   1              uchar t;
 626   1      
 627   1              
 628   1              uchar i2;
 629   1              uchar j=0;     //标记
 630   1              ulong a=1000,b=1000;  //a用来记录频率;b用来记录频率间隔(开始是为1000HZ)
 631   1              ulong c=0; 
 632   1              
 633   1          
 634   1              uchar code d[]="please insert F:";
 635   1              uchar code q[]="insert code:        ";  
 636   1              uchar code w[]="please insert DF:" ;
 637   1              uchar  ask[20];
 638   1      
 639   1      
 640   1      /*      uchar code str0='1';
 641   1              uchar code str1='2';
 642   1              uchar code str2='3';
 643   1          uchar code str3='A';
 644   1              uchar code str4='4';
 645   1              uchar code str5='5';
 646   1          uchar code str6='6';
 647   1              uchar code str7='B';
 648   1              uchar code str8='7';
 649   1          uchar code str9='8';
 650   1              uchar code str10='9';
 651   1              uchar code str11='c';
 652   1              uchar code str12='*';
 653   1          uchar code str13='0';
 654   1              uchar code str14='#';
 655   1              uchar code str15='D';   
 656   1       */
 657   1              
 658   1      
 659   1              unsigned char offset=0x80;   //定义一个偏移地址变量,lcd1602 写入控制字时用到
 660   1              unsigned char key;
 661   1      
 662   1              delay(2);
 663   1              lcd1602_bus=0xff;
 664   1              lcd1602_init();
 665   1          lcd1602_wrcmd(offset+0x00);
 666   1          xianshi(0);  
 667   1              
 668   1              
 669   1          
 670   1      
 671   1          while(1)
 672   1              {       
 673   2                 
 674   2                         key=getkey_ii();
C51 COMPILER V7.20   TEXT1                                                                 08/18/2007 22:40:15 PAGE 12  

 675   2      
 676   2       /*
 677   2                         if (key==8)
 678   2                 {
 679   2                       TMOD=0x01;
 680   2                                        TH0=~(500/256) ;
 681   2                        TL0=-(500%250);
 682   2                                        TR0=1;
 683   2                                        ET0=1;
 684   2                                        EA=1;
 685   2                                        while(key!=15)
 686   2                                        {
 687   2                                         key=getkey_ii();
 688   2      
 689   2                                        }
 690   2                                        EA=0;
 691   2                                      
 692   2                                      while(1)
 693   2                                      {
 694   2                                      delay_1ms(1);
 695   2                                      beep=!beep;
 696   2                                      }
 697   2      
 698   2      
 699   2                          }
 700   2      
 701   2      */         
 702   2      
 703   2                         /***************  A键上调  ******************/
 704   2                         if(key==7)
 705   2                              { 
 706   3                                      j=j+1;
 707   3                                      if(j>6)j=0;
 708   3                                   xianshi(j);      
 709   3                               
 710   3                               }
 711   2      
 712   2      
 713   2                         /***************  B键下调  ******************/
 714   2                         if (key==3)
 715   2                              {                        
 716   3                                  if (j==0) j=7;
 717   3                                      j=j-1;
 718   3                                      xianshi(j);
 719   3      
 720   3                               } 
 721   2      
 722   2                        /*************     *键用来步减  *******************/
 723   2                if(key==12){a=a-b; ad9850(a,b,c);}    //      
 724   2      
 725   2      
 726   2      
 727   2                        
 728   2                         /*************    #用来步加   *******************/ 
 729   2                        if(key==14) {a=a+b; ad9850(a,b,c);}   //      
 730   2      
 731   2      
 732   2                        /*************     SIN  *******************/
 733   2                        if(key==0  || ((j==0)&&(key==15)))
 734   2                      { key=getkey_ii(); 
 735   3                             ad9850(a,b,c);                   
 736   3                         delay(1000);           
C51 COMPILER V7.20   TEXT1                                                                 08/18/2007 22:40:15 PAGE 13  

 737   3                      }
 738   2      
 739   2      
 740   2      
 741   2                        /*************     SET  F   *******************/
 742   2                        if(key==1|| ((j==1)&&(key==15)))
 743   2                        { a=0;
 744   3                          lcd1602_clear();
 745   3                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 746   3                              key=18;     //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次 
 747   3                              
 748   3                          while(key!=15 )
 749   3                          {
 750   4                            key=getkey_ii();
 751   4      
 752   4      
 753   4                      if(key==0)
 754   4                              { 
 755   5                                      lcd1602_clear();
 756   5                          lcd1602_wrcmd(offset+0x00);
 757   5                                         
 758   5                                  a=a*10+1;
 759   5      
 760   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 761   5                      lcd1602_wrcmd(offset+0x40);   //换行
 762   5                          xianshu(a);  
 763   5                              //lcd1602_wrcmd(offset+0x40);
 764   5                              //      for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
 765   5                               }
 766   4                          else if (key==1)
 767   4                              { 
 768   5                                      lcd1602_clear();
 769   5                          lcd1602_wrcmd(offset+0x00);
 770   5      
 771   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 772   5                                      lcd1602_wrcmd(offset+0x40);   //换行 
 773   5                                      a=a*10+2;
 774   5                                       xianshu(a);  
 775   5                              //lcd1602_wrcmd(offset+0x40);
 776   5                                      //for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
 777   5                               }
 778   4                         else if (key==2)
 779   4                               {
 780   5                                      lcd1602_clear();
 781   5                          lcd1602_wrcmd(offset+0x00);
 782   5                          
 783   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 784   5                      lcd1602_wrcmd(offset+0x40);   //换行
 785   5                      a=a*10+3;
 786   5                                      xianshu(a);  
 787   5                            //  lcd1602_wrcmd(offset+0x40);
 788   5                              //      for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
 789   5                               }
 790   4      
 791   4                 else if (key==4)
 792   4                               {
 793   5                                      lcd1602_clear();
 794   5                          lcd1602_wrcmd(offset+0x00);
 795   5                                      a=a*10+4;
 796   5                              
 797   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 798   5                      lcd1602_wrcmd(offset+0x40);   //换行
C51 COMPILER V7.20   TEXT1                                                                 08/18/2007 22:40:15 PAGE 14  

 799   5                          xianshu(a);  
 800   5                     }
 801   4                  else if (key==5)
 802   4                               {
 803   5                                      lcd1602_clear();
 804   5                          lcd1602_wrcmd(offset+0x00);
 805   5                                      
 806   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 807   5                      lcd1602_wrcmd(offset+0x40);   //换行
 808   5                                      a=a*10+5;
 809   5                          xianshu(a);  
 810   5                     }
 811   4                  else if (key==6)
 812   4                               {
 813   5                                      lcd1602_clear();
 814   5                          lcd1602_wrcmd(offset+0x00);
 815   5                                      
 816   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 817   5                      lcd1602_wrcmd(offset+0x40);   //换行
 818   5                                      a=a*10+6;
 819   5                          xianshu(a);  
 820   5                      }
 821   4                              else if (key==8)
 822   4                               {
 823   5                                      lcd1602_clear();
 824   5                          lcd1602_wrcmd(offset+0x00);
 825   5                                      
 826   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 827   5                     lcd1602_wrcmd(offset+0x40);   //换行
 828   5                                      a=a*10+7;
 829   5                          xianshu(a);  
 830   5                      }
 831   4                              else if (key==9)
 832   4                               {
 833   5                                      lcd1602_clear();
 834   5                          lcd1602_wrcmd(offset+0x00);
 835   5      
 836   5                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 837   5                                      lcd1602_wrcmd(offset+0x40);   //换行
 838   5                                   a=a*10+8;
 839   5                           xianshu(a);  
 840   5                       }
 841   4                              else if (key==10)
 842   4                               {
 843   5                                      lcd1602_clear();
 844   5                          lcd1602_wrcmd(offset+0x00);
 845   5                                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 846   5                      lcd1602_wrcmd(offset+0x40);   //换行
 847   5                                      a=a*10+9;
 848   5                          xianshu(a);  
 849   5                      }
 850   4                              else if (key==13)
 851   4                               {
 852   5                                      lcd1602_clear();
 853   5                          lcd1602_wrcmd(offset+0x00);
 854   5                                      for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
 855   5                      lcd1602_wrcmd(offset+0x40);   //换行
 856   5                                      a=a*10+0;
 857   5                          xianshu(a);  
 858   5                       }
 859   4                   
 860   4                    }
C51 COMPILER V7.20   TEXT1                                                                 08/18/2007 22:40:15 PAGE 15  

 861   3                          
 862   3                       xianshi(0);
 863   3                               j=0;
 864   3                              ad9850(a,b,c);
 865   3                      }                                                       //设定频率
 866   2      
 867   2      
 868   2                      
 869   2      
 870   2      
 871   2                        /*************     SET DF   *******************/
 872   2                        if(key==2 || ((j==2)&&(key==15)))
 873   2                        { b=0;
 874   3                          lcd1602_clear();
 875   3                      for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
 876   3                                     
 877   3                              key=18;     //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次 
 878   3                              
 879   3                          while(key!=15 )
 880   3                          {
 881   4                            key=getkey_ii();
 882   4      
 883   4      
 884   4                      if(key==0)
 885   4                              { 
 886   5                                      lcd1602_clear();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -