|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
TFT 2.8寸 ILI9341 C51单片机综合测试程序 适合小容量ROM单片机
, T2 N% L8 [3 l( j0 I$ I& K
" ~2 Q- n+ v5 H$ ?( z: K
, Z5 {% v8 m: z6 l4 B下面是买的模块的实物图(只为学习,绝非广告),提供C51 综合测试程序 ILI9341 精简测试 适合小容量ROM单片机)
6 r& }$ F. I* S0 ?! r 5 M2 j' N* ]) _0 S
* R/ }7 a$ `1 e4 a$ t 6 C; t% f$ P. \* j/ ?1 p8 r
9 \4 ^1 l& [& I4 Z0 g \+ |
2 \' u, y7 i% l3 c+ Z7 j1 D" v0 y
5 |1 L8 a. p9 w$ r3 t7 ^- m
" Q6 N" g, A( }
! A9 A! [- H8 g) \; z( d% \ p# P& Y
3 @* x8 p( U, }3 H' R, T% V4 R/ Y' a J7 i( O1 S, F
9 A3 y( z( R) _) l$ C
6 a& H% C. V8 [& ?# |5 L( v
% d2 E: Y3 z2 w
, j* J b% z4 ?2 j2 e8 b8 P5 v
) O2 o1 l) I% Y9 ^1 I7 k! `$ P单片机源程序:( z1 F9 _1 y0 s- V
#include "sys.h"+ ]1 {5 V4 Y- ?7 d
#include "lcd.h"
+ ?+ ^8 b% r7 K! L
% m6 @: q. x) A( o$ ~+ B/ |. M//////////////////////////////////////////////////////////////////////////////////
# ]- v! f( N4 [$ a1 L. W//本程序只供学习使用,未经作者许可,不得用于其它任何用途' J% c4 y7 q5 b
//测试硬件:单片机STC12LE5A60S2,晶振30M 单片机工作电压3.3V
" B% S0 q7 F: l; B- p. G3 E/**************************************************************************************2 f4 Z$ r2 E. @5 y! o
//=======================================液晶屏数据线接线==========================================//, X* M0 _5 e; D8 z3 @
//P2组高8位数据口,DB8-DB15依次连接P2^0-P2^7;8位模式下只使用高8位
- v: f. k' x% A, w$ Q2 Q/ g#define LCD_DataPortH P2
/ D3 ^7 Y7 t4 p e7 `( u7 ^//P0组低8位数据口,DB0-DB7依次连接P0^0-P0^7;请确认P0口已经上拉10K电阻,不宜太小,最小4.7K,推荐10K.
5 o+ Z! m9 b Q2 V+ a! i#define LCD_DataPortL P0
" k8 L& b' E+ C& Z8 _$ x, q2 I//=======================================液晶屏控制线接线==========================================//; g' R' K- }4 H8 K6 F! _3 x% {
CS=P1^3; //片选
0 |6 D L: w" d6 L9 O" T# }8 rRS=P1^2; //数据/命令切换9 J% P( }) D* n1 p, Z h9 |
WR=P1^1; //写控制
" O. e: _ p6 ~3 a4 f6 URD=P1^0; //读控制- |9 _: b: g9 r2 [, s
RESET=P3^3; //复位 & x; [1 J# @, l
LCD_BL=P3^2; //背光控制8 W% c4 ?& g, X/ v2 P& C8 P. t
//=========================================触摸屏触接线=========================================//. |+ y+ p! n8 r& w: ]
//不使用触摸或者模块本身不带触摸,则可不连接4 Q" w$ Y+ f) \, @, t% w
DCLK = P3^6; //触摸屏SPI总线时钟信号接P3.6
9 t( K. o; b% d9 u' g+ L% s; D; TTCS = P3^7; //触摸片选TCS接P3.79 H* i" k0 D0 ]# h) H2 u2 c
DIN = P3^4; //MOSI接P3.4
+ b1 ^7 C4 [8 w0 s' @9 d7 iDOUT = P3^5; //MISO接P3.5 ; g) V- ]/ \5 \, {8 _$ J
Penirq = P4^0; //PEN引脚接P4.0,如单片机无P4组,请自行更改其他可用IO并修改代码定义. e7 Z2 _; _! D) u H* g% B
**************************************************************************************************/ 1 S' p7 U8 A2 Y( S( n( e! N% P2 e
9 ]* Z; \+ J- Q7 z
//STC单片机IO推挽输出设置定义) s) h) B7 G8 {( D
//其他普通C51单片机无此配置请屏蔽下面这条语句1 ] ~7 f3 Z3 R7 N' ?3 b( w5 x6 l+ \; t
sfr P3M1 = 0xB1; //P3M1.n,P3M0.n =00--->Standard, 01--->push-pull
& E; [* i! H" ]# T# J1 `sfr P3M0 = 0xB2; // =10--->pure input, 11--->open drain: a& P. r& E) r8 P4 a% M; H8 M! u l
% a, g. G" x8 P+ Q' u& u/ p//主函数3 ~$ P. H* c5 D6 A1 E6 V
void main(void)
6 V) k6 O4 j5 h5 ^8 ~) ?$ A6 T" ]{
l. i) W: Y# v% S6 P& _0 _6 w" A+ k
//设置STC_12LE5A60S2单片机的P3.2为推挽输出,用于控制背光亮灭
& ^4 G. F8 }/ _& t* A //其他普通C51单片机无此配置请屏蔽下面这条语句3 q! }, ?% b+ o; I v& }
P3M1 &= ~(1<<2),P3M0 |= (1<<2); 7 O m5 ]+ H2 s9 A8 z
, I$ ^2 i' b8 | //液晶屏初始化, f6 m2 |/ _( j( l6 u: [
LCD_Init();
* J* f M, _8 K; ?# }$ w" K7 R& \# I9 s1 D3 H' N
//循环进行各项测试
7 q+ m3 E; V+ p0 r3 X% y2 ? while(1)
: O8 Z! {/ `* @6 V o1 G { 6 j" |! Z+ G8 G+ C t3 q
LCD_Clear(RED);delay_ms(1000); delay_ms(1000); & q" V# \; I& T' r, c
LCD_Clear(GREEN);delay_ms(1000); delay_ms(1000); 5 C( ^/ a- M% b& N4 G6 l
1 S W$ |6 D$ o3 A; U
…………限于本文篇幅 余下代码请从论坛下载附件…………" _4 _8 c8 D4 d
- m: \3 K5 N. g% t( {( \4 t4 R# n0 H7 L
$ v8 [! R* Z- M$ Q0 f) `
! o' `; T: b$ Z, A+ e
/ H0 e L( Y# z- t& Z" G( a- m' s, T' q
* V: z6 S( W y4 x$ v L |
|