找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Protues仿真stm32F103R6驅動LCD1602(仿真圖+程序)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:165394 發(fā)表于 2018-7-30 14:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
stm32F103R6仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


LCD1602的stm32驅動程序:
  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|DB6 |  DB7 ;     //設置為開漏輸出
  12.         GPIO_Init(LCD1602_GPIO_PORT,&LCD1602_GPIOStruct);
  13. }

  14. void LCD1602_WaitReady(void) //檢測忙狀態(tài)
  15. {
  16.         uint8_t sta;

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

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

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

  50. void LCD1602_SetCursor(uint8_t x, uint8_t y)
  51. {
  52.     uint8_t addr;

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

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



  67. void LCD1602_Init(void)
  68. {
  69.           LCD1602_GPIO_Config();   //開啟GPIO口
  70.     LCD1602_WriteCmd(0X38);  //16*2顯示,5*7點陣,8位數據接口
  71.     LCD1602_WriteCmd(0x0C);  //顯示器開,光標關閉
  72.     LCD1602_WriteCmd(0x06);  //文字不動,地址自動+1
  73.     LCD1602_WriteCmd(0x01);  //清屏
  74. }
復制代碼

全部資料51hei下載地址:
STM32-LCD1602.7z (228.69 KB, 下載次數: 1400)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:262075 發(fā)表于 2018-8-11 15:10 | 只看該作者
經典感謝樓主大神
回復

使用道具 舉報

板凳
ID:262075 發(fā)表于 2018-8-12 10:25 | 只看該作者
很珍貴的資料,值得學習,謝謝樓主
回復

使用道具 舉報

地板
ID:385072 發(fā)表于 2018-8-27 17:59 | 只看該作者
非常有借鑒作用,正在用Cube生成試試
回復

使用道具 舉報

5#
ID:193869 發(fā)表于 2018-10-27 20:34 | 只看該作者
怎么下不了???
回復

使用道具 舉報

6#
ID:402264 發(fā)表于 2018-11-3 16:28 | 只看該作者
這個資源很好,謝謝樓主分享.
回復

使用道具 舉報

7#
ID:389751 發(fā)表于 2018-11-8 17:19 | 只看該作者
謝謝樓主分享.
回復

使用道具 舉報

8#
ID:435701 發(fā)表于 2018-11-29 14:09 | 只看該作者
挺好的
回復

使用道具 舉報

9#
ID:109393 發(fā)表于 2018-12-17 14:21 | 只看該作者
很好的資源,學習一下

回復

使用道具 舉報

10#
ID:384172 發(fā)表于 2018-12-17 16:52 | 只看該作者
LZ,請問如何打開?
回復

使用道具 舉報

11#
ID:384172 發(fā)表于 2018-12-17 16:54 | 只看該作者
LZ,你是怎么用Protues打開的?完全沒有DSN的后綴文件。
回復

使用道具 舉報

12#
ID:384172 發(fā)表于 2018-12-17 16:57 | 只看該作者
Protues打不開啊
回復

使用道具 舉報

13#
ID:384172 發(fā)表于 2018-12-18 13:32 | 只看該作者
Protues8.6打開了
回復

使用道具 舉報

14#
ID:306028 發(fā)表于 2018-12-26 20:36 | 只看該作者
如果該引腳的話怎么改那些地址呢,求求樓主舉例教教小白
回復

使用道具 舉報

15#
ID:116584 發(fā)表于 2019-3-22 10:43 | 只看該作者

stm32 都可以仿真啦,學習一下
回復

使用道具 舉報

16#
ID:481306 發(fā)表于 2019-3-22 17:21 | 只看該作者
感謝分享
回復

使用道具 舉報

17#
ID:220489 發(fā)表于 2019-3-28 13:54 | 只看該作者
非常不錯,謝謝分享
回復

使用道具 舉報

18#
ID:501336 發(fā)表于 2019-3-31 14:52 | 只看該作者
學習一下
回復

使用道具 舉報

19#
ID:508842 發(fā)表于 2019-4-17 15:30 | 只看該作者
請問樓主,為什么數據端設置為開漏輸出而不是推挽輸出呢
同時,在仿真時我無論是用推挽輸出還是開漏都會存在Controller received command whilst busy. [LCD1]這個提示,可是明明已經設置了讀忙程序,不知是怎么回事
回復

使用道具 舉報

20#
ID:513784 發(fā)表于 2019-4-21 08:47 | 只看該作者
樓主大大 為什么我用proteus8.7 打不開下載下來的仿真電路呢  謝謝
回復

使用道具 舉報

21#
ID:513784 發(fā)表于 2019-4-21 08:57 | 只看該作者
已經可以打開了 把下載下來的文件的名字的字符改為常用的漢字、字母、數字或其組合就可以了
回復

使用道具 舉報

22#
ID:508842 發(fā)表于 2019-4-24 11:18 | 只看該作者
itokoyt 發(fā)表于 2019-4-17 15:30
請問樓主,為什么數據端設置為開漏輸出而不是推挽輸出呢?
同時,在仿真時我無論是用推挽輸出還是開 ...

已解決,是systick.h的問題,改成了軟件延時while(x--)就好了,感覺可能是時鐘的問題。。。(具體沒有去研究)
回復

使用道具 舉報

23#
ID:526067 發(fā)表于 2019-5-2 18:17 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

24#
ID:302712 發(fā)表于 2019-6-16 09:58 | 只看該作者
謝謝分享,學習中
回復

使用道具 舉報

25#
ID:457981 發(fā)表于 2019-6-25 18:47 | 只看該作者
值得借鑒
回復

使用道具 舉報

26#
ID:160995 發(fā)表于 2019-7-25 19:29 | 只看該作者
謝謝分享,學習中
回復

使用道具 舉報

27#
ID:329516 發(fā)表于 2019-11-25 15:33 | 只看該作者
好人平安!
回復

使用道具 舉報

28#
ID:641608 發(fā)表于 2019-11-25 23:51 來自手機 | 只看該作者
雪中送炭
回復

使用道具 舉報

29#
ID:686311 發(fā)表于 2020-2-18 13:11 | 只看該作者
謝謝樓主,學習中!
回復

使用道具 舉報

30#
ID:695561 發(fā)表于 2020-2-20 14:00 | 只看該作者
經典感謝樓主
回復

使用道具 舉報

31#
ID:714255 發(fā)表于 2020-3-23 18:15 | 只看該作者
感謝分享呀。。
回復

使用道具 舉報

32#
ID:566588 發(fā)表于 2020-3-29 11:25 | 只看該作者
感謝樓主的分享,對小白很有參考意義
回復

使用道具 舉報

33#
ID:730321 發(fā)表于 2020-4-16 09:47 | 只看該作者
請問能否象51那樣,protues和keil聯(lián)調?
回復

使用道具 舉報

34#
ID:685868 發(fā)表于 2020-4-22 10:39 | 只看該作者
我正在學習STM32,下載下來學習學習,謝謝樓主!
回復

使用道具 舉報

35#
ID:734107 發(fā)表于 2020-4-27 10:05 | 只看該作者
chenntu 發(fā)表于 2020-4-16 09:47
請問能否象51那樣,protues和keil聯(lián)調?

可以的 生成hex文件即可
回復

使用道具 舉報

36#
ID:716092 發(fā)表于 2020-4-27 14:55 | 只看該作者
感謝樓主
回復

使用道具 舉報

37#
ID:507124 發(fā)表于 2020-4-29 00:24 | 只看該作者
感謝樓主
回復

使用道具 舉報

38#
ID:427575 發(fā)表于 2020-5-14 00:44 | 只看該作者
謝謝樓主
回復

使用道具 舉報

39#
ID:746203 發(fā)表于 2020-5-17 08:22 | 只看該作者
很好的學習資料
回復

使用道具 舉報

40#
ID:293247 發(fā)表于 2020-5-25 13:32 | 只看該作者
很好用的程序和仿真,謝謝樓主
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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