久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2323|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

在線等請(qǐng)問(wèn)各位大佬這個(gè)單片機(jī)程序出錯(cuò)了,怎么修改?謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include<reg52.h>
#include<intrins.h>
#include<absacc.h>
sbit kgnxz=P3^0; //功能選擇鍵,按一次設(shè)定時(shí)間,按兩次設(shè)定鬧鐘時(shí)間,按三次又顯示時(shí)間表  
sbit ksec=P3^1;//調(diào)整秒
sbit kmin=P3^2;//調(diào)整分
sbit khour=P3^3;//調(diào)整時(shí)
sbit kzh=P3^4;//24與12小時(shí)制轉(zhuǎn)換
  unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0,flag=0,//flag是按鍵的計(jì)數(shù)
               secshi1=0,secge1=0,minshi1=0,minge1=0,hourshi1=0,hourge1=0;//定義存儲(chǔ)時(shí)間和鬧鐘時(shí)分秒的個(gè)位和十位
unsigned int num=0,sec=0,min=0,hour=0,sec1=30,min1=0,hour1=1, num1=0;//定義時(shí)間和鬧鐘的時(shí)分秒
unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管段控口
void keyscan();//鍵盤(pán)掃描函數(shù)
void display();//時(shí)鐘顯示函數(shù)
        /***延時(shí)函數(shù)****/
void delay(unsigned char z)
{unsigned char x,y;
  for(x=z;x>0;x--)
   for(y=255;y>0;y--);
}
/***中斷函數(shù)****/
void time0() interrupt 1
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(num==20)
   {num=0;
    sec++;
    if(sec==60)
     {sec=0;
      min++;
      if(min==60)
        {min=0;
         hour++;
         if(hour==24)
           {hour=0;
            }
         }
      }
  display(); }
}
/******時(shí)鐘顯示函數(shù)******/
void display()
{
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=0xfe;
P0=table[secge];
delay(5);
P2=0xfd;
P0=table[secshi];
delay(5);
P2=0xfb;
P0=0x40;
delay(5);
P2=0xf7;
P0=table[minge];
delay(5);
P2=0xef;
P0=table[minshi];
delay(5);
P2=0xdf;
P0=0x40;
delay(5);
P2=0xbf;
P0=table[hourge];
delay(5);
P2=0x7f;
P0=table[hourshi];
delay(5);
}
                        /*****鍵盤(pán)掃描*********/
