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

標(biāo)題: 單片機(jī)控制ADC0804檢測(cè)運(yùn)放TL084的電壓仿真 [打印本頁]

作者: 51hei小胡    時(shí)間: 2017-4-3 04:42
標(biāo)題: 單片機(jī)控制ADC0804檢測(cè)運(yùn)放TL084的電壓仿真

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


adc0804檢測(cè)電壓部分原理圖:


運(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)






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人中文字幕在线观看 | 中文字幕视频在线观看 | 国产精品久久久久一区二区三区 | 亚洲精品女人久久久 | 天天综合成人网 | 97精品国产一区二区三区 | 黄色免费网站在线看 | 久夜精品 | 精品成人免费视频 | 国产精品久久国产精品 | 日韩精品在线免费 | 少妇一级淫片免费放播放 | 在线成人免费av | 成人午夜在线 | 成人片免费看 | 成人高清视频在线观看 | 亚洲成人中文字幕 | 日韩一及片 | 亚洲免费福利视频 | 久久久久1 | 91精品国产综合久久国产大片 | 特级黄一级播放 | 亚洲成网| 国产91丝袜在线熟 | 日韩欧美一区二区在线播放 | 午夜性视频 | 欧美日韩综合 | 自拍偷拍3p| 美女中文字幕视频 | 欧美一区2区三区4区公司 | 狠狠av| 欧美激情在线播放 | 亚洲精品久久久久久一区二区 | 欧美a在线看 | 成人在线观看网站 | 久久免费观看视频 | 日韩成人在线一区 | 国产精品二区三区在线观看 | 久久九 | 毛片.com | 成人一区二区三区视频 |