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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

光電耦合電路替換繼電器Proteus仿真+單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
一個光電耦合電路替換繼電器的Proteus仿真
利用光電耦合電路實現低壓控制高壓
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<math.h>
  3. #define uchar unsigned char
  4. #define unit unsigned int
  5. #define lcd_data P0
  6. #define temp_data P3
  7. sbit CLK=P1^3;
  8. sbit ST=P1^2;
  9. sbit EOC=P1^1;
  10. sbit OE=P1^0;
  11. sbit DQ=P1^7;
  12. sbit lcd_RS=P2^0;
  13. sbit lcd_RW=P2^1;
  14. sbit lcd_EN=P2^2;
  15. sbit Buzz=P1^7;
  16. sbit right=P2^6;
  17. sbit left=P2^7;
  18. sbit Con=P2^5;
  19. uchar t[2],speed,temperature;
  20. uchar TempBufferl[12]={0xdf,0x43,'\0'};
  21. uchar tab[16]={0x20,0x20,0x20,0x54,0x20,0x4d,0x6f,0x6e,0x69,0x74,0x6f,0x72,'\0'};
  22. uchar V[3];
  23. /*...延時.......................*/
  24. void delay(unsigned int x)
  25. {
  26.         unsigned char i;
  27.         while (x--)
  28.         {
  29.                 for(i=0;i<123;i++){;}
  30.         }
  31. }
  32. /*...LCD顯示.......................*/
  33. void delay_20ms(void)
  34. {
  35.         uchar i,temp;
  36.         for(i=20;i>0;i--)
  37.         {
  38.                 temp=248;
  39.                 while(--temp);
  40.                 temp=248;
  41.                 while(--temp);
  42.         }
  43. }
  44. void delay_38us(void)
  45. {
  46.         uchar temp;
  47.         temp=18;
  48.         while(--temp);
  49. }
  50. void delay_1520us(void)
  51. {
  52.         uchar i,temp;
  53.         for(i=3;i>0;i--)
  54.         {
  55.                 temp=252;
  56.                 while(--temp);
  57.         }
  58. }
  59. uchar lcd_rd_status()
  60. {
  61.         uchar tmp_sts;
  62.         lcd_data=0xff;
  63.         lcd_RW=1;
  64.         lcd_RS=0;
  65.         lcd_EN=1;
  66.         tmp_sts=lcd_data;
  67.         lcd_EN=0;
  68.         lcd_RW=0;
  69.         return tmp_sts;
  70. }
  71. void lcd_wr_com(uchar command)
  72. {
  73.         while (0x80&lcd_rd_status());
  74.         lcd_RW=0;
  75.         lcd_RS=0;
  76.         lcd_data=command;
  77.         lcd_EN=1;
  78.         lcd_EN=0;
  79. }
  80. void lcd_wr_data(uchar sjdata)
  81. {
  82.         while (0x80&lcd_rd_status());
  83.         lcd_RW=0;
  84.         lcd_RS=1;
  85.         lcd_data=sjdata;
  86.         lcd_EN=1;
  87.         lcd_EN=0;
  88.         lcd_RS=0;
  89. }
  90. void Init_lcd(void)
  91. {
  92.         delay_20ms();
  93.         lcd_wr_com(0x38);
  94.         delay_38us();
  95.         lcd_wr_com(0x0c);
  96.         delay_38us();
  97.         lcd_wr_com(0x01);
  98.         delay_1520us();
  99.         lcd_wr_com(0x06);
  100. }
  101. void GotoXY(uchar x,uchar y)
  102. {
  103.         if(y==0)
  104.                 lcd_wr_com(0x80|x);
  105.         if(y==1)
  106.                 lcd_wr_com(0xc0|x);
  107. }
  108. void Print(uchar *str)
  109. {
  110.         while(*str!='\0')
  111.         {
  112.                 lcd_wr_data(*str);
  113.                 str++;
  114.         }
  115. }
  116. void LCD_Print(uchar x,uchar y,uchar *str)
  117. {
  118.         GotoXY(x,y);
  119.         Print(str);
  120. }
  121. /*...ADC.......................*/
  122. void display_result(uchar d)
  123. {
  124.         float a,b,c;
  125.         a=d/100;
  126.         b=(d%100)/10;
  127.         c=d%10;
  128.        
  129.         V[0]=a+'0';
  130.         V[1]=b+'0';
  131.         V[2]=c+'0';
  132.        
  133.         LCD_Print(5,0,V);
  134.        
  135. }
  136. /*...主函數.......................*/
  137. void main(void)       
  138. {
  139.         uchar d;
  140.         uchar p;
  141.         Buzz=0;
  142.         right=0;
  143.         left=0;
  144.         //i=temp_data;
  145.         delay_20ms();
  146.         Init_LCD();
  147. //display_result(a);
  148.         LCD_Print(0,1,tab);
  149. //delay(10000);
  150.         TMOD=0x02;
  151.         TH0=0x14;
  152.         TL0=0x00;
  153.         IE=0X82;
  154.         TR0=1;
  155.         EA=1;
  156.         P1=0X3f;
  157.         while(1)
  158.         {
  159.                 //i=P3;
  160.                 Buzz=0;
  161.                 right=0;
  162.           left=0;
  163.                 d=temp_data;
  164.                 p = 2.0838*d - 240.51;
  165.                 ST=0;
  166.                 ST=1;
  167.                 ST=0;
  168. ……………………

  169. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
光電耦合.7z (105.27 KB, 下載次數: 37)

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 三级av在线 | 综合精品久久久 | 一区二区在线免费观看 | 国产成人精品亚洲日本在线观看 | 日韩精品在线看 | 国产日韩久久久久69影院 | 日韩色在线 | 久久久性 | 91电影院| 国产精品无码久久久久 | 国产精品高潮呻吟久久 | 日日日干干干 | 成人h动漫亚洲一区二区 | 国产精品美女久久久 | 久久精品国产亚洲 | 精品国产乱码久久久久久a丨 | 中文字幕在线精品 | 青青草av| 国产精品亚洲二区 | 国产在线视频在线观看 | 亚洲国产成人在线观看 | 成人免费视频 | 欧美激情久久久 | 国产超碰人人爽人人做人人爱 | 都市激情亚洲 | 天天射天天干 | 色约约视频 | 91欧美精品 | 亚洲国产一区二区三区在线观看 | 国产亚洲欧美在线 | 麻豆va | 亚洲精品乱码久久久久久久久久 | 日韩精品一区二区三区在线播放 | 伦理二区| 久久人操 | 91毛片在线看| 亚洲视频免费 | 亚洲va在线va天堂va狼色在线 | 国产一区二 | 久久久精品网站 | 国产在线1区 |