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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

proteus仿真stm32f103驅動lcd1602顯示adc采集的電壓(仿真圖+程序)

  [復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


lcd1602代碼:
  1. #include "bsp-lcd1602.h"

  2. void LCD1602_GPIO_Config(void)
  3. {
  4.         RCC_APB2PeriphClockCmd(LCD1602_CLK, ENABLE);
  5.         GPIO_InitTypeDef LCD1602_GPIOStruct;
  6.         LCD1602_GPIOStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  7.         LCD1602_GPIOStruct.GPIO_Speed = GPIO_Speed_10MHz;
  8.         LCD1602_GPIOStruct.GPIO_Pin =  LCD1602_E | LCD1602_RS | LCD1602_RW ;
  9.         GPIO_Init(LCD1602_GPIO_PORT,&LCD1602_GPIOStruct);
  10.         LCD1602_GPIOStruct.GPIO_Mode = GPIO_Mode_Out_OD;
  11.         LCD1602_GPIOStruct.GPIO_Pin =   DB0 |  DB1 | DB2 |DB3 |  DB4 | DB5|
  12.                                                                                                                                         DB6 |  DB7 ;     //設置為開漏輸出
  13.         GPIO_Init(LCD1602_GPIO_PORT,&LCD1602_GPIOStruct);
  14. }

  15. void LCD1602_WaitReady(void) //檢測忙狀態
  16. {
  17.         uint8_t sta;

  18.         GPIOB->ODR =0x00FF;
  19.         RSO(0);
  20.         RWO(1);
  21.         EO(1);
  22.         SysTick_Delay_Us(1);
  23.         do{
  24.                 sta=GPIO_ReadInputDataBit(LCD1602_GPIO_PORT,GPIO_Pin_7);
  25.                 EO(0);
  26.         }while(sta);
  27. }

  28. void LCD1602_WriteCmd(uint8_t cmd) //寫指令
  29. {
  30.         LCD1602_WaitReady();
  31.         RSO(0);
  32.         RWO(0);
  33.         EO(0);
  34.         SysTick_Delay_Us(1);
  35.         EO(1);
  36.         LCD1602_GPIO_PORT->ODR &= (cmd|0xFF00);
  37.         EO(0);
  38.         SysTick_Delay_Us(400);
  39. }

  40. void LCD1602_WriteDat(uint8_t dat) //寫數據
  41. {
  42.         LCD1602_WaitReady();
  43.         RSO(1);
  44.         RWO(0);
  45.         SysTick_Delay_Us(30);
  46.         EO(1);
  47.         LCD1602_GPIO_PORT->ODR &=(dat|0xFF00);
  48.         EO(0);
  49.         SysTick_Delay_Us(400);
  50. }

  51. void LCD1602_SetCursor(uint8_t x, uint8_t y)
  52. {
  53.     uint8_t addr;
  54.    
  55.     if (y == 0)  //由輸入的屏幕坐標計算顯示RAM的地址
  56.         addr = 0x00 + x;  //第一行字符地址從0x00起始
  57.     else
  58.         addr = 0x40 + x;  //第二行字符地址從0x40起始
  59.     LCD1602_WriteCmd(addr|0x80);  //設置RAM地址
  60. }

  61. void LCD1602_ShowStr(uint8_t x, uint8_t y, uint8_t *str, uint8_t len)
  62. {
  63.     LCD1602_SetCursor(x, y);        //設置起始地址
  64.     while (len--)         //連續寫入len個字符數據
  65.     {
  66.         LCD1602_WriteDat(*str++);
  67.     }
  68. }

  69. //??1???
  70. //x,y :????         
  71. //num:??(0~99)         
  72. //-----------------------------*/         
  73. void LCD_ShowNum(uint8_t x, uint8_t y,uint8_t num)
  74. {     

  75.             LCD1602_SetCursor(x, y);        //設置起始地址
  76.     LCD_ShowChar(x,y,num+'0');
  77.         
  78. }

  79. void LCD_ShowChar(uint8_t x, uint8_t y,uint8_t dat)
  80. {

  81.             LCD1602_SetCursor(x, y);        //設置起始地址
  82.         LCD1602_WriteDat(dat);
  83. }



  84. void LCD1602_Init(void)
  85. {
  86.           LCD1602_GPIO_Config();   //開啟GPIO口
  87.     LCD1602_WriteCmd(0X38);  //16*2顯示,5*7點陣,8位數據接口
  88.     LCD1602_WriteCmd(0x0C);  //顯示器開,光標關閉
  89.     LCD1602_WriteCmd(0x06);  //文字不動,地址自動+1
  90.     LCD1602_WriteCmd(0x01);  //清屏
  91. }
  92.         
  93.         



復制代碼
adc采集源代碼:
  1. #include "adc.h"

  2. void ADC1_GPIO_Config(void){
  3.     GPIO_InitTypeDef GPIO_InitStructure;
  4.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1, ENABLE);        //使能ADC1,GPIOC時鐘
  5.            
  6.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //
  7.     //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//為什么沒有配置這個????
  8.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;        //模擬輸入
  9.     GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA1
  10. }


  11. void ADC_Config(void)
  12. {
  13.         

  14.   ADC_InitTypeDef ADC_InitStructure;//ADC結構體變量//注意在一個語句快內變量的聲明要放在可執行語句的前面,否則出錯,因此要放在ADC1_GPIO_Config();前面
  15.   ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在獨立模式
  16.   ADC_InitStructure.ADC_ScanConvMode =        DISABLE; //使能掃描
  17.   ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//ADC轉換工作在連續模式
  18.   ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//由軟件控制轉換,不使用外部觸發
  19.   ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//轉換數據右對齊
  20.   ADC_InitStructure.ADC_NbrOfChannel = 1;//轉換通道為1
  21.   ADC_Init(ADC1, &ADC_InitStructure); //初始化ADC
  22.         
  23.   ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5);
  24.   //ADC1選擇信道14,音序等級1,采樣時間55.5個周期
  25. //  ADC_DMACmd(ADC1, ENABLE);//使能ADC1模塊DMA
  26.   ADC_Cmd(ADC1, ENABLE);//使能ADC1
  27.         ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
  28.   ADC_SoftwareStartConvCmd(ADC1, ENABLE);
  29. //  ADC_ResetCalibration(ADC1); //重置.(復位).ADC1校準寄存器
  30. //  while(ADC_GetResetCalibrationStatus(ADC1));//等待ADC1校準重置完成
  31. //  ADC_StartCalibration(ADC1);//開始ADC1校準
  32. //  while(ADC_GetCalibrationStatus(ADC1));//等待ADC1校準完成
  33. //  ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能ADC1軟件開始轉換
  34. }

