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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4195|回復: 7
打印 上一主題 下一主題
收起左側(cè)

求大家指導將點焊機單片機程序改為99個擋

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:126608 發(fā)表于 2018-10-11 09:47 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
原程序是本壇下的點焊機程序,只有1個數(shù)碼管10個擋,自己用2個數(shù)碼管
改為20個擋,想改為99個擋,不會了,求大家指導將程序改為99個擋,
2個數(shù)碼管靜態(tài)的動態(tài)的都可以,共陰共陽都行。/
#include "reg51.h"               //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u20;        //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u10;      //對數(shù)據(jù)類型進行聲明定義
sbit P31=P3^0;//數(shù)碼管第1位
sbit P30=P3^1;//數(shù)碼管第2位
sbit k1=P3^2;        //將單片機的P3.2端口定義為檔位上
sbit k2=P3^3;        //將單片機的P3.3端口定義為檔位下
sbit k3=P3^4;        //將單片機的P3.4端口定義為手控
sbit k4=P3^5;        //將單片機的P3.5端口定義為腳踏
sbit out=P3^7;         //繼電器輸出
//數(shù)碼管真值表//
u10 code LED_CODE[20]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
                            0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};//顯示0~20的值
//延時函數(shù) //
void delay(u20 x)
        {
        u20 i,j;
            for(i = x; i > 0; i --)
                for(j = 110; j > 0; j --);        
        }
//主函數(shù)//
void main()
    {
      
        u10 i = 1;
              out=1;
        while(1)
        {
        P2 = LED_CODE[ i];
P31=0;
                                   if(i>=10)
       P30=0;
       P1 =0x06;            
       if(i<10)
       P30=1;
              if(i<0)
       i=19;                                          
            
                                   if(k1==0)
            {
        delay(5);
                if(k1==0)
                    {
                        while(!k1)      //檔位功能0-9
                        delay(5);
                        P2 = LED_CODE;
                        i = (i + 1) % 20;
                        delay(10);
                    }
                                                                     
            }
                      if(k2==0)
            {
              delay(5);
                if(k2==0)
                    {
                        while(!k2)      //檔位功能0-9
                        delay(5);
                        P2 = LED_CODE;
                        i = (i - 1) % 20;
                        delay(10);
                    }
                                   }
            if(k3==0)
            {
            delay(5);
                if(k3==0)
                    {
                        while(!k3)
                        delay(5);
                     out=0;
                        delay(i*200);//手控輸出延時
                        out=1;
                    }
          }
         if(k4==0)
            {
        delay(5);
                if(k4==0)
                    {
                        while(!k4)
                        delay(5);
                     out=0;
                        delay(i*300);//腳蹋輸出延時
                        out=1;
                    }
          }   
   }
}

//這是原程序
#include "reg51.h"               //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;        //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;        //對數(shù)據(jù)類型進行聲明定義
sbit k1=P3^2;        //將單片機的P3.2端口定義為檔位上
sbit k2=P3^3;        //將單片機的P3.3端口定義為檔位下
sbit k3=P3^4;        //將單片機的P3.4端口定義為手控
sbit k4=P3^5;        //將單片機的P3.5端口定義為腳踏
sbit out=P3^7;         //繼電器輸出
//數(shù)碼管真值表//
u8 code LED_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                   0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
//延時函數(shù) //
void delay(u16 x)
        {
        u16 i,j;
            for(i = x; i > 0; i --)
                for(j = 110; j > 0; j --);        
        }
//主函數(shù)//
void main()
    {
      
        u8 i = 1;
              out=0;
        while(1)
        {
        P1 = LED_CODE;
            if(k1==0)
            {
        delay(5);
                if(k1==0)
                    {
                        while(!k1)      //檔位功能0-9
                        delay(5);
                        P1 = LED_CODE;
                        i = (i + 1) % 10;
                        delay(10);
                    }
            }
                      if(k2==0)
            {
              delay(5);
                if(k2==0)
                    {
                        while(!k2)      //檔位功能0-9
                        delay(5);
                        P1 = LED_CODE;
                        i = (i - 1) % 10;
                        delay(10);
                    }
                                   }
            if(k3==0)
            {
            delay(5);
                if(k3==0)
                    {
                        while(!k3)
                        delay(5);
                     out=1;
                        delay(i*200);//手控輸出延時
                        out=0;
                    }
          }
         if(k4==0)
            {
        delay(5);
                if(k4==0)
                    {
                        while(!k4)
                        delay(5);
                     out=1;
                        delay(i*300);//腳蹋輸出延時
                        out=0;
                    }
          }   
   }
}

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

使用道具 舉報

8#
ID:865461 發(fā)表于 2021-1-12 16:52 | 只看該作者
wulin 發(fā)表于 2018-10-11 17:48
在你的程序基礎(chǔ)上給你改寫,使用定時器精確控制,最大范圍1~99,定時時間手動可以從20~1980毫秒,腳踏可以 ...

已經(jīng)裝在開發(fā)板上效果很好
回復

使用道具 舉報

7#
ID:865461 發(fā)表于 2021-1-12 16:50 | 只看該作者
裝在開發(fā)板上正常運行效果很好
回復

使用道具 舉報

6#
ID:462163 發(fā)表于 2019-1-5 17:25 | 只看該作者
斷電了再開機,設(shè)置的時間數(shù)據(jù)能保存嗎?
回復

使用道具 舉報

5#
ID:126608 發(fā)表于 2018-10-11 19:19 | 只看該作者
問題解決了,用您給的程序和仿真圖仿真了,大體能看懂程序,多謝了。

評分

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

查看全部評分

回復

使用道具 舉報

地板
ID:7485 發(fā)表于 2018-10-11 18:25 | 只看該作者
你要求這么多檔位,51單片機沒有這么多的腳輸出,需要擴展IO。

