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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求幫助 51單片機(jī)的金屬探測Proteus仿真程序有問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:587714 發(fā)表于 2019-7-28 15:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求大神幫助
設(shè)計一個智能金屬探測儀系統(tǒng),測量到金屬時,蜂鳴器響指示燈閃
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include "LCD1602.h"
  3. #include "STCEEPROM.h"
  4. #define uchar unsigned char
  5. #define uint  unsigned int

  6. bit flag;             //定義標(biāo)志位,確定是否到了1s
  7. unsigned long x,x1;  
  8. uchar T0count;        //從T0的計數(shù)單元中讀取計數(shù)的數(shù)值
  9. uchar timecount;  

  10. sbit LED   = P2^0;//LED引腳定義
  11. sbit Speak = P1^5;//蜂鳴器引腳定義

  12. sbit KEY1 = P1^3;//按鍵1
  13. sbit KEY2 = P1^4;//按鍵2

  14. void Timer(void);

  15. //延時函數(shù)
  16. void Delay_ms(uint jj)
  17. {
  18.         uint ii;
  19.         while(jj--)
  20.                 for(ii=0;ii<125;ii++);
  21. }
  22. void main()           //函數(shù)功能:主函數(shù)
  23. {         
  24.         unsigned char  Data[5],Data2[5];
  25.         unsigned char  a_a;
  26.   
  27.         Timer(); //定時器初始化
  28.     LCD1602_init();//液晶初始化
  29. //////////////////////////0123456789ABCDEF
  30.     LCD1602_Disp_ZF(0x80,"NowFreq:     KHz",16);
  31.     LCD1602_Disp_ZF(0x80+0X40,"SetFreq:     KHz",16);
  32.     LED = 1; //關(guān)閉LED和蜂鳴器
  33.     Speak = 1;
  34.         EA=0;        
  35.         a_a=ISP_READ(0x2cc0);
  36.         if(a_a != 2)                //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom
  37.         {
  38.                 x1=100*100+150000;
  39.                 a_a = 2;
  40.                         ISP_ERASE(0x2cc0);                //注意:字節(jié)編程時必須要先要擦除整個扇區(qū)        
  41.                         ISP_PROGRAM(0x2cc0, a_a);
  42.                         ISP_ERASE(0x2c00);                //注意:字節(jié)編程時必須要先要擦除整個扇區(qū)        
  43.                         ISP_PROGRAM(0x2c00, (x1-150000)/100);
  44.         }        
  45.         x1=ISP_READ(0x2c00)*100+150000;//預(yù)設(shè)閾值為(100*100+130000)160000KHz
  46.         //x1=70000;
  47.         EA=1;
  48.         while(1)
  49.         {
  50.         
  51.                 if(flag==1)                  
  52.                 {
  53.                         flag=0;                        //清標(biāo)志位
  54.                         if(KEY1&&KEY2)
  55.                                 x=T0count*65536+TL0*256+TH0;   //取得時間寬度參數(shù)      
  56.                         timecount=0;
  57.                         T0count=0;
  58.                         TH0=1;
  59.                         TL0=0;
  60.                         TR0=1;         //TR0=1,控制開關(guān)閉合,計數(shù)脈沖進(jìn)入T1計數(shù)器,啟動計數(shù)
  61.                         
  62.                 }

  63.                 Data[0]='0'+x/100000;
  64.                 Data[1]='0'+(x/10000)%10;
  65.                 Data[2]='0'+(x/1000)%10;     
  66.         Data[3]='.';
  67.                 Data[4]='0'+(x/100)%10;     
  68.                 LCD1602_Disp_ZF(0x88,Data,5);            //頻率

  69.                 if(!KEY1)
  70.                 {
  71.                         Delay_ms(100);
  72.                         if(!KEY1)
  73.                         {
  74.                         x1=x1+1000;//閾值加1000
  75.                         EA=0;
  76.                         ISP_ERASE(0x2c00);                //注意:字節(jié)編程時必須要先要擦除整個扇區(qū)        
  77.                         ISP_PROGRAM(0x2c00, (x1-150000)/100);
  78.                         EA=1;
  79.                         }

  80.                 }
  81.                 if(!KEY2)
  82.                 {
  83.                         Delay_ms(100);
  84.                         if(!KEY2)
  85.                         {
  86.                         x1=x1-1000;//閾值減1000
  87.                         EA=0;
  88.                         ISP_ERASE(0x2c00);                //注意:字節(jié)編程時必須要先要擦除整個扇區(qū)        
  89.                         ISP_PROGRAM(0x2c00, (x1-150000)/100);
  90.                         EA=1;
  91.                         }
  92.                 }
  93.                 Data2[0]='0'+x1/100000;
  94.                 Data2[1]='0'+(x1/10000)%10;
  95.                 Data2[2]='0'+(x1/1000)%10;     
  96.         Data2[3]='.';
  97.                 Data2[4]='0'+(x1/100)%10;     
  98.                 LCD1602_Disp_ZF(0x88+0x40,Data2,5);            //閾值頻率
  99.         
  100.         if(x>x1)//判斷,發(fā)現(xiàn)金屬
  101.                 {
  102.                         LED = 0; //打開LED和蜂鳴器
  103.                         Speak = 0;
  104.             Delay_ms(200);
  105.                         LED = 1; //關(guān)閉LED和蜂鳴器
  106.                         Speak = 1;
  107.                 }
  108.    
  109.         }
  110.             
  111.   }


  112. void t0() interrupt 1 using 0      //T0中斷服務(wù)
  113. {  
  114. T0count++;                      //對P3。4口的脈沖進(jìn)行計數(shù)
  115. }

  116. void t1(void) interrupt 3 using 0       //T1中斷服務(wù)
  117. {   
  118. TH1=(65536-3689)/256;               //計數(shù)初值重裝載
  119.     TL1=(65536-3689)%256;
  120.     timecount++;

  121.     if(timecount==2490)
  122.     {  TR0=0;
  123.         timecount=0;
  124.         flag=1;                       // 置標(biāo)志
  125.     }  
  126. }

  127. void Timer(void)
  128. {
  129.     TMOD=0x15;       //T0工作為16位計數(shù)器(方式1),T1工作方式為16位定時器
  130.     TH0=0;                     //計數(shù)為65536                     
  131.     TL0=0;                     //
  132.     TH1=(65536-4000)/256;     //定時器采用定時4ms. 初值為4000
  133.     TL1=(65536-4000)%256;
  134.     TR1=1;   //TR1=1,控制開關(guān)閉合,計數(shù)脈沖進(jìn)入T1計數(shù)器,啟動定時
  135.     TR0=1;   //TR0=1,控制開關(guān)閉合,計數(shù)脈沖進(jìn)入T1計數(shù)器,啟動計數(shù)
  136.     ET0=1;                    //定時器0開中斷 必須關(guān)閉。。!
  137.     ET1=1;                    //定時器1開中斷
  138.     EA=1;                     //CPU開中斷

  139. }
