找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 26623|回復(fù): 51
收起左側(cè)

Protues仿真stm32F103R6驅(qū)動(dòng)LCD1602(仿真圖+程序)

  [復(fù)制鏈接]
ID:165394 發(fā)表于 2018-7-30 14:12 | 顯示全部樓層 |閱讀模式
stm32F103R6仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

Protues仿真圖

Protues仿真圖


LCD1602的stm32驅(qū)動(dòng)程序:
  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 ;     //設(shè)置為開(kāi)漏輸出
  12.         GPIO_Init(LCD1602_GPIO_PORT,&LCD1602_GPIOStruct);
  13. }

  14. void LCD1602_WaitReady(void) //檢測(cè)忙狀態(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) //寫(xiě)指令
  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) //寫(xiě)數(shù)據(jù)
  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)  //由輸入的屏幕坐標(biāo)計(jì)算顯示RAM的地址
  54.         addr = 0x00 + x;  //第一行字符地址從0x00起始
  55.     else
  56.         addr = 0x40 + x;  //第二行字符地址從0x40起始
  57.     LCD1602_WriteCmd(addr|0x80);  //設(shè)置RAM地址
  58. }

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



  67. void LCD1602_Init(void)
  68. {
  69.           LCD1602_GPIO_Config();   //開(kāi)啟GPIO口
  70.     LCD1602_WriteCmd(0X38);  //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
  71.     LCD1602_WriteCmd(0x0C);  //顯示器開(kāi),光標(biāo)關(guān)閉
  72.     LCD1602_WriteCmd(0x06);  //文字不動(dòng),地址自動(dòng)+1
  73.     LCD1602_WriteCmd(0x01);  //清屏
  74. }
復(fù)制代碼

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


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:262075 發(fā)表于 2018-8-11 15:10 | 顯示全部樓層
經(jīng)典感謝樓主大神
回復(fù)

使用道具 舉報(bào)

ID:262075 發(fā)表于 2018-8-12 10:25 | 顯示全部樓層
很珍貴的資料,值得學(xué)習(xí),謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:385072 發(fā)表于 2018-8-27 17:59 | 顯示全部樓層
非常有借鑒作用,正在用Cube生成試試
回復(fù)

使用道具 舉報(bào)

ID:193869 發(fā)表于 2018-10-27 20:34 | 顯示全部樓層
怎么下不了???
回復(fù)

使用道具 舉報(bào)

ID:402264 發(fā)表于 2018-11-3 16:28 | 顯示全部樓層
這個(gè)資源很好,謝謝樓主分享.
回復(fù)

使用道具 舉報(bào)

ID:389751 發(fā)表于 2018-11-8 17:19 | 顯示全部樓層
謝謝樓主分享.
回復(fù)

使用道具 舉報(bào)

ID:435701 發(fā)表于 2018-11-29 14:09 | 顯示全部樓層
挺好的
回復(fù)

使用道具 舉報(bào)

ID:109393 發(fā)表于 2018-12-17 14:21 | 顯示全部樓層
很好的資源,學(xué)習(xí)一下

回復(fù)

使用道具 舉報(bào)

ID:384172 發(fā)表于 2018-12-17 16:52 | 顯示全部樓層
LZ,請(qǐng)問(wèn)如何打開(kāi)?
回復(fù)

使用道具 舉報(bào)

ID:384172 發(fā)表于 2018-12-17 16:54 | 顯示全部樓層
LZ,你是怎么用Protues打開(kāi)的?完全沒(méi)有DSN的后綴文件。
回復(fù)

使用道具 舉報(bào)

ID:384172 發(fā)表于 2018-12-17 16:57 | 顯示全部樓層
Protues打不開(kāi)啊
回復(fù)

使用道具 舉報(bào)

ID:384172 發(fā)表于 2018-12-18 13:32 | 顯示全部樓層
Protues8.6打開(kāi)了
回復(fù)

使用道具 舉報(bào)

ID:306028 發(fā)表于 2018-12-26 20:36 | 顯示全部樓層
如果該引腳的話怎么改那些地址呢,求求樓主舉例教教小白
回復(fù)

使用道具 舉報(bào)

ID:116584 發(fā)表于 2019-3-22 10:43 | 顯示全部樓層

stm32 都可以仿真啦,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

ID:481306 發(fā)表于 2019-3-22 17:21 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:220489 發(fā)表于 2019-3-28 13:54 | 顯示全部樓層
非常不錯(cuò),謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:501336 發(fā)表于 2019-3-31 14:52 | 顯示全部樓層
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

