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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1963|回復: 2
打印 上一主題 下一主題
收起左側

AT89C51在已有的程序里面加一個步進電機

[復制鏈接]
回帖獎勵 4 黑幣 回復本帖可獲得 4 黑幣獎勵! 每人限 3 次
跳轉到指定樓層
樓主
ID:122901 發表于 2016-5-24 16:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
AT89C51在已有的程序里面加一個步進電機,設置兩個鍵,控制步進電機的正反轉。
在這個程序里面,加一個步進電機的控制程序,然后利用兩個按鍵,控制它的正反轉
#include <reg52.h>          //調用單片機頭文件
#define uchar unsigned char  //無符號字符型 宏定義 變量范圍0~255
#define uint  unsigned int  //無符號整型 宏定義 變量范圍0~65535
//數碼管段選定義       0    1    2    3    4 5 6  7   8    9
uchar code smg_du[]={0x21,0xf6,0x23,0x26,0x6c,0x4a,0xa0,0xf2,0x20,0x24,
//        A B  C   D    E   F 不顯示
     
      0x28,0xe0,0xb1,0x62,0xb0,0x48 };  //斷碼
uchar dis_smg[1] = 0;
sbit beep =  P2^7;   //蜂鳴器
sbit hw = P3^2;      //紅外
uchar set_time;      //設置的時間
uchar flag_alarm;    //報警標志位
uchar miao ;
uchar flag_v;
/***********************1ms延時函數*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
  for(j=0;j<120;j++);
}
/********************獨立按鍵程序*****************/
void key()  //獨立按鍵程序
{
static uchar key_new;
P1 |= 0x03;
if((P1 & 0x03) != 0x03)  //按鍵按下
{
  delay_1ms(1);       //按鍵消抖動
  if(((P1 & 0x03) != 0x03) && (key_new == 1))
  {      //確認是按鍵按下
   key_new = 0;
   switch(P1 & 0x03)
   {
    case 0x01:
      set_time ++; //設置的時間加1
     if(set_time > 9)
      set_time = 1;
     break;   //得到按鍵值
    case 0x02:  
     if(set_time == 0)
      set_time = 10;
      set_time --; //設置的時間減1
    break;   //得到按鍵值
   }
  }   
}
else   //按鍵松開
  key_new = 1;
}

/*********************定時器0、定時器1初始化******************/
void time_init()   
{
EA  = 1;     //開總中斷
TMOD = 0X01;   //定時器0、
ET0 = 1;    //開定時器0中斷
TR0 = 1;    //允許定時器0定時
}

/******************主程序**********************/   
void main()
{
time_init();   //定時器初始化程序
while(1)
{
  key();  //獨立按鍵程序
  P0 = smg_du[set_time]; //顯示時間
  if(hw == 0)             //有檢測液滴
  {
   delay_1ms(1);   //消除干擾
   if(hw == 0)     //有檢測液滴
   {
    miao   = 0;
    flag_v = 0;  
    beep = 1;   //關閉報警
   }
  }
  if(flag_alarm == 1)   //報警
  {
   if(miao - set_time <= 10)  //報警10秒
   {
    beep = ~beep;   //報警
    delay_1ms(300);   
   }
   else
   {
    beep = 1;   //關閉報警
   }
  }
}
}
/*********************定時器0中斷服務程序************************/
void time0_int() interrupt 1
{
TH0 = 0x3c;
TL0 = 0xb0;     //50ms
flag_v++;
if(flag_v >= 20) //1秒
{
  flag_v = 0;
  miao ++;
  if(miao >= set_time)
  {
   flag_alarm = 1;  //報警   
  }
  if(miao >= 100)
   miao = 100;
}
}

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

使用道具 舉報

沙發
ID:122901 發表于 2016-5-24 16:32 | 只看該作者
很急 ,謝謝大神幫助了
回復

使用道具 舉報

板凳
ID:628459 發表于 2019-10-22 20:24 | 只看該作者
儒雅的嘿咻 發表于 2016-5-24 16:32
**** 作者被禁止或刪除 內容自動屏蔽 ****

請問flag_v這個定義的是什么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 五月综合激情在线 | 亚洲在线一区 | 自拍偷拍第一页 | 国产激情视频在线观看 | 国产传媒在线播放 | 欧美日韩精品国产 | 91国内精品| 日韩毛片中文字幕 | 欧美日韩1区2区3区 欧美久久一区 | 国产精品婷婷 | 91久久久www播放日本观看 | 99re在线视频免费观看 | 国产高清一区二区 | 偷拍自拍网址 | 日韩成人一区 | 亚洲黄色av| 久久婷婷色 | 一级做a爰片性色毛片16 | 欧美精品在线免费观看 | 成人在线中文字幕 | 人人干在线 | 色综合一区二区 | 激情五月综合网 | 麻豆一区 | 在线高清免费观看视频 | 国产丝袜一区二区三区免费视频 | 91在线观看视频 | 欧美一区二区二区 | 99re热精品视频 | 亚洲精品1 | 欧美激情在线精品一区二区三区 | 能看的av网站 | 成人免费一区二区三区牛牛 | 日韩三级在线 | 久久久久国产精品一区 | 一区二区免费在线观看 | 国产精品成人在线 | 亚洲综合精品 | 97日日碰人人模人人澡分享吧 | 亚洲导航深夜福利涩涩屋 | 亚洲日韩中文字幕一区 |