亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PIC16F877A的AD轉換,PWM輸出,lcd1602顯示仿真例子

  [復制鏈接]
跳轉到指定樓層
#
1、AD轉換
2、PWM輸出
3、AD輸入的比例控制PWM的占空比。
4、lcd1602顯示AD測試值,PWM輸出占空比
5、全文注釋
6、proteus仿真圖。
頂一下,謝謝

圖.jpg (168.02 KB, 下載次數: 752)

圖.jpg

picad.7z

209.59 KB, 下載次數: 1019, 下載積分: 黑幣 -5

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

使用道具 舉報

65#
ID:1146374 發表于 2025-4-6 14:22 | 只看該作者
OK,很有用!
回復

使用道具 舉報

64#
ID:609145 發表于 2022-7-11 11:10 | 只看該作者
非常不錯 值得學習。
回復

使用道具 舉報

63#
ID:18297 發表于 2022-2-12 09:04 | 只看該作者
請講述你的問題,你的功能要求。
回復

使用道具 舉報

62#
ID:61632 發表于 2021-12-2 16:06 | 只看該作者
  1. #include <pic.h>
  2. #include <math.h>
  3. //#include <myfuncs1.h>
  4. //#include <seg74.h>
  5. #include <htc.h>
  6. #define SEG_BITSEL_PORT PORTD                   //位選端口
  7. #define SEG_BITSEL_PORT_DIR TRISD               //位選端口的方向寄存器
  8. #define SEG_FONT_PORT PORTC                     //字形輸出端口
  9. #define SEG_FONT_PORT_DIR TRISC                 //字形輸出端口的方向寄存器
  10. #define DLY_MS 67
  11. const char Seg7TableN[]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000};

  12. //__CONFIG(FOSC_HS & WDTE_ON & PWRTE_OFF & BOREN_ON & LVP_ON & CPD_OFF & WRT_OFF & CP_OFF);
  13. //__CONFIG (XT & WDTDIS & LVPDIS);
  14. unsigned int g_ADRTable[12] = {0,0,0,0,0,0,0,0,0,0,0 };
  15. unsigned char g_Count=0;
  16. bit OverFlag = 0;//12位轉換次數完成標志位清零;
  17. void delayms (int ms);
  18. void DisplayData (unsigned int iData);
  19. void interrupt ISR (void)
  20. {
  21.     if ( ADIE && ADIF  )
  22.     {
  23.        ADIF = 0;
  24.        g_ADRTable[g_Count]=(((unsigned int)ADRESH)<<8)+ADRESL;
  25.        g_Count++;
  26.        if(g_Count==12)
  27.        {
  28.            g_Count =0;
  29.            OverFlag=1;//
  30.        }
  31.        else
  32.        {
  33.            GO_DONE = 1;//啟動AD
  34.        }      
  35.     }
  36.     else
  37.        {
  38.            while(1);
  39.        }
  40. }
  41. void main(void)
  42. {
  43.     //void  DisplayData();
  44.     char i=0,j=0;
  45.     int tmp = 0;//
  46.     int adc_v = 0;
  47.     TRISA0 = 1;
  48.     SEG_BITSEL_PORT_DIR = 0;//位選端口的方向寄存器,確定輸出端口
  49.     SEG_FONT_PORT_DIR = 0;//字形輸出端口的方向寄存器,確定輸出端口
  50.     ADFM = 1;
  51.     PCFG3:PCFG0 = 0000;
  52.     ADCON0 = 0B11000001;
  53.     ADIE = 1;
  54.     ADIF = 0;
  55.     PEIE = 1;
  56.     GIE = 1;
  57.     for(i=0;i<15;i++)
  58.     {
  59.         ;
  60.     }
  61.     GO_DONE = 1;
  62.     while(GO_DONE)
  63.     {
  64.         if(OverFlag==1)
  65.         {
  66.             for(i=0;i<12;i++)//冒泡法排序
  67.             {
  68.                 for(j=i+1;j<12;j++)
  69.                 {
  70.                     if(g_ADRTable[i] > g_ADRTable[j])
  71.                     {
  72.                         tmp = g_ADRTable[i];
  73.                         g_ADRTable[i] = g_ADRTable[j];
  74.                         g_ADRTable[j] = tmp;
  75.                     }
  76.                 }   
  77.             }
  78.         tmp = 0;
  79.         for(i=2;i<10;i++)
  80.         {
  81.             tmp = tmp + g_ADRTable[i];            
  82.         }
  83.         tmp = tmp >>3;//將數按照 2進制像右移動.每向右移動一位,相當于 除2的n次冪
  84.         adc_v = tmp;
  85.         adc_v = ((long)adc_v*5000/1023);
  86.         OverFlag = 0;
  87.         GO_DONE = 1;
  88.         }
  89.         DisplayData(adc_v);
  90.     }
  91. }
  92. void DisplayData (unsigned int iData )
  93. {
  94.     char i=0,j=0;//
  95.     char k = 0,NumStr[ 5 ]={0,0,0,0,0};
  96.     NumStr[1]=iData / 1000;//取整
  97.     NumStr[2]=iData % 1000/100;
  98.     NumStr[3]=iData % 100/10;
  99.     NumStr[4]=iData % 10;
  100.     for(i=0;i<10;i++)
  101.     {
  102.         SEG_BITSEL_PORT = k =0X01;
  103.         for(j=0;j<=4;j++)
  104.         {
  105.             SEG_BITSEL_PORT = k;
  106.             if(j==1)
  107.             {
  108.                 SEG_FONT_PORT = Seg7TableN[NumStr[j]]&0b01111111;         
  109.             }
  110.             else
  111.             {
  112.                 SEG_FONT_PORT = Seg7TableN[NumStr[j]];
  113.                
  114.             }
  115.             delayms(5);
  116.             k = k <<1;//把1向左移1為顯示
  117.         }
  118.     }
  119. }
  120. void delayms (int ms)
  121. {
  122.     int i=0,j =0;
  123.     for(i=0;i < ms;i++)
  124.         for(j =0; j < DLY_MS;j++)
  125.         {;}
  126. }
