找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1204|回复: 11
收起左侧

大佬们看一下这一块的单片机程序错误怎么改?

[复制链接]
ID:500882 发表于 2019-4-21 21:49 | 显示全部楼层 |阅读模式
大佬们看一下这一块的错误怎么改
下半段报错.png
中断.png
中断报错.png
中断下半段.png
回复

使用道具 举报

ID:164602 发表于 2019-4-22 08:50 | 显示全部楼层
发程序吧,想帮你都没办法。
只看你的图片,好像外部中断1的服务函数没有{},有头文件没?
回复

使用道具 举报

ID:477974 发表于 2019-4-22 10:25 | 显示全部楼层
你的变量定义类型了吗  比如 int char。。。
回复

使用道具 举报

ID:424408 发表于 2019-4-22 11:50 | 显示全部楼层
变量重叠
回复

使用道具 举报

ID:500882 发表于 2019-4-22 13:22 | 显示全部楼层
  1. /********************************AT89C52Ô′3ìDò************************/
  2. #include<reg52.h>                                       //°üo¬í·Îļtreg52.h
  3. #define uchar unsigned char                     //ÎT·ûoÅ×Ö·ûDí±äῶ¨òåÎauchar
  4. #define uint unsigned int
  5. sbit biaozhun=  P1^0;//¶¨òå¶Ë¿ú
  6. sbit jingji   =   P1^1;
  7. sbit dandu  =   P1^2;
  8. sbit paishuiled=  P1^3;
  9. sbit qiangxi =   P1^4;
  10. sbit ruoxi  =    P1^5;
  11. sbit xidi   =    P1^6;
  12. sbit piaoxi  =   P1^7;
  13. sbit tuoshui =    P2^0;
  14. sbit jinshui =    P2^2;
  15. sbit paishui =    P2^3;
  16. sbit zz    =     P2^4;
  17. sbit fz    =     P2^5;
  18. sbit baojing =    P2^1;
  19. /********************************¼üÅì½ó¿ú************************/
  20. sbit CX_key  =  P3^0;
  21. sbit QR_key  =  P3^1;
  22. sbit SW_key  =  P3^6;
  23. sbit GKG_key =  P3^7;
  24. /********************************諾ֱäῶ¨òå************************/
  25. uchar tt,num,qr,qidong;                                    
  26. uint tt1=0;
  27. bit XDshanshuo;
  28. bit PXshanshuo;
  29. bit TSshanshuo;
  30. bit BJshanshuo;
  31. /********************************Ñóê±ò»Ãë************************/
  32. void delay(uint i)                                       
  33. {
  34.         uchar x;    //,a,b,c
  35.         while(i--)
  36. T2CON=0X01;
  37.         for(x=0;x<20;x++);//¶¨ê±Æ÷¶¨ê±5Ãë
  38.         {
  39.                 TH2=0x3c;                                     //éèÖö¨ê±Æ÷3õÖμ
  40.                 TL2=0xb0;
  41.                 TR2=1;
  42.                 while(!TF2);                                   //2éÑˉ¼ÆêyêÇ·ñòç3ö
  43.                 TF2=0;                     //¶¨ê±ê±¼äμ½ ,½«¶¨ê±Æ÷òç3ö±ê־λTF2Çåáã
  44.                 while(!qidong);                                      //ÔYí£óï¾ä
  45.         }             
  46. }
  47. /********************************Ñóê±oáÃë************************/
  48. void delayms(uint i)                                        
  49. {
  50.         uchar x;                     
  51.         while(i--)
  52.         for(x=0;x<110;x++);               
  53. }
  54. /*******************************±ê×¼ÔËDD·½ê½************************/
  55. void biaozhunfangshi()                              //±ê×¼·½ê½ÔËDD
  56. {
  57.         jinshui=0;                                      //½øË®′ò¿a  
  58.         delay(4);                                       //Ñóê±
  59.         jinshui=1;                                                //½øË®1رÕ
  60.         xidi=0;                                             //Ï′μó′ò¿a
  61. TR1=1;             XDshanshuo=1;                             //Æô¶ˉ¶¨ê±Æ÷1Ï′μóéá˸
  62. delay(20);                                             //Ñóê±
  63.         xidi=1;                                            //Ï′μó′ò¿a       
  64.         TR1=0;              XDshanshuo=1;                     //1Øμô¶¨ê±Æ÷,Ï′μóéá˸
  65.         zz=0;                                             //Õy×a′ò¿a
  66.         fz=0;                                             //·′×a′ò¿a          
  67.         paishui=0;         BJshanshuo=1;                         //ÅÅË®′ò¿a
  68.         delay(2);                                         //Ñóê±
  69.         paishui=1;                                              //1ØμôÅÅË®
  70.         jinshui=0;                                        //′ò¿a½øË®
  71.         delay(4);                                         //Ñóê±
  72.         jinshui=1; BJshanshuo=0;                           //1Øμô½øË®       
  73.         piaoxi=0;                                         //′ò¿aÆˉÏ′
  74.         TR1=1;             PXshanshuo=1;                        //′ò¿a¶¨ê±Æ÷1ÆˉÏ′éá˸
  75.         delay(20);                                        //Ñóê±
  76.         piaoxi=1;                                        //1ØμôÆˉÏ′
  77.         TR1=0;     PXshanshuo=0;                        //1Øμô¶¨ê±Æ÷1.ÆˉÏ′éá˸
  78.         zz=0;                                            //′ò¿aÕy×a
  79.         fz=0;                                            //′ò¿a·′×a
  80.         paishui=0;   BJshanshuo=1;                        //′ò¿aÅÅË®
  81.         delay(2);                                         //Ñóê±
  82.         paishui=1;                                        //1ØμôÅÅË®
  83.         jinshui=0;                                        //′ò¿a½øË®
  84.         delay(4);                                         //Ñóê±
  85.         jinshui=1;  BJshanshuo=0;                          //1Øμô½øË®
  86.         piaoxi=0;                                         //′ò¿aÆˉÏ′
  87.         TR1=1;       PXshanshuo=1;                       //′ò¿a¶¨ê±Æ÷1
  88.         delay(20);                                        //Ñóê±
  89.         piaoxi=1;                                        //1ØμôÆˉÏ′
  90.         TR1=0;         PXshanshuo=0;                           //1Øμô¶¨ê±Æ÷1
  91.         zz=0;                                           //′ò¿aÕy×a
  92.         fz=0;                                           //′ò¿a·′×a
  93.         paishui=0;         BJshanshuo=1;                        //′ò¿aÅÅË®
  94.         delay(2);                                        //Ñóê±
  95.     paishui=1;                                      //1ØμôÅÅË®
  96.     tuoshui=0; TSshansuo=1;                           //′ò¿aíÑË®
  97.     delay(2);                                       //Ñóê±
  98. tuoshui=1; TSshansuo=0;                              //1ØμôíÑË®
  99. biaozhun=1;                                        //1Øμô±ê×¼
  100. }
  101. /****************************¾-¼ÃÔËDD·½ê½************************/
  102. void jingjifangshi()//¾-¼Ã·½ê½
  103. {
  104. jinshui=0;                                          //′ò¿a½øË®
  105. delay  (4);                                         //Ñóê±
  106. jinshui=1;                                          //1Øμô½øË®
  107. xidi=0;                                            //′ò¿aÏ′μó
  108. TR1=1;                                            //′ò¿a¶¨ê±Æ÷1
  109. XDshanshuo=1;                                     //′ò¿aÏ′μóéá˸
  110. delay(30);                                          //Ñóê±
  111.         xidi=1;                                         //1ØμôÏ′μó
  112.         TR1=0;     XDshanshuo=0;                      //1Øμô¶¨ê±Æ÷1       
  113.         zz=0;                                         //′ò¿aÕy×a
  114.         fz=0;                                          //1Øμô·′×a
  115.         paishui=0;                                      //′ò¿aÅÅË®
  116.         delay(2);                                        //Ñóê±
  117.         paishui=1;                                      //1ØμôÅÅË®
  118.         jinshui=0;                                       //′ò¿a½øË®
  119.         delay(4);                                        //Ñóê±
  120.         jinshui=1;                                       //1Øμô½øË®
  121.         piaoxi=0;                                        //′ò¿aÆˉÏ′
  122.         TR1=1;     PXshanshuo=1;                       //′ò¿a¶¨ê±Æ÷1
  123.         delay(20);                                       //Ñóê±
  124.         piaoxi=1;                                        //1ØμôÆˉÏ′
  125.         TR1=0;        PXshanshuo=0;                            //1Øμô¶¨ê±Æ÷1       
  126.         zz=0;                                           //Õy×a
  127.         fz=0;//·′×a
  128.         paishui=0;                                       //′ò¿aÅÅË®
  129.         delay(2);                                        //Ñóê±
  130.         paishui=1;                                       //1ØμôÅÅË®
  131.         tuoshui=0;  TSshanshuo=1;                        //′ò¿aíÑË®
  132.         delay(2);                                        //Ñóê±
  133.         tuoshui=1;  TSshanshuo=0;                        //1ØμôíÑË®
  134.         jingji=1;                                        //1رսøË®
  135. }
  136. /******************************쥶àÔËDD·½ê½************************/
  137. void dandufangshi()                                         //μ¥¶à·½ê½
  138. {
  139. jinshui=0;                                          //′ò¿a½øË®
  140.         delay(4);                                        //Ñóê±
  141.         jinshui=1;                                      //1Øμô½øË®
  142.         xidi=0;                 XDshanshuo=1;                      //′ò¿aÏ′μó
  143.         TR1=1;                                        //′ò¿a¶¨ê±Æ÷1
  144.         delay(30);                                      //Ñóê±
  145.         xidi=1;                                        //1ØμôÏ′μó
  146. TR1=0;                 XDshanshuo=0;                         //1Øμô¶¨ê±Æ÷1
  147.         zz=0;                                           //Õy×a
  148.         fz=0;                                           //·′×a
  149.         dandu=1;
  150. }
  151. /*******************************ÅÅË®ÔËDD·½ê½************************/
  152. void paishuifangshi()                                  //ÅÅË®·½ê½
  153. {
  154.         paishui=0;                                       //′ò¿aÅÅË®
  155.         delay(2);                                        //Ñóê±
  156.         paishui=1;                                       //1ØμôÅÅË®
  157.         tuoshui=0;           TSshanshuo=1;                      //′ò¿aíÑË®
  158. delay(2);                                            //Ñóê±
  159.         tuoshui=1; TSshanshuo=1;                          //′ò¿aíÑË®          
  160. paishuiled=1;
  161. }
  162. /*******************************Ç¿èõÇD»»3ìDò************************/
  163. void QiangRuoQieHuan()                             //Ç¿èõÇD»»×ó3ìDò
  164. {
  165. switch(qr)
  166.         {
  167. case 1:{qiangxi=0;ruoxi=1;}break;                                 //Ç¿Ï′
  168. case 2:{qiangxi=1;ruoxi=0;}break;                                 //èõÏ′
  169. case 3:{qr=1;}break;                                   //Ç¿èõ
  170.         }delayms(1);
  171. }
  172. /*******************************Ö÷oˉêy************************/
  173. void main()
  174. {
  175. EA=1;                                              //′ò¿aÖD¶Ï×üÔêDíλ
  176. EX0=1;                                            //′ò¿aía2¿ÖD¶Ï0ÔêDíλ
  177. IT0=1;                                           //éèÖÃía2¿ÖD¶ÏÎaϽμÑØ′¥·¢·½ê½
  178. EX1=1;                                             //ía2¿ÖD¶Ï1ÖD¶Ï
  179. IT1=1;                                          //éèÖñßÑØ′¥·¢·½ê½           
  180. TMOD=0x11;                                      //1¤×÷Ôú·½ê½èy
  181. TH0=(65536-50000)/256;                            //é趨3õÖμ
  182. TL0=(65536-50000)%256;                           //é趨3õÖμ
  183. ET0=1;                                           //T0ÖD¶ÏÔêDíλ
  184. TR0=1;                                           //Æô¶ˉ¶¨ê±Æ÷
  185. TH1=(65536-50000)/256;                            //é趨3õÖμ
  186. TL0=(65536-50000)%256;                           //é趨3õÖμ
  187.         ET0=1;                                       //T0ÖD¶ÏÔêDíλ
  188. TR0=1;                                          //Æô¶ˉ¶¨ê±Æ÷
  189. TH1=(65536-50000)/256;                           //é趨3õÖμ
  190. TL0=(65536-50000)%256;                          //é趨3õÖμ
  191. ET1=1;                                          //T1ÖD¶ÏÔêDíλ
  192. T2CON=0x01;                                   //¶¨ê±Æ÷21¤×÷·½ê½1
  193. num=1;
  194. qr=1;                                           //1رÕÇ¿èõ
  195. qidong=0;                                       //′ò¿aÆô¶ˉ
  196. while(1)
  197. {       
  198. QiangRuoQieHuan();                              //Ç¿èõÇD»»×ó3ìDò
  199. switch(num)                                            //3ìDòLEDÖ¸ê¾
  200.         {
  201.                 case 1:{biaozhun=0;jingji=1;dandu=1;paishuiled=1;}break;            //±ê×¼
  202.                 case 2:{biaozhun=1;jingji=0;dandu=1;paishuiled=1;}break;               //¾-¼Ã
  203.                 case 3:{biaozhun=1;jingji=1;dandu=0;paishuiled=1;}break;          //쥶à
  204.                 case 4:{biaozhun=1;jingji=1;dandu=1;paishuiled=0;}break;          //ÅÅË®
  205.                 }delayms(1);
  206.                 if(qidong==1)
  207.                 {
  208.                         while(1)
  209.                         {
  210.                                 switch(num)                                            //3ìDò·½ê½ÇD»»
  211.                                 {
  212.                                         case 1:{biaozhunfangshi();}break;           //±ê×¼·½ê½
  213.                                         case 2:{jingjifangshi();}break;              //¾-¼Ã·½ê½
  214.                                         case 3:{dandufangshi();}break;              // μ¥¶à·½ê½
  215.                                         case 4:{paishuifangshi();}break;             //ÅÅË®·½ê½
  216.                                 }delayms(1); return;
  217.                         }
  218.                 }
  219.         }
  220. }
  221. /*******************************ÖD¶Ï*********************************/

  222. void int0() interrupt 0                                                       //ÔËDD/ÔYí£
  223. {
  224.         qidong++;                                          //Æô¶ˉ
  225.         if(qidong==2)                                       //èç1ûÆô¶ˉ′ò¿a
  226.         {qidong=0;TR1=0;zz=0;fz=0;}                         //Æô¶ˉ′ò¿a
  227. }
  228. void int0() interrupt 2                                    //¸Ç¿a1Ø       
  229. EA=0;                                              //1رÕÖD¶Ï×üÔêDíλ
  230. TR0=0;                                             //1رն¨ê±Æ÷0
  231. TR0=1;                                              //Æô¶ˉ¶¨ê±Æ÷1
  232. zz=0;                                              //′ò¿aÕy×a
  233. fz=0;                                              //′ò¿a·′×a
  234. TR2=0;                                                //1رն¨ê±Æ÷2
  235. TF2=0;                          //¶¨ê±ê±¼äμ½,½«¶¨ê±Æ÷òç3ö±ê־λTF2Çåáã
  236. void time0() interrupt 1              //¶¨ê±Æ÷ÖD¶Ï0ÖD¶ÏààDíoÅ1
  237. {
  238.         TH0=(65536-50000)/256;                              //é趨3õÖμ
  239.         TL0=(65536-50000)%256;                                //é趨3õÖμ
  240.         tt++;
  241.         if(QR_key==0)                                      //Ç¿èõÇD»»¿a1Ø
  242.         {
  243.                 delayms(5);                                      //Ñóê±
  244.                 if(QR_key==0)                                   //èç1ûÇ¿èõ¿a1ؼü°′ÏÂ
  245.                         {
  246.                                 qr++;                                           //Ç¿èõ
  247.                                 }while(!QR_key);
  248.                                 }
  249.                                 if(CX_key==0)                                      //3ìDòÑ¡Ôñ¼ü
  250.                                         {
  251.                                                 delayms(5)                                     //Ñóê±
  252.                                                 if(CX_key==0)                                        //èç1û°′ÏÂ3ìDò½¨
  253.                                                         {num++;
  254.                                                                 if(num==5)num=1;
  255.                                                                 }
  256.                                                                 while(!CX_key);
  257.                                                                 }
  258.                                                         }
  259. /*******************************¸Ç¿a1Ø************************/

  260.         if(GKG_key==0)                                                 //¸Ç¿a1Ø
  261.         {
  262.                 {
  263.                 while(!GKG_key)
  264.                 {TR1=0;zz=0;fz=0;}                       //′ò¿a¶¨ê±Æ÷1 Õy×a¡¢·′×a′ò¿a
  265.                 TR1=1;                                       //′ò¿a¶¨ê±Æ÷1               
  266.         }  
  267. if(tt==14)                                                  //LED 0.7s éá˸
  268.         {
  269.         tt=0;
  270.         {
  271.                 if(XDshanshuo==1)                             //èç1ûêǸßμçƽ
  272.                 {xidi=!xidi;}                                  //2»Ï′μó
  273.                 if(PXshanshuo==1)                             //èç1ûêǸßμçƽ
  274.                 {piaoxi=!piaoxi;}                              //2»ÆˉÏ′
  275.                 if(TSshanshuo==1)                             //èç1ûêǸßμçƽ
  276.                 {tuoshui=!tuoshui;}                            //2»íÑË®
  277.         }
  278.         }
  279.        
  280. }
  281. void time1() interrupt 3                                //¶¨ê±Æ÷ÖD¶Ï1ÖD¶ÏààDíoÅ3
  282. {
  283.         TH1=(65536-50000)/256;                           //¶¨3õÖμ
  284.         TL1=(65536-50000)%256;                          //¶¨3õÖμ
  285.         if(tt1==0)                                             //μç»úÕy×a
  286.         {
  287.                 zz=0;
  288.                 fz=1;
  289.         }
  290.         if(tt1==120)                                      //6Ãëoóμç»úí£Ö1
  291.         {
  292.                 zz=1;                                        //μç»úí£Ö1
  293.                 fz=1;
  294.         }
  295.         tt1++;                                            //μã»÷¼ìDø
  296.         if(tt1==200)                                                   //4Ãëoóμç»ú·′×a
  297.         {
  298.                 zz=1;                                         //·′×a
  299.                 fz=0;       
  300. }
  301.         if(tt1==320)                                              //6Ãëoóμç»úí£Ö1
  302.         {
  303.                 zz=1;                                        //μç»ú2»×a
  304.                 fz=1;
  305.         }
  306.         if(tt1==400)                                      //4Ãëoóμç»úÕy×a
  307.         {
  308.                 tt1=0;                                       //μç»úÕy×a
  309.         }
  310. }
