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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

繼電器延時(shí)直流電機(jī)正反轉(zhuǎn)帶4位數(shù)碼管芯片程序如何編寫?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:821047 發(fā)表于 2020-10-6 05:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
接線端口說明
1、DC:輸入電源直流12V
2、IN1:信號輸入端1(負(fù)極觸發(fā))
3、IN2:信號輸入端2(負(fù)極觸發(fā))
4、IN3:信號輸入端3(負(fù)極觸發(fā))


要如下功能:
P-1:給信號1,繼電器1吸合到A時(shí)間自動(dòng)停止,在這延時(shí)期間再給信號1或信號2沒有反應(yīng);   給信號2,繼電器2吸合到B時(shí)間自動(dòng)停止,在這期間再給信號1或信號2都沒有反應(yīng);信號3是急停復(fù)位信號,在繼電器1或2吸合期間都會(huì)停止。
P-2:  通電繼電器1吸合到A時(shí)間自動(dòng)停止,在這延時(shí)期間再給信號1或2沒有反應(yīng),當(dāng)繼電器1停止后,再給信號1繼電器1吸合到A時(shí)間自動(dòng)停止;    給信號2,繼電器2吸合到B時(shí)間自動(dòng)停止,在這期間再給信號1或信號2都沒有反應(yīng);  信號3是急停復(fù)位信號,在繼電器1或2吸合期間都會(huì)停止。
      芯片腳位連接說明:STC15W408AS的1腳是信號3通過光耦使1腳低電平時(shí)急停;2腳是信號2通過光耦使2腳低電平時(shí)使12腳低電平時(shí)通過光耦使繼電器2啟動(dòng)工作;3腳是信號1通過光耦使3腳低電平使11腳低電平時(shí)通過光耦使繼電器1啟動(dòng)工作。也就是說1腳低電平是急停;2腳低電平是繼電器2工作;3腳低電平是繼電器1工作,(平時(shí)都是高電平),11、12腳低電平啟動(dòng)繼電器1、2(平時(shí)高電平),13、14腳到數(shù)碼管TM1650IC的2、3腳。

按鍵設(shè)置說明
通電顯示
表示進(jìn)入待機(jī)狀態(tài)
按第一次K1屏幕顯示:Pー1:  K2和K3調(diào)節(jié)模式,按第二次K1,屏幕顯示:A001:K2和K3調(diào)節(jié)第一個(gè)時(shí)間A,K4調(diào)節(jié)小數(shù)點(diǎn)(時(shí)間單位)按第三次K1,屏幕顯示:B001:K2和K3調(diào)節(jié)第二個(gè)時(shí)間B,按第四次K1,顯示“-----”表示進(jìn)入待機(jī)狀態(tài)。

比如;需要設(shè)定模式為:P-2;時(shí)間為:A010,B005。
表示第二個(gè)工作方式;給信號1后;繼電器1啟動(dòng)10秒之后關(guān)閉; 繼電器2再給信號2之后延時(shí)5秒之后自動(dòng)關(guān)閉。
計(jì)時(shí)范圍:0.1秒~99秒。

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

使用道具 舉報(bào)

沙發(fā)
ID:821047 發(fā)表于 2020-10-6 09:39 | 只看該作者

RE: 求繼電器延時(shí)直流電機(jī)正反轉(zhuǎn)帶4位數(shù)碼管芯片程序

STC8F1K08S2或STC8F2K08S2芯片也可以
回復(fù)

使用道具 舉報(bào)

板凳
ID:821047 發(fā)表于 2020-10-6 20:10 | 只看該作者
求助繼電器延時(shí)直流電機(jī)正反轉(zhuǎn)帶4位數(shù)碼管芯片程序
回復(fù)

使用道具 舉報(bào)

