日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

发一个自己写的2440驱动1602的资料(电路+代码)

發(fā)布時(shí)間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 发一个自己写的2440驱动1602的资料(电路+代码) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
上個(gè)星期把MINI2440板上的富余數(shù)據(jù)線引了出來,看著以前丟下的1602突然有了想用ARM9驅(qū)動它的沖動,于是就開始干了。
代碼是從以前剛學(xué)C51的時(shí)候改的,呵呵,看見以前寫的代碼真覺得很爛,現(xiàn)在已經(jīng)整理好了。

雖說有點(diǎn)牛刀殺雞的味道,但驅(qū)動起來真的費(fèi)了不少勁。如果有褲子穿就好了 ^_^

驅(qū)動方式:2440+HC595+LCD1602


電路圖:

電路圖?(原文件名:1602.jpg)?
全家福

全家福?(原文件名:moto_0009.jpg)?




LCD1602.H??頭文件內(nèi)容




#ifndef??__LCD1602_H__
#define??__LCD1602_H__

#include "./include/gpio.h"
#include "./include/def.h"
#include "./include/timer.h"


//------- 驅(qū)動方式 -----------//
#define? ? IO_WAY? ? ? ? ? ? ? ?? ?0? ? ? ? ? ? ? ???//模擬IO
#define? ? SPI_WAY? ? ? ? ? ? ? ?? ?1? ? ? ? ? ? ? ???//SPI

#define? ? LCDCTL_WAY? ? SPI_WAY? ? ? ?? ?? ?? ?//使用SPI驅(qū)動



//------- 控制端口與控制引腳 ------//
#define? ? LCD1602_CTL_PORT? ? rGPFCON? ? ? ? ? ? ? ? ? ? ? ? //GPF 端口

#define? ? LCD1602_RS??GPFPin0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //RS引腳
#define? ? LCD1602_RW??GPFPin2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //RW引腳
#define? ? LCD1602_E? ?GPFPin4? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //EN引腳

//------- 數(shù)據(jù)端口與數(shù)據(jù)引腳 ------//? ? ? ? (使用74HC595)
#define? ? LCD1602_DATA_PORT? ? rGPGCON? ? ? ? ? ? ? ? ? ? ? ? //GPG 端口
#define? ? HC595_ST? ? GPGPin5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //??SPI1MISO 引腳
#define? ? HC595_SH? ? GPGPin7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //??SPI1CLK 引腳
#define? ? HC595_Ds? ? GPGPin6? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //??SPI1MOSI 引腳

#define? ? SPI1Baud? ? ? ?? ? 300000? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 設(shè)置波特率為300 khz? ? ? ?? ?(PCLK=50666666)


//-------- 自制字符 ---------
#define? ? SELF_SYMBOL? ? ? ? ? ? ? ?? ?1? ? ? ? ? ? ? ? ? ? ? ? //??使能自制字符顯示


#if SELF_SYMBOL
extern const U8 CGTAB[8][8];
#endif


//----- 延時(shí)函數(shù) ----------//
#define? ?delay_ms(x)? ?TimerDelay(1000*x)
#define? ?delay_us(x)? ?TimerDelay(1*x)


//--------- 主函數(shù) ----------//
void LCD1602_init(void);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //1602初始化(帶清屏)
void LCD1602_Clear(void);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //1602清屏
void LCD1602_putchar(U8 number);? ? ? ? ? ? ? ? ? ? ? ? //顯示字符
void LCD1602_putcharXY(U8 number,U8 x,U8 y);? ?? ?? ?? ?//在指定位置顯示字符
void LCD1602_putstring(U8 *p);? ? ? ? ? ? ? ? ? ? ? ? //顯示字符串
void LCD1602_putstringXY(U8 *p,U8 x,U8 y);? ?? ?? ?? ???//在指定位置顯示字符串
#if SELF_SYMBOL
void LCD1602WriteRAM(U8 *Data,U8 tab_N);
#endif



//--------- 子函數(shù) ----------//
void LCD1602Pin_init(void);
#if LCDCTL_WAY==SPI_WAY
void SPI1SendData(U8 Data);
#else
void??HC595SendData(U8 data);
#endif
void LCD1602WriteCMD(U8 CMD);
void LCD1602WriteDATA(U8 W_DATA);
void LCD1602SetPoint(U8 x,U8 y);



#endif? ? ? ? // __LCD1602_H__



代碼與原理圖ourdev_513387.rar(文件大小:298K)?(原文件名:Up.rar)
收藏0

總結(jié)

以上是生活随笔為你收集整理的发一个自己写的2440驱动1602的资料(电路+代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。