复制代码
回复

使用道具 举报

ID:500882 发表于 2019-4-22 13:22 | 显示全部楼层
aimripeky 发表于 2019-4-22 10:25
你的变量定义类型了吗  比如 int char。。。

定义了的,头文件接下来就定义了
回复

使用道具 举报

ID:500882 发表于 2019-4-22 13:25 | 显示全部楼层
HC6800-ES-V2.0 发表于 2019-4-22 08:50
发程序吧,想帮你都没办法。
只看你的图片,好像外部中断1的服务函数没有{},有头文件没?

程序放下面楼了,越改错越多不知道为啥
回复

使用道具 举报

ID:462827 发表于 2019-4-22 14:16 | 显示全部楼层
错太多了
第96、98行,TSshanshuo错写成TSshansuo了
第229行的中断服务程序少了开始跟结束的花括号,而且与第223的函数重名
还有两个定时器中断的服务程序写得也太繁琐了
回复

使用道具 举报

ID:462827 发表于 2019-4-22 14:22 | 显示全部楼层
代码第254行尾少分号
自第239起的代码段有问题。因为排版极乱没有规范缩进,大大增加排错难度。
回复

使用道具 举报

ID:500882 发表于 2019-4-22 16:02 | 显示全部楼层
hantu 发表于 2019-4-22 14:22
代码第254行尾少分号
自第239起的代码段有问题。因为排版极乱没有规范缩进,大大增加排错难度。