復(fù)制代碼

現(xiàn)在無法仿真,求幫助
金屬探測器.zip (105.2 KB, 下載次數(shù): 89)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:598766 發(fā)表于 2019-8-10 11:37 | 只看該作者
能 不能解釋下原理呢。小白求解。
回復(fù)

使用道具 舉報

板凳
ID:687791 發(fā)表于 2020-1-27 14:45 | 只看該作者
不行,缺少元件庫
回復(fù)

使用道具 舉報

地板
ID:321150 發(fā)表于 2020-2-25 09:28 | 只看該作者
垃圾,不能顯示,沒用
回復(fù)

使用道具 舉報

5#
ID:543059 發(fā)表于 2021-3-6 18:38 | 只看該作者
我會一直卡死在中斷里
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文在线视频 | 欧美精品在欧美一区二区 | 久久国产高清视频 | 狠狠亚洲| 久草欧美视频 | 久草网站 | 日日爱视频 | 国产精品高潮呻吟久久av野狼 | 毛片99 | 国产日韩欧美一区二区在线播放 | 91精品久久久久久久久 | 在线日韩| 久久中文视频 | 操到爽| 久久免费大片 | 亚洲精品免费在线观看 | 日韩中文av在线 | 一区二区三区在线观看免费视频 | 国产视频中文字幕 | 国产精品亚洲综合 | 99re热这里只有精品视频 | 一区二区三区免费 | 欧美一级黑人aaaaaaa做受 | 国产精品明星裸体写真集 | 日韩精品在线网站 | 精品国产青草久久久久福利 | 国产剧情一区 | 欧美一级淫片免费视频黄 | www4虎 | 成人国产精品久久久 | 亚洲精品一区二区三区蜜桃久 | 国产亚洲高清视频 | 久久av网 | 四虎免费视频 | 国产免费一区二区三区 | 欧美小视频在线观看 | av中文字幕在线观看 | 日韩视频中文字幕 | 欧美精品一二区 | 日本免费小视频 | 最新中文在线视频 |