找回密码
 注册
关于网站域名变更的通知
查看: 519|回复: 1
打印 上一主题 下一主题

ATmega16L-6 1602

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-23 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ATmega16L-6 16027 a. J8 V0 J5 _1 Z3 o0 Z! A
//1602液晶相关I/O设置; ]& z0 W5 v; R* H0 q- ?
#define Rs  PORTC4_bit
1 k8 S+ x6 \( @/ L2 H2 }' g#define RW  PORTC5_bit; W5 t7 N; s- x( T% v5 `# p+ W
#define E   PORTC6_bit$ W3 `/ k% T/ k  C: c
#define LCDDAT PORTD0 r: @9 f0 v2 i: ~" W# g
: \/ `/ `; M1 L5 R3 k, X6 U) ^
#define iDat    1                //数据标志6 d& S( h% _0 n! x  R/ K1 M" Q
#define iCmd    0                //指令标志# T* M; z  K0 ]8 `! H; b
% }5 B. e. d+ z& l9 Y8 J3 M$ x
//DatCmd==0--1602写命令函数
$ H5 N+ X1 C9 B5 }//DatCmd==1--1602写数据函数
) m! q0 O; i! B1 a+ G3 u3 ovoid LCD1602_Writebyte(unsigned char DatCmd,unsigned char dataByte). \: Y" ]% {) A
{- W6 {- V) G& u! X3 y! v1 m9 H
        if (DatCmd == iCmd)                //指令操作
; e( c9 l, \: O5 ^  Q$ g                Rs=0;               //设置该字节数据为控制命令
7 c' I- K! Z) Q4 Y4 R5 Q! q2 c        else
2 i! x% J7 R0 u9 M( F                Rs=1;                   //设置该字节数据为数据
0 J# S) r+ R/ M) v  `5 m( S; T/ `6 g: X8 z% G
        RW=0;                //选择写状态
4 g4 ]( i" a4 s8 R9 i4 ]        LCDDAT=dataByte;        //将命令字通过RD口送至DB) y) I. s$ _8 n" m6 ]2 T
        E=1;                 //E高电平将命令字写入1602液晶
) F" @5 ?" h* J    delay_us(850);, [* y. d( a. @2 L' I
        E=0;                 //写完以后,恢复E的电平
6 @- C1 C' j9 F+ j# e( p9 B}- R: N* {+ Y& Q$ X4 c& R

! X6 z# t4 e' W: F0 L8 c1 R$ D5 p2 Z//1602液晶显示地址写函数
, @+ Q) D% y  fvoid LCD1602_GotoXY(unsigned char x,unsigned char y). m# F/ w  I8 g8 l0 s
{
) ]9 D7 L2 `' M& C: R        x&=0x0f;             //列地址限制在0-15间8 D" o/ N* P' Q7 ^8 }3 v
        y&=0x01;             //行地址限制在0-1间4 o% D( r. O6 T$ Q- e' s  F
        if(y==1)             //如果是第2行9 K# e, n4 j0 ], i
                LCD1602_Writebyte(iCmd,(x+0x40)|0x80); //将列地址写入6 @0 w- V: L1 V( R: ^# N9 I$ |) G
        else                 //如果是第1行
1 I- r3 w; n) Y- G# e. I                LCD1602_Writebyte(iCmd,x|0x80);        //将列地址写入. K2 L. ^8 I+ k' F! h
}: p" O# U7 l; g; ^) S
& c( l0 h$ o& X: j! o" A0 q& n! G
//1602液晶初始化函数
  v1 Q  H% e1 evoid LCD1602_init(void)- `* l! ?3 [. a" D
{6 A* L" f' Z+ y( _( y
    delay_ms(15);
9 i) @5 c6 X' A, p0 L  q    LCD1602_Writebyte(iCmd,0x38); //8位数据总线,两行显示模式,5*7点阵显示4 F; _- |7 E1 j
    delay_ms(5);
% ?( V: [" b  o/ T: C    LCD1602_Writebyte(iCmd,0x38); //8位数据总线,两行显示模式,5*7点阵显示
7 o7 ^9 v% S9 w. ~    delay_ms(5);
" L' l" V9 K, c  S    LCD1602_Writebyte(iCmd,0x38);7 @4 I) d  V. w9 J% M
5 C1 e; X1 V- u: t  k$ ^' L

& E( G% e$ Z& U# G" }" g1 }    LCD1602_Writebyte(iCmd,0x38);
, k6 s. i# f! X  k# \    LCD1602_Writebyte(iCmd,0x08); //显示功能关,无光标
4 w* ^/ p; [2 v+ U    LCD1602_Writebyte(iCmd,0x01); //清屏
; I. p- K, T( b! T4 S6 @, u    LCD1602_Writebyte(iCmd,0x06);  //写入新的数据后,光标右移,显示屏不移动- }) e9 z3 Y; V, w1 w
    LCD1602_Writebyte(iCmd,0x0C);  //显示功能开,无光标
0 A2 d# K! r/ J' a}; J- S" V3 @2 T3 w& l1 @6 a
' D5 F( u6 }& D, F( J. C
//1602液晶指定地址显示函数  z# N- y8 u/ ~
void LCD1602_Display(unsigned char x,unsigned char y,unsigned char buf)& ~7 b( Y, a4 ^4 q, m' X
{
$ ]( M: C. @2 b8 O        LCD1602_GotoXY(x,y);                    //先将地址信息写入
9 X/ t2 w; \! l        LCD1602_Writebyte(iDat,buf);  //再写入要显示的数据
+ V- o  g9 n  A}
# v3 `" r& h9 \: d
. s1 D) }/ j; Pvoid LCD1602_prints(unsigned char x,unsigned char y,unsigned char *pString)9 f, e. I; s5 M' o' b8 Z
{  d" {8 O& G( H" U* u

1 S7 M8 |5 H9 C& t        LCD1602_GotoXY(x,y);
" `! `' u  P) T/ c7 X/ h) o% P5 B        while(*pString)//while((*pString)!='\0')//        //只要字符串没写完就继续写
) s1 b5 X. F& p        {
" i( X9 c* L: Y1 U' Z5 r# R                LCD1602_Writebyte(iDat,*pString++);
( M1 b0 i2 {& Z  d" C( ~0 q        }
+ X, z; `2 O9 {4 x. q5 F6 h( t0 V}
3 ]4 {) z7 q3 P
2 c0 ^# l8 i( w9 t% J- D! `4 S/ {void main(void)
3 z& }7 F7 T; D8 I+ ^- H{* z4 C; ]% c: S0 F' |0 a/ a
+ d0 x, l+ X, m0 ?# {
    unsigned int num=1223;' |; \& q9 \/ m" {% C1 ]
    DDRC=0XFF;8 q0 g# d, ?: a& F6 q
    DDRD=0XFF;
+ \( m# G9 u5 M* Q    PORTC=0B00000000;+ t( N, i. Y$ Q* Y/ s# n& A; L
    PORTD=0B00000000;! o( a: X+ N" {+ G4 I  A
! g4 K) C. F/ R( S- ~2 |6 s
    LCD1602_init();
- T1 E# b9 M; K( r" c3 t: }9 N7 [    LCD1602_prints(0,0,"Zeroer1223");# M' X9 ~+ p* H+ t# ]
: l$ R0 W( h# b7 I" g
    while(1)
4 u" V; D2 V6 J/ h; a/ |    {
# r" f% b& ]5 j- P2 m                delay_ms(500);
/ b# i  M1 \( K' t' `" Z1 Q                if(++num>9999) num=0;  }7 C4 }7 F$ t' J: E& N9 ]
                LCD1602_Display(6,1,num/1000+'0');//千位
1 V: w* p3 ]% @$ q8 V: L                LCD1602_Display(7,1,(num%1000)/100+0X30);//百位3 V6 Z9 m0 [) N+ h! Q8 s2 |
                LCD1602_Display(8,1,(num%100)/10+0x30);//十位) G6 _+ ^) ?% |1 w) X" J2 c
                LCD1602_Display(9,1,(num%10)+'0'); //个位! J; `8 V: P3 r- h/ K( n: \4 Q$ @

0 y. Y* L5 G+ G) T    }
; X7 h9 B' |$ a) P: w0 S& u}& u: a& e! u/ c

+ m7 Q9 g2 T4 [$ X0 r8 q5 O* b$ z7 f8 ^4 B  v

* g3 V' E4 I, L6 B, n' h7 i9 I. w  H) M+ f
% w% w$ z- q' B7 u% T6 l
2 i0 o8 P9 Z: C: ]! ]8 ^

# B" j9 r& ?+ U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-14 04:46 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表