/*******************************中断*********************************/

void int0() interrupt 0                                                       //运行/暂停
{
        qidong++;                                          //启动
        if(qidong==2)                                       //如果启动打开
        {qidong=0;TR1=0;zz=0;fz=0;}                         //启动打开
}
void int1() interrupt 2                                    //盖开关
{
EA=0;                                              //关闭中断总允许位
TR0=0;                                             //关闭定时器0
TR0=1;                                              //启动定时器1
zz=0;                                              //打开正转
fz=0;                                              //打开反转
TR2=0;                                                //关闭定时器2
TF2=0;                          //定时时间到,将定时器溢出标志位TF2清零
}
void time0() interrupt 1              //定时器中断0中断类型号1
{
        TH0=(65536-50000)/256;                              //设定初值
        TL0=(65536-50000)%256;                                //设定初值
        tt++;
        if(QR_key==0)                                      //强弱切换开关
        {
                delayms(5);                                      //延时
                if(QR_key==0)                                   //如果强弱开关键按下
                        {
                                qr++;                                           //强弱
                                }while(!QR_key);
                                }
                                if(CX_key==0)                                      //程序选择键
                                        {
                                                delayms(5);                                     //延时
                                                if(CX_key==0)                                        //如果按下程序键
                                                        {num++;
                                                                if(num==5)num=1;
                                                                }
                                                                while(!CX_key);
                                                                }
                                                        }
