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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)控制ADC0804檢測運(yùn)放TL084的電壓仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

下面這個是整體單片機(jī)系統(tǒng)的原理圖:


adc0804檢測電壓部分原理圖:


運(yùn)放TL084產(chǎn)生電壓部分的仿真:


單片機(jī)匯編語言程序:
  1. ORG 00H
  2. ANL P1,#0F0H
  3. START: MOVX @R0,A

  4. WAIT: JB P2.0,ADC
  5.       CALL DISP
  6.       JMP WAIT

  7. ADC: MOVX A,@R0
  8.      CALL L1
  9.      MOV R1,#0FFH

  10. DISP1: CALL DISP
  11.        DJNZ R1,DISP1
  12.        JMP START

  13. L1: CLR C
  14.     MOV R5,#00H
  15.     MOV R4,#00H
  16.     MOV R3,#08H

  17. NEXT: RLC A
  18.       MOV R2,A
  19.       MOV A,R5
  20.       ADDC A,R5
  21.       DA A
  22.       MOV R5,A
  23.       MOV A,R4
  24.       ADDC A,R4
  25.       MOV R4,A
  26.       MOV A,R2
  27.       DJNZ R3,NEXT
  28.       MOV R7,#02

  29. L2: MOV A,R5
  30.     ADD A,R5
  31.     DA A
  32.     MOV R5,A
  33.     MOV A,R4
  34.     DA A
  35.     MOV R4,A
  36.     DJNZ R7,L2
  37.     RET

  38. DISP: MOV A,R5
  39.       ANL A,#0FH
  40.       ORL A,#10H
  41.       MOV P1,A
  42.       CALL DELAY
  43.       MOV A,R5
  44.       ANL A,#0F0H
  45.       SWAP A
  46.       ORL A,#20H
  47.       MOV P1,A
  48.       CALL DELAY
  49.       MOV A,R4
  50.       ANL A,#0FH
  51.       ORL A,#40H
  52.       MOV P1,A
  53.       CALL DELAY
  54.       MOV A,R4
  55.       ANL A,#0F0H
  56.       SWAP A
  57.       ORL A,#80H
  58.       MOV P1,A
  59.       CALL DELAY
  60.       CLR A
  61.       RET

  62. DELAY: MOV R6,#10

  63. D1: MOV R7,#248
  64.     DJNZ R7,$
  65.     DJNZ R6,D1
  66.     RET
  67.     END