復制代碼
全部資料:


注意這個仿真只能在Proteus8.8運行,經過測試高版本和低版本都不行,數據直接顯示0:
ADC+LCD1602.7z (237.27 KB, 下載次數: 2532)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

來自 2#
ID:262 發表于 2021-11-5 04:58 | 只看該作者
jeffrey.liu 發表于 2021-11-4 14:26
樓主,我的不顯示啊

你得用Proteus8.8版本來打開,打開以后要雙擊單片機,選擇hex文件:..\STM32程序\Project\Objects\LWl-F103.hex,這樣就可以了 你看我打開后的效果

51hei.gif (54.77 KB, 下載次數: 668)

51hei.gif
回復

使用道具 舉報

板凳
ID:71282 發表于 2019-5-6 15:06 | 只看該作者
好東西,謝謝高手分享,謝謝。 貌似只能用Proteus 8.8才能成功
回復

使用道具 舉報

地板
ID:530800 發表于 2019-5-8 17:34 | 只看該作者
很好的東西 好資料,51黑有你更精彩!!!
回復

使用道具 舉報

5#
ID:526735 發表于 2019-5-25 01:28 | 只看該作者
正好要做一個ADC轉換,看下能不能借用
回復

使用道具 舉報

6#
ID:526735 發表于 2019-5-25 09:14 | 只看該作者
樓主是大大的好人,如果自己折騰挺費勁,站在樓主的肩膀上,就輕松多了。
回復

使用道具 舉報

7#
ID:241434 發表于 2019-7-30 21:26 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

8#
ID:514218 發表于 2019-7-31 12:30 | 只看該作者
太好了,謝謝
回復

使用道具 舉報

9#
ID:464231 發表于 2019-7-31 19:27 | 只看該作者
謝謝高手分享,謝謝
回復

使用道具 舉報

10#
ID:569027 發表于 2019-8-25 17:22 | 只看該作者
我正在做一個ADC轉換,折騰一天了,看下能不能借用
回復

使用道具 舉報

11#
ID:61390 發表于 2019-8-26 09:29 | 只看該作者
好貼,正需要的
回復

使用道具 舉報

12#
ID:603784 發表于 2019-8-26 10:37 | 只看該作者
很好的東西
回復

使用道具 舉報

13#
ID:604043 發表于 2019-8-26 21:02 | 只看該作者
謝謝分享
回復

使用道具 舉報

14#
ID:282074 發表于 2019-10-6 11:31 | 只看該作者
我來看看
回復

使用道具 舉報

15#
ID:320028 發表于 2019-10-13 11:39 | 只看該作者
感謝分享
回復

使用道具 舉報

16#
ID:366897 發表于 2019-11-30 10:50 | 只看該作者
多謝分享,很好的例子。lcd和ad采集一塊練習
回復

使用道具 舉報

17#
ID:643525 發表于 2019-12-15 19:50 | 只看該作者
只顯示兩行方塊  
回復

使用道具 舉報

18#
ID:643525 發表于 2019-12-15 19:50 | 只看該作者
可以給我舉列一下嗎
回復

使用道具 舉報

19#
ID:470196 發表于 2020-1-2 13:16 | 只看該作者
高手!例子很好啊!但是遇到一個問題,運行一小段時間就停在那里不運行了,不知是何原因?
回復

