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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

分享基于STM32F103實現驅動LCD1602的代碼

  [復制鏈接]
跳轉到指定樓層
樓主
注:
     此貼僅供提供項目(以正點原子的框架撰寫)(已測試),不提供LCD1602的資料(資料可以網上搜索,很容易就找到),如有對代碼有任何問題可以評論,我會不定期回復!


此貼所提供文件僅供學習,謝謝。

單片機源程序如下:
  1. #include "lcd1602.h"

  2. void GPIO_Configuration(void)
  3. {   
  4.         GPIO_InitTypeDef  GPIO_InitStructure;
  5.        
  6.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOF, ENABLE);         //時鐘使能       
  7.        
  8.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4;  
  9.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  11.   GPIO_Init(GPIOC, &GPIO_InitStructure);
  12.        
  13.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;  
  14.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
  15.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  16.   GPIO_Init(GPIOF, &GPIO_InitStructure);
  17. }
  18.        
  19. void LCD1602_Wait_Ready(void) //判忙
  20. {
  21.         u8 sta;       
  22.         //DATAOUT(0xff);       
  23.   LCD_RS_Clr();
  24.         LCD_RW_Set();
  25.         do
  26.         {               
  27.     LCD_EN_Set();       
  28.           delay_ms(5);
  29.           sta = GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_7);       
  30.           LCD_EN_Clr();       
  31.         }while(sta & 0x80);
  32. }

  33. void LCD1602_Write_Cmd(uint8_t cmd) //寫入指令
  34. {
  35.         LCD1602_Wait_Ready();
  36.         LCD_RS_Clr();       
  37.         LCD_RW_Clr();
  38.         DATAOUT(cmd);       
  39.         LCD_EN_Set();
  40.         LCD_EN_Clr();
  41. }
  42.        
  43. void LCD1602_Write_Dat(uint8_t dat) //寫入數據
  44. {       
  45.   LCD1602_Wait_Ready();       
  46.   LCD_RS_Set();
  47.         LCD_RW_Clr();       
  48.   DATAOUT(dat);
  49.         LCD_EN_Set();
  50.         LCD_EN_Clr();
  51. }

  52. void LCD1602_ClearScreen(void) //清屏
  53. {       
  54.   LCD1602_Write_Cmd(Cmd_Clear);
  55. }

  56. void LCD1602_Set_Cursor(uint8_t x, uint8_t y) //設置光標,字符顯示的地址(x是列,y是行)
  57. {       
  58.   u8 addr; //地址變量       
  59.         if (y == 0)       
  60.         {
  61.           addr = 0x00 + x;
  62.         }
  63.         else
  64.         {
  65.                 addr = 0x40 + x;
  66.         }
  67.         LCD1602_Write_Cmd(addr | 0x80); //這里|上0x80是因為在寫入顯示地址時LCD的D7位必須恒定為1
  68. }

  69. void LCD1602_Show_Str(uint8_t x, uint8_t y, uint8_t *str)
  70. {       
  71.   LCD1602_Set_Cursor(x, y);
  72.         while(*str != '\0')
  73.         {               
  74.     LCD1602_Write_Dat(*str++);
  75.         }
  76. }

  77. void LCD1602_Init(void)
  78. {
  79.                 GPIO_Configuration();
  80.                 LCD1602_Write_Cmd(0x38);                //LCD初始化設置(下同)
  81.                 LCD1602_Write_Cmd(0x0c);               
  82.                 LCD1602_Write_Cmd(0x06);   
  83.                 LCD1602_Write_Cmd(0x01);   
  84. }
復制代碼

代碼見附件 Roy_STM32F103_LCD1602.7z (177.22 KB, 下載次數: 213)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:705222 發表于 2020-3-30 17:31 來自觸屏版 | 只看該作者
我的為什么亂碼了,和v0腳接地有關嗎

15855606355140.7816145611369157.jpg (739.54 KB, 下載次數: 64)

15855606355140.7816145611369157.jpg
回復

使用道具 舉報

板凳
ID:707140 發表于 2020-3-31 18:23 | 只看該作者
小新呀 發表于 2020-3-30 17:31
我的為什么亂碼了,和v0腳接地有關嗎

你是f103c8t6的嘛????
回復

使用道具 舉報

地板
ID:251662 發表于 2020-8-7 14:03 | 只看該作者
你好樓主,這個 D0-D7為什么沒有宏定義,不能更改IO嗎??
回復

使用道具 舉報

5#
ID:251662 發表于 2020-8-7 14:05 | 只看該作者
?????D0-D7宏定義呢?????
回復

使用道具 舉報

6#
ID:251662 發表于 2020-8-7 14:08 | 只看該作者
huzheng11 發表于 2020-3-31 18:23
你是f103c8t6的嘛????

你試過了嗎。我看了一下程序D0-D7沒有定義,要瘋了
回復

使用道具 舉報

7#
ID:695711 發表于 2020-11-2 17:48 | 只看該作者
海子的孩子333 發表于 2020-8-7 14:08
你試過了嗎。我看了一下程序D0-D7沒有定義,要瘋了

抱歉,學業繁忙,一直沒有時間來論壇,D0-D7確實沒有宏定義,但也確實有,只是因為我接的是GPIOF的0-7腳,所以并沒有用宏定義單個進行定義,而是用了GPIO_Write()這個庫函數直接對GPIOF0-7腳進行操作,你可以看一下LCD1602.h 的頭文件里有一個宏定義:#define        DATAOUT(x)          GPIO_Write(GPIOF, x) //對D0-D7進行操作

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:831898 發表于 2020-11-2 21:32 | 只看該作者
報錯,C程序里面怎么有匯編語言

er2.png (41.89 KB, 下載次數: 57)

er2.png
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费在线视频 | 97超碰资源| 欧美成人小视频 | 性色av蜜臀av浪潮av老女人 | 欧美做爰xxxⅹ性欧美大片 | 日韩成人在线观看视频 | 深夜福利视频在线观看 | 91色国产 | 国产精品免费在线 | 高清免费视频日本 | 狠狠干天天干 | 久久久久久中文字幕 | 久久伊人久久 | 伊人久久大 | 美日韩一区二区三区 | 亚洲一区二区免费视频 | 一区在线观看视频 | www.日本高清 | 秘密爱大尺度做爰呻吟 | 一区免费视频 | 久久精品1 | 一级真人毛片 | 久久福利社 | 亚洲小视频在线观看 | 日本一区二区不卡视频 | 91av在线免费观看 | 午夜影院在线 | 亚洲另类自拍 | 一级特黄妇女高潮 | 久色成人 | 亚洲精品欧美 | 久久久久久久免费视频 | 能看毛片的网站 | 国产精品成人免费视频 | 一本色道久久综合亚洲精品小说 | 欧美日韩少妇 | 亚洲在线免费视频 | 中文字幕视频 | 日日拍夜夜拍 | 一级免费av | 成人在线免费视频观看 |