/*******************************盖开关************************/

        if(GKG_key==0)                                                 //盖开关
        {
                {
                while(!GKG_key)
                {TR1=0;zz=0;fz=0;}                       //关闭定时器1 正转、反转打开
                TR1=1;                                       //打开定时器1               
        }  
if(tt==14)                                                  //LED 0.7s 闪烁¸
        {
        tt=0;
        {
                if(XDshanshuo==1)                             //如果是高电平
                {xidi=!xidi;}                                  //不洗涤
                if(PXshanshuo==1)                             //如果是高电平
                {piaoxi=!piaoxi;}                              //不漂洗
                if(TSshanshuo==1)                             //如果是高电平
                {tuoshui=!tuoshui;}                            //不脱水
        }
        }
       
}
void time1() interrupt 3                                //定时器中断1中断类型号3
{
        TH1=(65536-50000)/256;                           //定初值
        TL1=(65536-50000)%256;                          //定初值
        if(tt1==0)                                             //电机正传
        {
                zz=0;
                fz=1;
        }
        if(tt1==120)                                      //6秒后电机停止
        {
                zz=1;                                        //电机停止
                fz=1;
        }
        tt1++;                                            //电机继续
        if(tt1==200)                                                   //4秒后电机反转
        {
                zz=1;                                         //反转
                fz=0;       
}
        if(tt1==320)                                              //6秒后电机停止
        {
                zz=1;                                        //电机不转
                fz=1;
        }
        if(tt1==400)                                      //4秒后电机正传
        {
                tt1=0;                                       //电机正转
        }
}
回复