使用道具 舉報

20#
ID:470196 發表于 2020-1-2 13:17 | 只看該作者
好東西謝謝分享!但是為什么運行一小段時間程序就不運行了?
回復

使用道具 舉報

21#
ID:116066 發表于 2020-1-3 23:19 | 只看該作者
學習一下,感謝樓主的分享
回復

使用道具 舉報

22#
ID:233711 發表于 2020-1-5 15:59 | 只看該作者
可以試試ADC和proteus
回復

使用道具 舉報

23#
ID:394553 發表于 2020-2-15 09:25 | 只看該作者
樓主太棒了,真誠感謝分享!
回復

使用道具 舉報

24#
ID:693219 發表于 2020-2-22 17:27 | 只看該作者
感謝分享哈哈哈哈!
回復

使用道具 舉報

25#
ID:693722 發表于 2020-3-6 12:00 | 只看該作者
非常有用!!剛好急用!調試了兩天沒結果,今天發現這個帖子,感謝分享
回復

使用道具 舉報

26#
ID:693722 發表于 2020-3-6 12:03 | 只看該作者
請問為什么ADC校準不了呢?在Proteus仿真中,為什么去掉校準程序就可以仿真呢???
回復

使用道具 舉報

27#
ID:648760 發表于 2020-3-8 00:49 | 只看該作者
謝謝,對小白很有用
回復

使用道具 舉報

28#
ID:648760 發表于 2020-3-8 11:38 | 只看該作者
謝謝共享,也想proteus仿真一下stm32的ADC,老出問題,參考一下。
回復

使用道具 舉報

29#
ID:719221 發表于 2020-3-31 01:30 來自手機 | 只看該作者
學習一下
回復

使用道具 舉報

30#
ID:719221 發表于 2020-3-31 10:46 | 只看該作者
找了半天,終于找到了
回復

使用道具 舉報

31#
ID:606102 發表于 2020-4-7 16:35 | 只看該作者
666,大兄弟是天使嗎,布置的作業是在離譜,啥也不知道就讓仿真ADC并用中斷以及用LCD顯示出來,哎
回復

使用道具 舉報

32#
ID:89217 發表于 2020-4-7 23:31 | 只看該作者
感謝樓主的無私奉獻,學習了
回復

使用道具 舉報

33#
ID:658039 發表于 2020-4-9 21:01 | 只看該作者
請問proteus是什么版本?居然有stm32f103R6 !
回復

使用道具 舉報

34#
ID:384904 發表于 2020-4-10 16:27 | 只看該作者
好東西,謝謝高手分享,謝謝。
回復

使用道具 舉報

35#
ID:384904 發表于 2020-4-10 16:33 | 只看該作者

感謝樓主的無私奉獻,學習了
回復

使用道具 舉報

36#
ID:294134 發表于 2020-4-13 10:51 | 只看該作者
很好謝謝
回復

使用道具 舉報

37#
ID:719608 發表于 2020-4-13 13:31 | 只看該作者
程序好像有問題
回復

使用道具 舉報

38#
ID:728265 發表于 2020-4-13 15:30 | 只看該作者
非常需要這些資料,目前正在學習proteus仿真
回復

使用道具 舉報

39#
ID:446064 發表于 2020-4-16 13:18 | 只看該作者
這兩個都是寫在main.c的么
回復

使用道具 舉報

40#
ID:446064 發表于 2020-4-18 21:29 | 只看該作者
r6的程序可以套用到c8上么
回復

使用道具 舉報

41#
ID:685780 發表于 2020-4-22 19:58 | 只看該作者
好東西,謝謝分享。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久久久久 | 亚洲精品乱码久久久久久按摩 | jlzzjlzz国产精品久久 | 精品99爱视频在线观看 | 国产一级视频在线播放 | 国产精品123区 | 欧美日韩成人网 | www.788.com色淫免费 | 欧美一级黄 | 激情欧美一区二区三区中文字幕 | 天天躁日日躁xxxxaaaa | 欧美黑人激情 | 免费在线播放黄色 | 99re在线视频免费观看 | 国产黄色在线观看 | 成人黄色在线 | 日日夜夜免费精品视频 | 国产成人精品一区二区 | 国产乱码精品1区2区3区 | 美女黄色在线观看 | 欧美性成人| 国产91久久精品一区二区 | 久久久久久中文字幕 | 久久精品网 | 涩涩导航 | 久久久av | 国色天香成人网 | 国产成人精品一区二区三区网站观看 | 一区二区三区福利视频 | 欧美a在线 | 日韩一区精品 | 免费国产一区二区视频 | 午夜精品一区 | 看a级黄色毛片 | 欧美一级毛片免费观看 | 久久久久久国产精品免费免费 | 亚洲色图网址 | 在线观看av网站永久 | 国产精品久久久久久久久久久久久 | 操一草 | 国产高清一二三区 |