復制代碼

能幫我看看這個程序問題出在哪里嗎
回復

使用道具 舉報

61#
ID:960452 發表于 2021-9-13 16:43 | 只看該作者
求教樓主,我想同時檢測電壓 電流該怎么改進程序?
回復

使用道具 舉報

60#
ID:387687 發表于 2021-9-5 21:45 | 只看該作者
好程序,學習了。
回復

使用道具 舉報

59#
ID:625711 發表于 2021-9-1 15:53 | 只看該作者
謝謝分享!!!可以很好的學習下AD!
回復

使用道具 舉報

58#
ID:713781 發表于 2020-4-8 15:12 | 只看該作者
我下載出來的電路圖和上面的電路圖不一樣啊,只有我這樣嗎
回復

使用道具 舉報

57#
ID:103421 發表于 2019-9-3 16:08 | 只看該作者
不錯,下來學習。
回復

使用道具 舉報

56#
ID:154187 發表于 2019-1-22 09:57 | 只看該作者
仿真沒有找到lcd1602啊
回復

使用道具 舉報

55#
ID:213175 發表于 2018-11-12 20:25 | 只看該作者
感謝分享
回復

使用道具 舉報

54#
ID:302666 發表于 2018-6-1 03:18 | 只看該作者
有個例程參考,好多了
回復

使用道具 舉報

53#
ID:322187 發表于 2018-5-4 16:29 | 只看該作者
學習學習,感謝分享
回復

使用道具 舉報

52#
ID:209855 發表于 2018-1-12 13:30 | 只看該作者
急需看1602的代碼,我的就是不顯示,只有背光。
回復

使用道具 舉報

51#
ID:269685 發表于 2018-1-1 11:43 | 只看該作者
沒有lcd1602
回復

使用道具 舉報

50#
ID:71549 發表于 2017-11-25 17:53 | 只看該作者

不錯  樓主辛苦
回復

使用道具 舉報

49#
ID:94088 發表于 2017-11-10 13:16 | 只看該作者
感謝分享!!!
回復

使用道具 舉報

48#
ID:183735 發表于 2017-7-1 14:15 | 只看該作者
東西值得去認真看
回復

使用道具 舉報

47#
ID:186630 發表于 2017-4-27 16:06 | 只看該作者
好東西,參考一下
回復

使用道具 舉報