復(fù)制代碼
c語言程序:
  1. #include"at89X52.h"
  2. sbit LCD_RS    =P2^0;
  3. sbit LCD_RW    =P2^1;
  4. sbit LCD_E    =P2^2;
  5. sbit ADC_CS    =P2^3;
  6. sbit ADC_WR   =P3^6;
  7. sbit ADC_RD    =P3^7;
  8. #define LCD_DATA P0
  9. unsigned char LcdBuf1[10]="";

  10. unsigned char code Bmp001[][8]=
  11. {
  12.   {0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00},
  13.   {0x06,0x09,0x10,0x10,0x10,0x09,0x06,0x00}
  14. };

  15. void dellay(unsigned int h)
  16. {
  17.   while(h--);   //0.01MS
  18. }

  19. void WriteDataLcd(unsigned char wdata)
  20. {
  21.   LCD_DATA=wdata;
  22.   LCD_RS=1;
  23.   LCD_RW=0;
  24.   LCD_E=0;
  25.   dellay(1000);
  26.   LCD_E=1;

  27. }

  28. void WriteCommandLcd(unsigned char wdata)
  29. {
  30.   LCD_DATA=wdata;
  31.   LCD_RS=0;
  32.   LCD_RW=0;
  33.   LCD_E=0;
  34.   dellay(1000);
  35.   LCD_E=1;
  36. }

  37. void lcd_init(void)
  38. {
  39.   LCD_DATA=0;
  40.   WriteCommandLcd(0x38);
  41.   dellay(1000);
  42.   WriteCommandLcd(0x38);
  43.   dellay(1000);
  44.   WriteCommandLcd(0x01);
  45.   WriteCommandLcd(0x0c);

  46. }

  47. void display_xy(unsigned char x,unsigned char y)
  48. {
  49.   if(y==1)
  50.     x+=0x40;
  51.    x+=0x80;
  52.    WriteCommandLcd(x);
  53. }

  54. void display_string(unsigned char x,unsigned char y,unsigned char *s)
  55. {
  56.   display_xy(x,y);
  57.   while(*s)
  58.     {
  59.       WriteDataLcd(*s);
  60.       s++;

  61.     }

  62. }

  63. void Write_CGRAM(unsigned char add,unsigned char *char_num)
  64. {
  65.   unsigned i;
  66.   add=add<<3;
  67.   WriteCommandLcd(0x40|add+8);
  68.   for(i=0;i<8;i++)
  69.    {
  70.      WriteDataLcd(*char_num++);

  71.    }
  72.   
  73. }

  74. void delayms()
  75. {
  76.   int i;
  77.   for(i=110;i>0;i--);

  78. }
  79. void delay1s()
  80. {
  81.   int i,j;
  82.   for(i=1000;i>0;i--);
  83.    for(j=110;j>0;j--);
  84. }

  85. void convert()
  86. {
  87.   unsigned long value;
  88.   char i;
  89.   unsigned long res;
  90.   int temp,temp2;
  91.   int w;
  92.   P1=0xff;
  93.   ADC_RD=0;
  94.   for(i=0;i<10;i++);
  95.   value=P1;
  96.   res=(float)(2550000+110000*value/30)/(2550-11*value/30);
  97.   temp=(float)(res*10000-10000000)/3851-545;
  98.   temp2 = temp;
  99.   if(temp >= 0)
  100.   {
  101.   for(i=6;temp>0;i--)
  102.    {
  103.      LcdBuf1[i]=temp%10+48;
  104. temp/=10;
  105.    }
  106.   }
  107.   if(temp < 0 )
  108.    {

  109. w= -temp;
  110.        for(i=6;w>0;i--)
  111.    {
  112.      LcdBuf1[i]=w%10+48;
  113. w/=10;
  114.    }
  115. }
  116.   if(i>=0&&temp<0)
  117.   {   
  118.      if(temp > -10)
  119.   {
  120.   LcdBuf1[i] = '0';
  121.   i--;
  122.   }
  123.   LcdBuf1[i] = '-';
  124.   i--;   
  125. /*   if(i==5)
  126.   {
  127.   LcdBuf1[5] = '0';
  128.   i --;
  129.   }
  130.   LcdBuf1[4] = '-';
  131.   i--;  */
  132.   
  133.   }
  134.   for(;i>=0;i--)
  135.   LcdBuf1[i]=' ';
  136.   for(i=0;i<5;i++)
  137.   LcdBuf1[i]=LcdBuf1[i+1];
  138.   if(LcdBuf1[4]==' ')LcdBuf1[4]='0';
  139.   LcdBuf1[5]='.';
  140.   LcdBuf1[7]=1;
  141.   LcdBuf1[8]='C';
  142.   WriteCommandLcd(0x84);
  143.   display_string(3,0,LcdBuf1);
  144.   ADC_RD=1;
  145.   ADC_WR=0;
  146.   for(i=0;i<10;i++)
  147.   ADC_WR=1;
  148.   delayms();


  149. }

  150. main()
  151. {
  152.   unsigned char i;
  153.   lcd_init();
  154.   for(i=0;i<2;i++)
  155.   Write_CGRAM(i,Bmp001[i]);
  156.   ADC_CS=0;
  157.   ADC_WR=0;
  158.   for(i=0;i<10;i++);
  159.   ADC_WR=1;
  160.   while(1)
  161.    {

復(fù)制代碼




下載:
單片機(jī)adc0804 運(yùn)放TL084仿真.rar (49.86 KB, 下載次數(shù): 23)

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 欧美美女爱爱视频 | 日韩中文字幕免费在线观看 | 国产欧美精品在线观看 | 亚洲视频在线播放 | 午夜久久久久久久久久一区二区 | 久久午夜视频 | 国产精成人| 国内精品久久久久久 | 亚洲午夜视频 | 99久久婷婷国产综合精品首页 | 国产午夜久久久 | 久久久国产一区二区三区 | 精品香蕉一区二区三区 | 福利片在线观看 | 毛片毛片毛片毛片毛片 | 久久国产精品久久久久久 | 日韩视频一区二区三区 | 亚洲网在线 | 精品在线免费观看视频 | 亚洲第一网站 | 国产精品久久久久久婷婷天堂 | 91色站| 日本在线视频一区二区 | 精品国产一区二区三区久久狼黑人 | 国产精品乱码一区二三区小蝌蚪 | 日韩高清中文字幕 | 91新视频| 精品国产乱码久久久久久中文 | 一区二区三区精品视频 | 亚洲视频www | 久久亚洲综合 | 精品国产精品一区二区夜夜嗨 | 色吊丝2288sds中文字幕 | av久久| 欧美不卡一区二区三区 | 久久精品视频一区二区三区 | 成人午夜精品 | 国产福利在线视频 | 午夜精品一区二区三区在线观看 | 亚洲一区播放 |