使用道具 举报

ID:500882 发表于 2019-4-22 16:03 | 显示全部楼层
hantu 发表于 2019-4-22 14:22
代码第254行尾少分号
自第239起的代码段有问题。因为排版极乱没有规范缩进,大大增加排错难度。

从229行开始重新排版了一下,现在应该没有乱码了
回复

使用道具 举报

ID:405033 发表于 2019-4-22 16:40 | 显示全部楼层
/********************************AT89C52???3??D??************************/
#include<reg52.h>                                       //??o????????treg52.h
#define uchar unsigned char                     //?T???o???????D???????????????auchar
#define uint unsigned int
sbit biaozhun=  P1^0;//???????????
sbit jingji   =   P1^1;
sbit dandu  =   P1^2;
sbit paishuiled=  P1^3;
sbit qiangxi =   P1^4;
sbit ruoxi  =    P1^5;
sbit xidi   =    P1^6;
sbit piaoxi  =   P1^7;
sbit tuoshui =    P2^0;
sbit jinshui =    P2^2;
sbit paishui =    P2^3;
sbit zz    =     P2^4;
sbit fz    =     P2^5;
sbit baojing =    P2^1;
/********************************????????????************************/
sbit CX_key  =  P3^0;
sbit QR_key  =  P3^1;
sbit SW_key  =  P3^6;
sbit GKG_key =  P3^7;
/********************************?????????????????************************/
uchar tt,num,qr,qidong;                                    
uint tt1=0;
bit XDshanshuo;
bit PXshanshuo;
bit TSshanshuo;
bit BJshanshuo;
/********************************????????????************************/
void delay(uint i)                                       
{
        uchar x;    //,a,b,c
        while(i--)
T2CON=0X01;
        for(x=0;x<20;x++);//?????????????????5??
        {
                TH2=0x3c;                                     //????????????????3????
                TL2=0xb0;
                TR2=1;
                while(!TF2);                                   //2?????????y?????????3?
                TF2=0;                     //???????????????? ,???????????¨??3?????????TF2?????
                while(!qidong);                                      //?Y???????
        }            
}
/********************************???????o????************************/
void delayms(uint i)                                         
{
        uchar x;                     
        while(i--)
        for(x=0;x<110;x++);               
}
/*******************************?????????DD??????************************/