46#
ID:159112 發表于 2017-3-19 09:51 | 只看該作者
好東西,值得學習。
回復

使用道具 舉報

45#
ID:170103 發表于 2017-3-18 09:50 | 只看該作者
樓主的資料真的是幫我了大忙
回復

使用道具 舉報

44#
ID:170103 發表于 2017-3-18 09:49 | 只看該作者
樓主這個真是我需要學習的資料啊
回復

使用道具 舉報

43#
ID:162067 發表于 2017-2-5 16:49 | 只看該作者
謝謝樓主
回復

使用道具 舉報

42#
ID:161115 發表于 2017-1-10 14:14 | 只看該作者
真的是一個不錯的學習例子,支持樓主
回復

使用道具 舉報

41#
ID:159601 發表于 2017-1-3 14:38 | 只看該作者
很實用啊啊啊啊
回復

使用道具 舉報

40#
ID:159270 發表于 2017-1-2 22:23 | 只看該作者
zjjhtony 發表于 2017-1-2 18:10
這個估計是你的編譯器的問題,我使用的是mplab V8.7版本的。

版主:我用的是mplab IDE V8.91版本,PICC V8.05版,編譯其它程序可以的
回復

使用道具 舉報

39#
ID:18297 發表于 2017-1-2 18:10 | 只看該作者
這個估計是你的編譯器的問題,我使用的是mplab V8.7版本的。
回復

使用道具 舉報

38#
ID:159270 發表于 2017-1-1 22:57 | 只看該作者
編譯出現這樣的故障代碼,菜鳥請教
回復

使用道具 舉報

37#
ID:159270 發表于 2017-1-1 22:56 | 只看該作者
Clean: Deleting intermediary and output files.
Clean: Deleted file "E:\pic\picad\main.cce".
Clean: Done.
Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"main.cce" "main.c" -O"main.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F877A

This compiler will expire in 19 days
Compiler operating in demo mode.
Some command line options are disabled and compilation is delayed.
Register this compiler to enable these options.

Warning[000] E:\pic\picad\sys.h 9 : Missing newline
Warning[000] E:\pic\picad\main.c 125 : Missing newline
Error[000] E:\pic\picad\main.c 17 : undefined identifier: GO
Warning[000] E:\pic\picad\main.c 124 : line does not have a newline on the end
Halting build on first failure as requested.
BUILD FAILED: Sun Jan 01 22:46:01 2017
回復

使用道具 舉報

36#
ID:159270 發表于 2017-1-1 22:48 | 只看該作者
剛剛試了下,1602LCD沒有顯示,不知啥問題
回復

使用道具 舉報

35#
ID:82712 發表于 2016-9-19 17:36 | 只看該作者
學習學習。。。
回復

使用道具 舉報

34#
ID:88073 發表于 2016-9-13 17:11 | 只看該作者
仿真還得重新加東西?
回復

使用道具 舉報

33#
ID:99245 發表于 2016-8-2 11:50 | 只看該作者
學習了!非常感謝
回復

使用道具 舉報

32#
ID:105271 發表于 2016-2-10 23:42 | 只看該作者
學習了!!!謝謝!!
回復

使用道具 舉報

31#
ID:104119 發表于 2016-1-22 16:15 | 只看該作者
感謝樓主分享!!!!!!!!!!
回復

使用道具 舉報

30#
ID:85606 發表于 2015-12-29 12:19 | 只看該作者
樓主發帖辛苦了,謝謝分享!!!!!!!!
回復

使用道具 舉報

29#
ID:90884 發表于 2015-9-23 17:02 | 只看該作者
這是神馬東西,lcd在哪都看不見,差評
回復

使用道具 舉報

28#
ID:71535 發表于 2015-9-22 08:19 | 只看該作者
感謝樓主分享,這對剛入門的人幫助會很大啊!
回復

使用道具 舉報

27#
ID:86543 發表于 2015-8-14 20:02 | 只看該作者
這個必須頂,…………………………
回復

使用道具 舉報

26#
ID:84840 發表于 2015-7-5 21:11 | 只看該作者
standgo 發表于 2015-6-8 18:31
樓主,你好。我看了你的程序,里面A/D轉換時鐘選擇的是二分頻,而外部晶振是4M,可以得出A/D轉換一位所需時 ...

謝謝分享!!!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表