void keyscan()
{if(kgnxz==0)     //功能選擇鍵是否按下
    {  delay(10);//延時(shí)消抖            
        if(kgnxz==0)//再次判斷鍵是否按下              
          {flag++;}        //計(jì)數(shù),功能選擇鍵按鍵次數(shù)加一         
          while(!kgnxz);} //釋放鍵  
   if(flag==1)//功能選擇鍵
   {if(ksec==0)//秒調(diào)整鍵
   {delay(10);//延時(shí)消抖        
    if(ksec==0)//再次判斷鍵是否按下
      {sec++;//秒加加
       if(sec>=60)//如果秒大于60
       sec=0;//秒清零
       }
  while(ksec==0)//釋放鍵
  display();}
  if(kmin==0)
    {delay(10);
     if(kmin==0)
       {min++;
        if(min>=60)
        min=0;
        }
  while(kmin==0)
  display();
     }
  if(khour==0)
    {delay(10);
     if(khour==0)
       {hour++;
        if(hour==24)
        hour=0;
        }
  while(khour==0)
  display();
    }
}
           /*****24轉(zhuǎn)12小時(shí)制*********/  
void to12()    keil編程這里有錯(cuò)誤
{if(hour>=12)
    {hour=hour-12;}
  if(hour1>=12)
    {hour1=hour1-12;}}
/*****主函數(shù)*********/
main()
{TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;ET0=1;TR0=1;
while(1)
{      
keyscan();display();
if(flag==1) {keyscan(); display();}
if(flag==2) {keyscan(); display1();}
if(flag==3)  {display();}
if(kzh==0){to12();}
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2019-12-4 17:55 | 只看該作者
問(wèn)題不在void to12() ,是void keyscan()里面最后少了一個(gè)"}"。
回復(fù)

使用道具 舉報(bào)

板凳
ID:235200 發(fā)表于 2019-12-4 18:09 | 只看該作者
錯(cuò)在哪里?仿真調(diào)試,可跟蹤出錯(cuò)誤點(diǎn)
回復(fù)

使用道具 舉報(bào)

地板
ID:643444 發(fā)表于 2019-12-4 19:36 來(lái)自觸屏版 | 只看該作者
如圖Keil編程錯(cuò)誤提示

2019-12-04_19.35.10.jpg (1.97 MB, 下載次數(shù): 32)

2019-12-04_19.35.10.jpg
回復(fù)

使用道具 舉報(bào)

5#
ID:155507 發(fā)表于 2019-12-4 23:15 | 只看該作者
給你改了,對(duì)比一下就知道哪里錯(cuò)了。

  1. /*
  2. 在線等請(qǐng)問(wèn)各位大佬這個(gè)單片機(jī)程序出錯(cuò)了,怎么修改?謝謝
  3. 問(wèn)題不在void to12() ,是void keyscan()里面最后少了一個(gè)"}"。

  4. */

  5. #include <reg52.h>
  6. #include <intrins.h>
  7. #include <absacc.h>
  8. sbit kgnxz=P3^0;  //功能選擇鍵,按一次設(shè)定時(shí)間,按兩次設(shè)定鬧鐘時(shí)間,按三次又顯示時(shí)間表  
  9. sbit ksec=P3^1;   //調(diào)整秒
  10. sbit kmin=P3^2;   //調(diào)整分
  11. sbit khour=P3^3;  //調(diào)整時(shí)
  12. sbit kzh=P3^4;    //24與12小時(shí)制轉(zhuǎn)換
  13. unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0,flag=0; //flag是按鍵的計(jì)數(shù)
  14. unsigned char secshi1=0,secge1=0,minshi1=0,minge1=0,hourshi1=0,hourge1=0;//定義存儲(chǔ)時(shí)間和鬧鐘時(shí)分秒的個(gè)位和十位
  15. unsigned int num=0,sec=0,min=0,hour=0,sec1=30,min1=0,hour1=1, num1=0;//定義時(shí)間和鬧鐘的時(shí)分秒
  16. unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管段控口
  17. void keyscan();//鍵盤(pán)掃描函數(shù)
  18. void display();//時(shí)鐘顯示函數(shù)
  19. /***延時(shí)函數(shù)****/
  20. void delay(unsigned char z)
  21. {
  22.         unsigned char x,y;
  23.         for(x=z;x>0;x--)
  24.            for(y=255;y>0;y--);
  25. }
  26. /***中斷函數(shù)****/
  27. void time0() interrupt 1
  28. {
  29.         num++;
  30.         TH0=(65536-50000)/256;
  31.         TL0=(65536-50000)%256;
  32.         if(num==20)
  33.         {
  34.                 num=0;
  35.                 sec++;
  36.                 if(sec==60)
  37.                 {
  38.                         sec=0;
  39.                         min++;
  40.                         if(min==60)
  41.                         {
  42.                                 min=0;
  43.                                 hour++;
  44.                                 if(hour==24)
  45.                                 {
  46.                                         hour=0;
  47.                                 }
  48.                         }
  49.                 }
  50.                 display(); }
  51. }
  52. /******時(shí)鐘顯示函數(shù)******/
  53. void display()
  54. {
  55.         secge=sec%10;
  56.         secshi=sec/10;
  57.         minge=min%10;
  58.         minshi=min/10;
  59.         hourge=hour%10;
  60.         hourshi=hour/10;
  61.         P2=0xfe;
  62.         P0=table[secge];
  63.         delay(5);
  64.         P2=0xfd;
  65.         P0=table[secshi];
  66.         delay(5);
  67.         P2=0xfb;
  68.         P0=0x40;
  69.         delay(5);
  70.         P2=0xf7;
  71.         P0=table[minge];
  72.         delay(5);
  73.         P2=0xef;
  74.         P0=table[minshi];
  75.         delay(5);
  76.         P2=0xdf;
  77.         P0=0x40;
  78.         delay(5);
  79.         P2=0xbf;
  80.         P0=table[hourge];
  81.         delay(5);
  82.         P2=0x7f;
  83.         P0=table[hourshi];
  84.         delay(5);
  85. }
  86. /*****鍵盤(pán)掃描*********/
  87. void keyscan()
  88. {
  89.         if(kgnxz==0)     //功能選擇鍵是否按下
  90.         {
  91.                 delay(10);//延時(shí)消抖            
  92.                 if(kgnxz==0)//再次判斷鍵是否按下              
  93.                 { flag++; }        //計(jì)數(shù),功能選擇鍵按鍵次數(shù)加一         
  94.                 while(!kgnxz); //釋放鍵
  95.         }               
  96.         if(flag==1)//功能選擇鍵
  97.         {
  98.                 if(ksec==0)//秒調(diào)整鍵
  99.                 {
  100.                         delay(10);//延時(shí)消抖        
  101.                         if(ksec==0)//再次判斷鍵是否按下
  102.                         {
  103.                                 sec++;//秒加加
  104.                                 if(sec>=60)//如果秒大于60
  105.                                    sec=0;//秒清零
  106.                         }
  107.                         while(ksec==0)//釋放鍵
  108.                         display();}
  109.                 if(kmin==0)
  110.                 {
  111.                         delay(10);
  112.                         if(kmin==0)
  113.                         {
  114.                                 min++;
  115.                                 if(min>=60)
  116.                                 min=0;
  117.                         }
  118.                         while(kmin==0)
  119.                         display();
  120.                 }
  121.                 if(khour==0)
  122.                 {
  123.                         delay(10);
  124.                         if(khour==0)
  125.                         {
  126.                                 hour++;
  127.                                 if(hour==24)
  128.                                 hour=0;
  129.                         }
  130.                         while(khour==0)
  131.                         display();
  132.                 }
  133.         }
  134. } //<-------------- 錯(cuò)了 少了一個(gè)
  135. /*****24轉(zhuǎn)12小時(shí)制*********/  
  136. void to12()   // keil編程這里有錯(cuò)誤
  137. {
  138.         if(hour>=12)
  139.         {hour=hour-12;}
  140.         if(hour1>=12)
  141.         {hour1=hour1-12;}
  142. }
  143. /*****主函數(shù)*********/
  144. main()
  145. {
  146.         TMOD=0x01;
  147.         TH0=(65536-50000)/256;
  148.         TL0=(65536-50000)%256;
  149.         EA=1; ET0=1; TR0=1;
  150.         while(1)
  151.         {      
  152.                 keyscan();display();
  153.                 if(flag==1) {keyscan(); display();}
  154.                 if(flag==2) {keyscan(); display1();}
  155.                 if(flag==3)  {display();}
  156.                 if(kzh==0)  {to12();}
  157.         }
  158. }



復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄色成人在线网站 | 欧美一级片a | 成人羞羞国产免费视频 | 国产人成精品一区二区三 | 久久天天躁狠狠躁夜夜躁2014 | 最新一级毛片 | 麻豆一区一区三区四区 | 不卡一区| 视频在线观看一区二区 | 国产精品一卡二卡三卡 | 亚洲一区二区国产 | 欧美一级免费看 | 亚洲精品99 | 国产精品视频一区二区三区, | 亚洲精品亚洲人成人网 | 国产成人精品一区二区三区 | 日韩在线一区二区三区 | h肉视频 | 国产日韩欧美一区二区 | 一级免费毛片 | 中文字幕成人网 | 国产精品色| 亚洲精品色 | 久久久91 | 九九九视频在线 | 鸳鸯谱在线观看高清 | 91精品国产综合久久久久久漫画 | 久久久www成人免费精品 | av免费电影在线 | 超碰免费观看 | 久久久久综合 | 久久久久久久久久久久久久久久久久久久 | 18gay男同69亚洲网站 | 精品美女视频在免费观看 | 中文字幕亚洲一区 | 久久成人国产 | 成人免费视频网站在线观看 | 亚洲日韩中文字幕一区 | 91文字幕巨乱亚洲香蕉 | 欧美国产日韩在线 | 欧美自拍另类 |