void biaozhunfangshi()                              //???????????????DD
{
        jinshui=0;                                      //???????a  
        delay(4);                                       //???????
        jinshui=1;                                                //????1????
        xidi=0;                                             //????????a
TR1=1;             XDshanshuo=1;                             //???????????????1???????????
delay(20);                                             //???????
        xidi=1;                                            //????????a        
        TR1=0;              XDshanshuo=1;                     //1??????????????,???????????
        zz=0;                                             //?y??a???a
        fz=0;                                             //?????a???a           
        paishui=0;         BJshanshuo=1;                         //???????a
        delay(2);                                         //???????
        paishui=1;                                              //1????????
        jinshui=0;                                        //???a????
        delay(4);                                         //???????
        jinshui=1; BJshanshuo=0;                           //1????????        
        piaoxi=0;                                         //???a??????
        TR1=1;             PXshanshuo=1;                        //???a??????????1??????????
        delay(20);                                        //???????
        piaoxi=1;                                        //1??????????
        TR1=0;     PXshanshuo=0;                        //1??????????????1.??????????
        zz=0;                                            //???a?y??a
        fz=0;                                            //???a?????a
        paishui=0;   BJshanshuo=1;                        //???a????
        delay(2);                                         //???????
        paishui=1;                                        //1????????
        jinshui=0;                                        //???a????
        delay(4);                                         //???????
        jinshui=1;  BJshanshuo=0;                          //1????????
        piaoxi=0;                                         //???a??????
        TR1=1;       PXshanshuo=1;                       //???a??????????1
        delay(20);                                        //???????
        piaoxi=1;                                        //1??????????
        TR1=0;         PXshanshuo=0;                           //1??????????????1
        zz=0;                                           //???a?y??a
        fz=0;                                           //???a?????a
        paishui=0;         BJshanshuo=1;                        //???a????
        delay(2);                                        //???????
                   paishui=1;                                      //1????????
            tuoshui=0;
                TSshanshuo=1;                           //???a?????
            delay(2);                                       //???????
                tuoshui=1;
                TSshanshuo=0;                              //1?????????
                biaozhun=1;                                        //1???????????
}
/****************************?-????DD??????************************/