ID:508842 發(fā)表于 2019-4-17 15:30 | 顯示全部樓層
請(qǐng)問(wèn)樓主,為什么數(shù)據(jù)端設(shè)置為開(kāi)漏輸出而不是推挽輸出呢?
同時(shí),在仿真時(shí)我無(wú)論是用推挽輸出還是開(kāi)漏都會(huì)存在Controller received command whilst busy. [LCD1]這個(gè)提示,可是明明已經(jīng)設(shè)置了讀忙程序,不知是怎么回事
回復(fù)

使用道具 舉報(bào)

ID:513784 發(fā)表于 2019-4-21 08:47 | 顯示全部樓層
樓主大大 為什么我用proteus8.7 打不開(kāi)下載下來(lái)的仿真電路呢  謝謝
回復(fù)

使用道具 舉報(bào)

ID:513784 發(fā)表于 2019-4-21 08:57 | 顯示全部樓層
已經(jīng)可以打開(kāi)了 把下載下來(lái)的文件的名字的字符改為常用的漢字、字母、數(shù)字或其組合就可以了
回復(fù)

使用道具 舉報(bào)

ID:508842 發(fā)表于 2019-4-24 11:18 | 顯示全部樓層
itokoyt 發(fā)表于 2019-4-17 15:30
請(qǐng)問(wèn)樓主,為什么數(shù)據(jù)端設(shè)置為開(kāi)漏輸出而不是推挽輸出呢?
同時(shí),在仿真時(shí)我無(wú)論是用推挽輸出還是開(kāi) ...

已解決,是systick.h的問(wèn)題,改成了軟件延時(shí)while(x--)就好了,感覺(jué)可能是時(shí)鐘的問(wèn)題。。。(具體沒(méi)有去研究)
回復(fù)

使用道具 舉報(bào)

ID:526067 發(fā)表于 2019-5-2 18:17 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:302712 發(fā)表于 2019-6-16 09:58 | 顯示全部樓層
謝謝分享,學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:457981 發(fā)表于 2019-6-25 18:47 | 顯示全部樓層
值得借鑒
回復(fù)

使用道具 舉報(bào)

ID:160995 發(fā)表于 2019-7-25 19:29 | 顯示全部樓層
謝謝分享,學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:329516 發(fā)表于 2019-11-25 15:33 | 顯示全部樓層
好人平安!
回復(fù)

使用道具 舉報(bào)

ID:641608 發(fā)表于 2019-11-25 23:51 來(lái)自觸屏版 | 顯示全部樓層
雪中送炭
回復(fù)

使用道具 舉報(bào)

ID:686311 發(fā)表于 2020-2-18 13:11 | 顯示全部樓層
謝謝樓主,學(xué)習(xí)中!
回復(fù)

使用道具 舉報(bào)

ID:695561 發(fā)表于 2020-2-20 14:00 | 顯示全部樓層
經(jīng)典感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:714255 發(fā)表于 2020-3-23 18:15 | 顯示全部樓層
感謝分享呀。。
回復(fù)

使用道具 舉報(bào)

ID:566588 發(fā)表于 2020-3-29 11:25 | 顯示全部樓層
感謝樓主的分享,對(duì)小白很有參考意義
回復(fù)

使用道具 舉報(bào)

ID:730321 發(fā)表于 2020-4-16 09:47 | 顯示全部樓層
請(qǐng)問(wèn)能否象51那樣,protues和keil聯(lián)調(diào)?
回復(fù)

使用道具 舉報(bào)

ID:685868 發(fā)表于 2020-4-22 10:39 | 顯示全部樓層
我正在學(xué)習(xí)STM32,下載下來(lái)學(xué)習(xí)學(xué)習(xí),謝謝樓主!
回復(fù)

使用道具 舉報(bào)

ID:734107 發(fā)表于 2020-4-27 10:05 | 顯示全部樓層
chenntu 發(fā)表于 2020-4-16 09:47
請(qǐng)問(wèn)能否象51那樣,protues和keil聯(lián)調(diào)?

可以的 生成hex文件即可
回復(fù)

使用道具 舉報(bào)

ID:716092 發(fā)表于 2020-4-27 14:55 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:507124 發(fā)表于 2020-4-29 00:24 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:427575 發(fā)表于 2020-5-14 00:44 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:746203 發(fā)表于 2020-5-17 08:22 | 顯示全部樓層
很好的學(xué)習(xí)資料
回復(fù)

使用道具 舉報(bào)

ID:293247 發(fā)表于 2020-5-25 13:32 | 顯示全部樓層
很好用的程序和仿真,謝謝樓主
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表