地板
ID:821047 發(fā)表于 2020-10-8 23:10 | 只看該作者
請教大師傅,200黑幣
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2020-10-9 11:43 | 只看該作者
給你一個(gè)演示程序,按實(shí)際電路配置端口即可滿足你的需求。
  1. //按樓主意圖優(yōu)化編寫
  2. //雙路0.1~99.9秒倒計(jì)時(shí)演示程序
  3. //此程序適合51單片機(jī)和STC1T單片機(jī)
  4. //也適合共陽/共陰數(shù)碼管
  5. #include<reg51.h>
  6. #include<intrins.h>
  7. #define key_S 10                                        //宏定義短按(約10ms)
  8. #define key_L key_S*50                        //宏定義長按(約500ms)
  9. #define key_I key_S*38                        //宏定義長按連+/-間隔(約120ms)
  10. #define uchar unsigned char
  11. #define uint unsigned int
  12. //端口根據(jù)實(shí)際電路重新定義
  13. sbit K1 =P1^0;
  14. sbit K2 =P1^1;
  15. sbit K3 =P1^2;
  16. sbit IN1=P1^3;
  17. sbit IN2=P1^4;
  18. sbit IN3=P1^5;
  19. sbit OUT1=P1^6;
  20. sbit OUT2=P1^7;
  21. /*
  22. uchar code table[]={//共陽數(shù)碼管段碼"0~f-."
  23.                 0xc0,0xf9,0xa4,0xb0,
  24.                 0x99,0x92,0x82,0xf8,
  25.                 0x80,0x90,0x88,0x83,
  26.                 0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
  27. */
  28. uchar code table[]={//共陰數(shù)碼管段碼"0~f-."
  29.                 0x3f,0x06,0x5b,0x4f,
  30.                 0x66,0x6d,0x7d,0x07,
  31.                 0x7f,0x6f,0x77,0x7c,
  32.                 0x39,0x5e,0x79,0x71,0x40,0x80};

  33. uchar data dis_buf[4];//顯示數(shù)據(jù)緩存
  34. bit  state1,state2;//倒計(jì)時(shí)狀態(tài)
  35. int  time1=115,time2=225;
  36. uchar KeySec;
  37. int num=0,num1=0;
  38. bit flashing=0;

  39. //12T51單片機(jī)
  40. void Delay1ms()                //@11.0592MHz
  41. {
  42.         unsigned char i, j;
  43.         _nop_();
  44.         i = 2;
  45.         j = 199;
  46.         do
  47.         {
  48.                 while (--j);
  49.         } while (--i);
  50. }
  51. void Timer0Init()        //10毫秒@11.0592MHz
  52. {
  53.         TMOD |= 0x01;        //設(shè)置定時(shí)器模式
  54.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  55.         TH0 = 0xDC;                //設(shè)置定時(shí)初值
  56. //        TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  57.         ET0 = 1;
  58.    EA  = 1;
  59. }
  60. //STC1T單片機(jī)
  61. /*void Delay1ms()                //@11.0592MHz
  62. {
  63.         unsigned char i, j;
  64.         i = 15;
  65.         j = 90;
  66.         do
  67.         {
  68.                 while (--j);
  69.         } while (--i);
  70. }
  71. void Timer0Init()        //10毫秒@11.0592MHz
  72. {
  73.         AUXR &= 0x7F;        //定時(shí)器時(shí)鐘12T模式
  74.         TMOD &= 0xF0;        //設(shè)置定時(shí)器模式
  75.         TMOD |= 0x01;        //設(shè)置定時(shí)器模式
  76.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  77.         TH0 = 0xDC;                //設(shè)置定時(shí)初值
  78.         TF0 = 0;                        //清除TF0標(biāo)志
  79. //        TR0 = 1;                        //定時(shí)器0開始計(jì)時(shí)
  80.         ET0 = 1;
  81.    EA  = 1;
  82. }
  83. */

  84. //按鍵掃描
  85. void keyscan()
  86. {
  87.         static unsigned int count=0;
  88.         if(!K1||!K2||!K3)
  89.         {
  90.                 count++;
  91.                 if(count>key_L)//長按有效
  92.                         count=key_I;//連+/-間隔
  93.                 if(count==key_S)//短按消抖
  94.                 {
  95.                         if(!K1)//預(yù)設(shè)
  96.                         {
  97.                                 KeySec++;
  98.                                 if(KeySec>=3)
  99.                                 {
  100.                                         KeySec=0;
  101.                                 }
  102.                         }
  103.                 }
  104.                 if(count==key_S||count==key_L)//短按+/-,長按連+/-
  105.                 {
  106.                         if(!K2 && KeySec>0)
  107.                         {
  108.                                 switch(KeySec)
  109.                                 {
  110.                                         case 1: if(time1<999)time1++; break;
  111.                                         case 2: if(time2<999)time2++; break;
  112.                                 }
  113.                         }
  114.                         if(!K3 && KeySec>0)
  115.                         {
  116.                                 switch(KeySec)
  117.                                 {
  118.                                         case 1: if(time1>1)time1--; break;
  119.                                         case 2: if(time2>1)time2--; break;
  120.                                 }
  121.                         }
  122.                 }
  123.         }
  124.         else count=0;
  125. }
  126. void INscan()
  127. {
  128.         if(KeySec==0 && TR0==0)
  129.         {
  130.                 if(!IN1)
  131.                 {
  132.                         TR0=1;
  133.                         OUT1=0;
  134.                         OUT2=1;
  135.                         state1=1;
  136.                         state2=0;
  137.                         num1=0;
  138.                         num=time1;
  139.                 }
  140.                 if(!IN2)
  141.                 {
  142.                         TR0=1;
  143.                         OUT1=1;
  144.                         OUT2=0;
  145.                         state1=0;
  146.                         state2=1;
  147.                         num1=0;
  148.                         num=time2;
  149.                 }
  150.         }
  151.         if(!IN3)
  152.         {
  153.                 OUT1=1;
  154.                 OUT2=1;
  155.                 state1=0;
  156.                 state2=0;
  157.                 num1=0;
  158.                 num=0;
  159.         }
  160. }
  161. void display()//顯示
  162. {
  163.         static uchar i=0;
  164.         uchar j=0;
  165.         if(KeySec==0)
  166.         {
  167.                 if(state1==0 && state2==0)
  168.                 {//顯示----
  169. //                        for(j=0;j<4;j++)
  170. //                                dis_buf[j] = 0xbf;//共陽-
  171.                         for(j=0;j<4;j++)
  172.                                 dis_buf[j] = 0x40;//共陰-
  173.                 }
  174.                 else
  175.                 {
  176.                         if(state1==1)//顯示A倒計(jì)時(shí)時(shí)間
  177. //                                dis_buf[0] = 0x88;//共陽A
  178.                                 dis_buf[0] = 0x77;//共陰A
  179.                         else if(state2==1)//顯示B倒計(jì)時(shí)時(shí)間
  180. //                                dis_buf[0] = 0x83;//共陽b
  181.                                 dis_buf[0] = 0x7c;//共陰b
  182.                         dis_buf[1] = table[num/100%10];
  183. //                        dis_buf[2] = table[num/10%10]&0x7f;//共陽加小數(shù)點(diǎn)
  184.                         dis_buf[2] = table[num/10%10]|0x80;//共陰加小數(shù)點(diǎn)
  185.                         dis_buf[3] = table[num%10];
  186.                 }
  187.         }
  188.         if(KeySec==1)
  189.         {//顯示A預(yù)設(shè)時(shí)間
  190. //                dis_buf[0] = 0x88; //共陽A
  191.                 dis_buf[0] = 0x77; //共陽A
  192.                 dis_buf[1] = table[time1/100%10];
  193. //                dis_buf[2] = table[time1/10%10]&0x7f;//共陽加小數(shù)點(diǎn)
  194.                 dis_buf[2] = table[time1/10%10]|0x80;//共陰加小數(shù)點(diǎn)
  195.                 dis_buf[3] = table[time1%10];
  196.         }
  197.         if(KeySec==2)
  198.         {//顯示B預(yù)設(shè)時(shí)時(shí)間
  199. //                dis_buf[0] = 0x83; //共陽b
  200.                 dis_buf[0] = 0x7c; //共陽b
  201.                 dis_buf[1] = table[time2/100%10];
  202. //                dis_buf[2] = table[time2/10%10]&0x7f;//共陽加小數(shù)點(diǎn)
  203.                 dis_buf[2] = table[time2/10%10]|0x80;//共陰加小數(shù)點(diǎn)
  204.                 dis_buf[3] = table[time2%10];
  205.         }
  206.         //共陽數(shù)碼管驅(qū)動(dòng)
  207. /*        P2&=0xf0;//消隱
  208.         P0=dis_buf[i];//送段碼
  209.         P2|=0x01<<i;//送位碼
  210. */
  211.         //共陰數(shù)碼管驅(qū)動(dòng)
  212.         P0=0x00;//消隱
  213.         P2&=0xf0;//清低4位
  214.         P0=dis_buf[i];//送段碼
  215.         P2|=~(0x01<<i);//送位碼

  216.         i++;i%=4;
  217. }

  218. void main()//主函數(shù)
  219. {
  220.         Timer0Init();//定時(shí)器初始化程序
  221.         while(1)
  222.         {
  223.                 keyscan();                        //按鍵掃描
  224.                 INscan();                        //輸入掃描
  225.                 display();                        //數(shù)碼管顯示
  226.                 Delay1ms();                        //控制主循環(huán)約1ms
  227.         }
  228. }

  229. void Timer0Interrupt(void) interrupt 1
  230. {
  231.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  232.         TH0 = 0xDC;                //設(shè)置定時(shí)初值
  233.         num1++;
  234.         if(num1>=10)
  235.         {
  236.                 num1=0;
  237.                 num--;
  238.                 if(num<=0)
  239.                 {
  240.                         num=0;
  241.                         OUT1=1;
  242.                         OUT2=1;
  243.                         state1=0;
  244.                         state2=0;
  245.                         TR0=0;
  246.                 }
  247.         }
  248. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

6#
ID:821047 發(fā)表于 2020-10-9 21:23 | 只看該作者
謝謝前輩指點(diǎn)
回復(fù)

使用道具 舉報(bào)

7#
ID:821047 發(fā)表于 2020-10-9 23:34 | 只看該作者
謝謝總工
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷综合 | 欧美成人激情 | 久久久久久99 | 中文字幕国产在线 | 欧美激情一区二区三区 | 国产一区二区激情视频 | 亚洲手机视频在线 | 亚洲黄色av | 久久久久国产 | 日本一区二区三区在线观看 | 成人深夜福利网站 | 日韩在线观看 | 国产成人精品免高潮在线观看 | 99九色| 一区在线视频 | 午夜精品一区二区三区在线观看 | 中文字幕国产第一页 | 欧美视频网 | 99精品国自产在线观看 | 91天堂| 亚洲一区中文字幕 | 久久精品综合 | 97久久超碰 | 国产999精品久久久久久 | 精品国产三级 | 91成人在线视频 | 久久最新精品视频 | 在线播放国产一区二区三区 | 99精品一区二区 | 精品一区二区久久久久久久网精 | 日韩在线视频一区 | 好姑娘影视在线观看高清 | 日韩成人一区 | 91九色视频 | 午夜影院在线观看 | 日韩精品一区二区三区四区视频 | 色资源站| 一区二区三区四区在线视频 | 日韩免费毛片 | 欧美一级片在线看 | 福利精品在线观看 |