void jingjifangshi()//?-????????
{
jinshui=0;                                          //???a????
delay  (4);                                         //???????
jinshui=1;                                          //1????????
xidi=0;                                            //???a?????
TR1=1;                                            //???a??????????1
XDshanshuo=1;                                     //???a???????????
delay(30);                                          //???????
        xidi=1;                                         //1?????????
        TR1=0;     XDshanshuo=0;                      //1??????????????1        
        zz=0;                                         //???a?y??a
        fz=0;                                          //1?????????a
        paishui=0;                                      //???a????
        delay(2);                                        //???????
        paishui=1;                                      //1????????
        jinshui=0;                                       //???a????
        delay(4);                                        //???????
        jinshui=1;                                       //1????????
        piaoxi=0;                                        //???a??????
        TR1=1;     PXshanshuo=1;                       //???a??????????1
        delay(20);                                       //???????
        piaoxi=1;                                        //1??????????
        TR1=0;        PXshanshuo=0;                            //1??????????????1        
        zz=0;                                           //?y??a
        fz=0;//?????a
        paishui=0;                                       //???a????
        delay(2);                                        //???????
        paishui=1;                                       //1????????
        tuoshui=0;  TSshanshuo=1;                        //???a?????
        delay(2);                                        //???????
        tuoshui=1;  TSshanshuo=0;                        //1?????????
        jingji=1;                                        //1????????
}
/***************************************************************/

void dandufangshi()                                         //????????????
{
jinshui=0;                                          //???a????
        delay(4);                                        //???????
        jinshui=1;                                      //1????????
        xidi=0;                 XDshanshuo=1;                      //???a?????
        TR1=1;                                        //???a??????????1
        delay(30);                                      //???????
        xidi=1;                                        //1?????????
TR1=0;                 XDshanshuo=0;                         //1??????????????1
        zz=0;                                           //?y??a
        fz=0;                                           //?????a
        dandu=1;
}
/*******************************??????DD??????************************/

void paishuifangshi()                                  //??????????
{
        paishui=0;                                       //???a????
        delay(2);                                        //???????
        paishui=1;                                       //1????????
        tuoshui=0;           TSshanshuo=1;                      //???a?????
delay(2);                                            //???????
        tuoshui=1; TSshanshuo=1;                          //???a?????         
paishuiled=1;
}
/*******************************??????D??3??D??************************/

void QiangRuoQieHuan()                             //??????D??????3??D??
{
switch(qr)
        {
case 1:{qiangxi=0;ruoxi=1;}break;                                 //?????
case 2:{qiangxi=1;ruoxi=0;}break;                                 //??????
case 3:{qr=1;}break;                                   //?????
        }delayms(1);
}
/*******************************???o????y************************/

