|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
TFT 2.8寸 ILI9341 C51单片机综合测试程序 适合小容量ROM单片机
/ g0 Y" c6 I7 y; C$ q
7 c; A9 y. P# q6 e2 o
3 t$ x9 [# _3 U9 @5 p( x* I5 w# H5 B下面是买的模块的实物图(只为学习,绝非广告),提供C51 综合测试程序 ILI9341 精简测试 适合小容量ROM单片机)
! `- B9 @$ z: H$ d& U! r 3 T$ l+ D' v. p5 O
+ ]1 {2 W! X& Q4 e3 W1 L( e3 W) B 8 G: u; w% X, n2 x" a
/ H( H8 q: B& T) v7 h5 x2 b
/ E" p# X+ }; n7 n1 Q! g& z; o* x
8 Z, b- H+ i- Q. C$ K" A
# `3 e5 f- g/ Z; p( I% w; p9 ], c
$ O4 W& Q3 c4 I+ H- b/ j: Q
9 s6 x6 u9 e! n 4 J9 C6 z, I# ~, H! A
2 J7 g& Q! B7 R
, {% p7 w8 ]* E% O+ D u
( a6 ^1 Q1 X% r3 v单片机源程序:
3 s2 a) `: D6 P$ J0 a L! L#include "sys.h"( p5 v* P/ P+ a- y3 z
#include "lcd.h". t! o7 O0 t0 X, c
* C# q, z( X2 |$ {5 R//////////////////////////////////////////////////////////////////////////////////
0 q7 H0 ]0 |5 s. O" p//本程序只供学习使用,未经作者许可,不得用于其它任何用途8 g& ?! F+ Z5 d7 ~: p) g
//测试硬件:单片机STC12LE5A60S2,晶振30M 单片机工作电压3.3V
2 P: _) ]8 P; `+ r; d/**************************************************************************************
# h5 s( w% M' c4 s! x//=======================================液晶屏数据线接线==========================================//# r: e3 H/ d0 E! L; U
//P2组高8位数据口,DB8-DB15依次连接P2^0-P2^7;8位模式下只使用高8位
0 K2 S; }6 b3 ?: p#define LCD_DataPortH P2 1 a+ h* l# b8 _8 q+ I
//P0组低8位数据口,DB0-DB7依次连接P0^0-P0^7;请确认P0口已经上拉10K电阻,不宜太小,最小4.7K,推荐10K. ) }7 N" u- k8 S
#define LCD_DataPortL P0
9 X# I: H3 {( j; L3 g0 j//=======================================液晶屏控制线接线==========================================//* }3 k" k5 ^" U
CS=P1^3; //片选
. y: |; t% l+ L# Z5 I. fRS=P1^2; //数据/命令切换6 {" H, { d& }; H2 _3 z8 z! \
WR=P1^1; //写控制/ x( b. G) p( {; F; R
RD=P1^0; //读控制* m, P8 x# q3 b! P5 e$ ]; G0 t4 |3 U
RESET=P3^3; //复位 % g4 e+ K, _+ Y8 a
LCD_BL=P3^2; //背光控制( G! Q6 |( W' [
//=========================================触摸屏触接线=========================================//' C8 M2 e. R8 a. |- r a' j6 _+ U
//不使用触摸或者模块本身不带触摸,则可不连接
' H/ o' @7 z, y1 H; N) BDCLK = P3^6; //触摸屏SPI总线时钟信号接P3.6 2 a- \3 s0 y8 J) e: P. Q# W
TCS = P3^7; //触摸片选TCS接P3.73 `' `+ M4 D7 ^3 B. M* {! B$ c$ r' O7 t$ z
DIN = P3^4; //MOSI接P3.4
0 t, p& ]5 C5 sDOUT = P3^5; //MISO接P3.5
' V1 L+ p! A& a& n% V$ {( s$ H) yPenirq = P4^0; //PEN引脚接P4.0,如单片机无P4组,请自行更改其他可用IO并修改代码定义
/ w7 _# L9 D* x; p8 Y3 A**************************************************************************************************/ & R% e# n0 W* Z4 o6 |& d. D$ ?
! n4 T2 }8 X6 d% ^+ o" a' x0 @7 B
//STC单片机IO推挽输出设置定义$ v" K* S7 ?: a+ ]. I, c
//其他普通C51单片机无此配置请屏蔽下面这条语句7 k% |( l% {8 P# n5 A; o+ t. Z& M2 \
sfr P3M1 = 0xB1; //P3M1.n,P3M0.n =00--->Standard, 01--->push-pull$ S' n ]# @! A2 ^% J
sfr P3M0 = 0xB2; // =10--->pure input, 11--->open drain$ {# e( p3 I0 m+ `0 V7 J& r
( v' N4 S: O; F& B7 t# U! K//主函数" _% m: c4 l- Q: u7 x
void main(void)
8 i H: T. p0 G) T{
% c% L7 q' Q! Q' s$ U* S
L% t, G& v# s4 Y' h3 M1 i //设置STC_12LE5A60S2单片机的P3.2为推挽输出,用于控制背光亮灭$ [# M, W4 Q2 b1 Z$ F; o1 ^
//其他普通C51单片机无此配置请屏蔽下面这条语句% d) ?* D+ [9 ]$ t+ C0 ^% K
P3M1 &= ~(1<<2),P3M0 |= (1<<2);
, g8 \% S& G! H1 b6 C- }0 O% e0 P. O
0 P! I; j2 C; `3 ]6 R9 ~. r# M //液晶屏初始化
4 S& I) r* ^* o {0 e) k U! ~ LCD_Init();
6 P+ J7 @5 |1 L
" ~% ]5 X6 q) R ]$ L //循环进行各项测试
$ J0 {1 C2 X7 a: W# C2 e2 Q while(1)
g, v) g) Y B7 V6 I6 g ^ { ! n# y+ Z* @+ H1 L! T( h/ p
LCD_Clear(RED);delay_ms(1000); delay_ms(1000); ' r a% r( d0 R" R+ M2 `
LCD_Clear(GREEN);delay_ms(1000); delay_ms(1000);
* F Y' p& f1 s- ?$ J# K
' Q% m+ I' K; B…………限于本文篇幅 余下代码请从论坛下载附件…………
) V6 O2 w- G# `2 W, M* |" d" c8 u3 O6 L
% U; p1 v5 S/ W7 [4 G, Q& M- g& J# N" t
6 Q- P7 i, i# g4 I* s$ W2 A
4 s# ^! W) F9 |: G# I$ a% q( `) ?8 P j
|
|