欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4149|回復: 17
收起左側

有人能幫我看一看程序有哪里不對嗎

  [復制鏈接]
回帖獎勵 20 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次
ID:853422 發表于 2020-12-4 10:37 | 顯示全部樓層 |閱讀模式
  • #include<reg52.h>
  • #include<intrins.h>
  • #define uint unsigned int
  • #define uchar unsigned char
  • sbit SW1=P2^0;//用于調高燈的亮度
  • sbit SW2=P2^1;//用于調低燈的亮度
  • sbit CF=P2^2;//用于觸發可控硅
  • sbit SW3=P2^3;//用于控制燈的亮滅
  • void kdelay();
  • void maichong();
  • delay500us(uint z);
  • void delay10us();
  • void liangmie();
  • uint x,y,z,k,i,j;
  • void main()
  • {
  • IT0=1;//設定外部中斷 0 為下降沿觸發方式
  • EX0=1;//開外部中斷 0
  • P2=0xff;
  • z=10;
  • j=0;
  • while(1)
  • {
  • if(SW1==0)
  • {
  • kdelay(); //軟件 2ms 延時防抖
  • if(SW1==0)
  • {
  • z--;
  • if(z==0){z=19;}//燈達到最亮以后繼續按下 SW2,燈會變到最暗
  • }
  • while(!SW1);//等待按鍵彈起
  • }
  • if(SW2==0)
  • {
  • kdelay();
  • if(SW2==0)
  • {
  • z++;
  • if(z==20){z=0;}//燈達到最暗以后繼續按下 SW1,燈會變到最亮
  • }
  • while(!SW2);
  • }
  • liangmie();
  • if(j==0)
  • {
  • EA=1; //開總中斷
  • }
  • else
  • {
  • EA=0; //關總中斷
  • }
  • }
  • }
  • /************2ms 按鍵防抖動延時函數**********/
  • void kdelay()
  • {
  • for(i=0;i<200;i++)
  • {
  • delay10us(); //調用 200 次 10us 約為 2ms
  • }
  • }
  • /*將半周期 0.01 秒平均分成 20 等分,每等分為 0.5 毫秒,即 500us*/
  • /************0.5ms 倍數的子函數************/
  • delay500us(uint z)
  • {
  • uchar x,y;
  • for(x=0;x<z;x++)
  • {
  • for(y=0;y<50;y++)
  • {
  • delay10us();//調用 50 次 10us 約為 502us
  • }
  • }
  • }
  • /*************脈沖函數*****************/
  • void maichong()
  • {
  • CF=0;
  • for(k=0;k<10;k++)
  • {
  • delay10us();//調用 10 次 10us 約為 102us
  • }
  • CF=1;
  • }
  • /*************10us 延時函數**************/
  • void delay10us()
  • {
  • _nop_(); _nop_();_nop_();
  • _nop_(); _nop_();_nop_();
  • }
  • /************燈的亮滅控制函數***********/
  • void liangmie()
  • {
  • if(SW3==0)
  • {
  • kdelay();
  • if(SW3==0)
  • {
  • j++;
  • if(j==2){j=0;}
  • }
  • while(!SW1);//等待按鍵彈起
  • }
  • }
  • /**********外部中斷 0 函數**********/
  • void Int0(void) interrupt 0
  • {
  • delay500us(z);//控制角的大小由 z 決定
  • maichong();//發脈沖
  • }

回復

使用道具 舉報

ID:853422 發表于 2020-12-4 10:38 | 顯示全部樓層
用的51的開發板 沒有反應啊
回復

使用道具 舉報

ID:277550 發表于 2020-12-4 12:22 | 顯示全部樓層

大哥  至少說說程序是干嘛的、什么環境(軟硬件環境)的,遇到怎樣的問題
回復

使用道具 舉報

ID:756334 發表于 2020-12-4 13:28 | 顯示全部樓層
有仿真圖嗎?
回復

使用道具 舉報

ID:853422 發表于 2020-12-4 13:46 | 顯示全部樓層
是一個調燈亮度的臺燈,用的MOC3020  和BTA 16的,51單片機的
回復

使用道具 舉報

ID:466505 發表于 2020-12-4 13:59 | 顯示全部樓層
程序干嘛的不知道,電路不知道,全靠猜,誰能看懂
回復

使用道具 舉報

ID:711539 發表于 2020-12-4 14:22 | 顯示全部樓層
外部中斷0的P3.2腳,硬件連接是怎么樣的?
回復

使用道具 舉報

ID:574482 發表于 2020-12-4 15:00 | 顯示全部樓層
106行的SW1應改為SW3.
看你的程序也是相當的頭痛!
回復

使用道具 舉報

ID:853422 發表于 2020-12-4 15:13 | 顯示全部樓層
這是圖片 謝謝大哥們了
172417a224l44gj22kyjii.png
回復

使用道具 舉報

10#
無效樓層,該帖已經被刪除
ID:466505 發表于 2020-12-5 09:48 | 顯示全部樓層
31腳要接高電平吧
回復

使用道具 舉報

ID:852300 發表于 2020-12-5 11:31 | 顯示全部樓層
除了106行的SW3,光耦的工作電流不夠,不能觸發中斷也是有可能的!
回復

使用道具 舉報

ID:790408 發表于 2020-12-5 12:29 | 顯示全部樓層
先檢查一下接線是否正確,還有程序不要寫在main函數中,自己可以試著自己寫個封裝庫
回復

使用道具 舉報

ID:342954 發表于 2020-12-5 15:01 | 顯示全部樓層
你要實現什么東西說出來呀,才能說那里有沒有反應吧,如果是STC的單片機先把要PM20 寄存器初始化一下

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:687694 發表于 2020-12-5 16:23 | 顯示全部樓層
硬件檢測TB是否有輸出。檢測CF是否有輸出。
軟件,程序流程相當混亂,自己畫個程序流程框圖不費事,這是好習慣。觸發式調光對時間控制嚴格要求,你在中斷中調用函數就不對,按鍵檢測采用delay也不對,改狀態機讀取按鍵。
小技巧,定義一個led,任意腳,讓它作為程序調試指示器,例如判斷是否中斷,在中斷函數中加一條IO反轉。或者賦值。判斷中斷是否執行完畢,就在最后面加一句反轉就能知道程序工作的位置,是否完成等。
調試完畢解除掉它就行了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:855007 發表于 2020-12-5 17:13 | 顯示全部樓層
PM20 寄存器初始化一下,31腳要接高電平
回復

使用道具 舉報

ID:783844 發表于 2020-12-5 20:52 | 顯示全部樓層
我覺得31腳=0才是對的
回復

使用道具 舉報

ID:855592 發表于 2020-12-6 20:37 | 顯示全部樓層
106行的SW1應改為SW3
回復

使用道具 舉報

ID:761759 發表于 2020-12-6 21:25 | 顯示全部樓層
sbit SW1=P2^0;//用于調高燈的亮度 sbit SW2=P2^1;//用于調低燈的亮度 sbit CF=P2^2;//用于觸發可控硅 sbit SW3=P2^3;//用于控制燈的亮滅

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表