void main()
{
EA=1;                                              //???a?D?????????D????
EX0=1;                                            //???a??a2??D??0???D????
IT0=1;                                           //????????a2??D???a????????????顤????
EX1=1;                                             //??a2??D??1?D??
IT1=1;                                          //????????????????顤????           
TMOD=0x11;                                      //1????????????????y
TH0=(65536-50000)/256;                            //???????3????
TL0=(65536-50000)%256;                           //???????3????
ET0=1;                                           //T0?D?????D????
TR0=1;                                           //???????????????
TH1=(65536-50000)/256;                            //???????3????
TL0=(65536-50000)%256;                           //???????3????
        ET0=1;                                       //T0?D?????D????
TR0=1;                                          //???????????????
TH1=(65536-50000)/256;                           //???????3????
TL0=(65536-50000)%256;                          //???????3????
ET1=1;                                          //T1?D?????D????
T2CON=0x01;                                   //??????????21??????????1
num=1;
qr=1;                                           //1?????????
qidong=0;                                       //???a?????
while(1)
{        
QiangRuoQieHuan();                              //??????D??????3??D??
switch(num)                                            //3??D??LED?????
        {
                case 1:{biaozhun=0;jingji=1;dandu=1;paishuiled=1;}break;            //???????
                case 2:{biaozhun=1;jingji=0;dandu=1;paishuiled=1;}break;               //?-??
                case 3:{biaozhun=1;jingji=1;dandu=0;paishuiled=1;}break;          //??????
                case 4:{biaozhun=1;jingji=1;dandu=1;paishuiled=0;}break;          //????
                }delayms(1);
                if(qidong==1)
                {
                        while(1)
                        {
                                switch(num)                                            //3??D?????????D??
                                {
                                        case 1:{biaozhunfangshi();}break;           //?????????????
                                        case 2:{jingjifangshi();}break;              //?-????????
                                        case 3:{dandufangshi();}break;              // ????????????
                                        case 4:{paishuifangshi();}break;             //??????????
                                }delayms(1); return;
                        }
                }
        }
}
/*******************************?D??*********************************/

void int0() interrupt 0                                                       //??DD/?Y????
{
        qidong++;                                          //?????
        if(qidong==2)                                       //???1?????????a
        {qidong=0;TR1=0;zz=0;fz=0;}                         //????????a
}
void int1() interrupt 2 {                                   //???a1?        
EA=0;                                              //1?????D?????????D????
TR0=0;                                             //1??????????????0
TR0=1;                                              //???????????????1
zz=0;                                              //???a?y??a
fz=0;                                              //???a?????a
TR2=0;                                                //1??????????????2
TF2=0;    }                      //????????????????,???????????¨??3?????????TF2?????
void time0() interrupt 1              //???????????D??0?D??????D??o?1
{
        TH0=(65536-50000)/256;                              //???????3????
        TL0=(65536-50000)%256;                                //???????3????
        tt++;
        if(QR_key==0)                                      //??????D???a1?
        {
            delayms(5);                                      //???????
            if(QR_key==0)                                   //???1???????a1?????????
            {
                    qr+=1;                                           //?????
            }
                        while(!QR_key);
        }
                                if(CX_key==0)                                      //3??D?????????
                                        {
                                                delayms(5);                                    //???????
                                                if(CX_key==0)                                        //???1??????3??D?????
                                                        {num++;
                                                                if(num==5)num=1;
                                                                }
                                                                while(!CX_key);
                                                                }
/*******************************???a1?************************/
       
        if(GKG_key==0)                                                 //???a1?
        {
                {
                while(!GKG_key)
                {TR1=0;zz=0;fz=0;}                       //???a??????????1 ?y??a??顤???a???a
                TR1=1;                                       //???a??????????1               
        }  
if(tt==14)                                                  //LED 0.7s ??????
        {
        tt=0;
        {
                if(XDshanshuo==1)                             //???1???????????
                {xidi=!xidi;}                                  //2??????
                if(PXshanshuo==1)                             //???1???????????
                {piaoxi=!piaoxi;}                              //2???????
                if(TSshanshuo==1)                             //???1???????????
                {tuoshui=!tuoshui;}                            //2??????
        }
        }
        
}

}
void time1() interrupt 3                                //???????????D??1?D??????D??o?3
{
        TH1=(65536-50000)/256;                           //???3????
        TL1=(65536-50000)%256;                          //???3????
        if(tt1==0)                                             //???????y??a
        {
                zz=0;
                fz=1;
        }
        if(tt1==120)                                      //6??o?????????????1
        {
                zz=1;                                        //???????????1
                fz=1;
        }
        tt1++;                                            //?????????D?
        if(tt1==200)                                                   //4??o?????????????a
        {
                zz=1;                                         //?????a
                fz=0;        
}
        if(tt1==320)                                              //6??o?????????????1
        {
                zz=1;                                        //??????2???a
                fz=1;
        }
        if(tt1==400)                                      //4??o?????????y??a
        {
                tt1=0;                                       //???????y??a
        }
}
老铁,程序最好看懂呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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