評分

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

查看全部評分

回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2018-10-11 17:48 | 只看該作者
在你的程序基礎(chǔ)上給你改寫,使用定時器精確控制,最大范圍1~99,定時時間手動可以從20~1980毫秒,腳踏可以從30~2970毫秒。手動/腳踏開關(guān)自鎖與互鎖。經(jīng)仿真無誤。

#include "reg51.h"       //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16;//對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;//對數(shù)據(jù)類型進行聲明定義
sbit P30=P3^0;                        //數(shù)碼管第1位
sbit P31=P3^1;                        //數(shù)碼管第2位
sbit k1=P3^2;        //將單片機的P3.2端口定義為檔位上
sbit k2=P3^3;        //將單片機的P3.3端口定義為檔位下
sbit k3=P3^4;        //將單片機的P3.4端口定義為手控
sbit k4=P3^5;        //將單片機的P3.5端口定義為腳踏
sbit out=P3^7;       //繼電器輸出
//數(shù)碼管真值表//
u8 code LED_CODE[]={//顯示0~F的段碼
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u16 Cntms1=0,Cntms2=0,num1,num2;
u8 num;                //定時變量=毫秒
//延時函數(shù) //
void delay(u16 x)
{
        u16 i,j;
        for(i=x;i>0;i--)
                for(j=110;j>0;j--);        
}
void Timer0Init() //1毫秒@12.000MHz
{
        TMOD= 0x01;                //設(shè)置定時器模式
        TL0 = 0x18;                //設(shè)置定時初值
        TH0 = 0xFC;                //設(shè)置定時初值
        TR0 = 1;                        //定時器0開始計時
        EA=1;                                //開總中斷
        ET0=1;                        //開定時器0中斷
}
/********************************
                數(shù)碼管動態(tài)顯示程序
********************************/
void display()
{
        static u8 i=0;
        P1=0x00;//消隱
        if(i==0)
        {
                P31=1;
                P30=0;
                P1=LED_CODE[num/10];
                i=1;
        }
        else
        {
                P30=1;
                P31=0;
                P1=LED_CODE[num%10];
                i=0;
        }
}
//主函數(shù)//
void main()
{       
        out=0; //初始化輸出端口
        num=20;//定時變量賦初值
        Timer0Init();//初始化定時器
        while(1)
        {
                if(k1==0)//加數(shù)
                {
                        delay(5);
                        if(k1==0)
                        {
                                if(num<99)
                                        num++;
                                while(!k1);      //檔位功能1-99
                        }
                }
                if(k2==0)//減數(shù)
                {
                        delay(5);
                        if(k2==0)
                        {
                                if(num>1)
                                        num--;
                                while(!k2);      //檔位功能1-99
                        }
                }
                if((k3==0)&&(num1==0)&&(num2==0))//手動/腳踏開關(guān)自鎖與互鎖
                {
                        delay(5);
                        if(k3==0)
                        {
                                num1=num*20;//num1=num毫秒*20倍,20~1980毫秒
                                while(!k3);
                        }
                }
                if((k4==0)&&(num2==0)&&(num1==0))//手動/腳踏開關(guān)自鎖與互鎖
                {
                        delay(5);
                        if(k4==0)
                        {
                                num2=num*30;//num2=num毫秒*30倍,30~2970毫秒
                                while(!k4);
                        }
                }   
        }
}
/******************************
                中斷服務程序
******************************/
void timer0() interrupt        1        //1毫秒@12MHz
{

        TL0 = 0x18;                //設(shè)置定時初值
        TH0 = 0xFC;                //設(shè)置定時初值
        if(num1!=0)//執(zhí)行手動
        {
                out=1;
                Cntms1++;       
                if(Cntms1>=num1)
                {       
                        Cntms1=0;
                        out=0;
                        num1=0;
                }
        }
        if(num2!=0)//執(zhí)行腳踏
        {
                out=1;
                Cntms2++;       
                if(Cntms2>=num2)
                {       
                        Cntms2=0;
                        out=0;
                        num2=0;
                }
        }
        display();//數(shù)碼管動態(tài)顯示
}





評分

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

查看全部評分

回復

使用道具 舉報

沙發(fā)
ID:258566 發(fā)表于 2018-10-11 14:57 | 只看該作者
本帖最后由 cccc888 于 2018-10-11 16:15 編輯

沒過零檢測.建議使用過零檢測 計數(shù)一次.

my.gif (196.64 KB, 下載次數(shù): 96)

my.gif

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产农村妇女精品一二区 | 色爱综合网 | 欧美aa在线 | 理论片午午伦夜理片影院 | 久久久国产精品一区 | 亚洲男女视频在线观看 | 91久久| 亚洲综合在线播放 | 成人免费视频网站在线观看 | 国产特级毛片aaaaaa | 黄网站色大毛片 | 国产精品免费一区二区三区 | 草久网| 国产欧美日韩视频 | 综合久| 爱高潮www亚洲精品 中文字幕免费视频 | 欧美一级淫片免费视频黄 | 久久99国产精品 | 美女视频一区二区三区 | 天天视频成人 | 国产精品一区二区福利视频 | 久久一级 | 99热精品在线观看 | 一本色道精品久久一区二区三区 | 国产成人网| 欧美一级二级视频 | 奇米久久 | 成人精品| 精精国产xxxx视频在线播放 | 久久这里只有精品首页 | 91九色porny首页最多播放 | 三级在线免费 | 精品视频一区二区三区在线观看 | 视频三区| 天堂在线网| 91欧美 | 亚洲精品一区二区在线观看 | 亚洲欧美一区二区三区视频 | 久久精品一区二区 | 国产日韩欧美 | 日韩精品在线网站 |