找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3742|回复: 11
打印 上一主题 下一主题
收起左侧

跪求一个简单程序 51单片机

[复制链接]
跳转到指定楼层
楼主
ID:60132 发表于 2014-3-29 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是初学者 跪求一个8位数码管扫描程序   
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:59960 发表于 2014-3-29 11:52 | 只看该作者
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit wela=P3^7;  //申明U2锁存器的锁存端
sbit dula=P3^6;  //申明U1锁存器的锁存端
sbit  wela2=P3^3;
sbit wela3=P3^2;  //申明U2锁存器的锁存端
sbit  wela4=P5^4;       
sbit wela1=P5^5;  //申明U2锁存器的锁存端

unsigned char code seg[]={
                                0xc0,0xf9,0xa4,0xb0,
                                                   0x99,0x92,0x82,0xf8,
                                                        0x80,0x90,0x88,0x83,
                                                        0xa7,0xa1,0x86,0x8e};

unsigned long fre;    //1S内脉冲总个数
unsigned char led[6];   //LED显示缓存

void main (void)
{


while(1)
{       
    led[0]=fre%10;  //        ge
P1=seg[led[0]];  //送个位段选数据
wela=0;
delayms(1);
  wela=1;
led[1]= fre/10%10;//        shi   
P1=seg[led[1]];    //送十位段选数据
  dula=0;
delayms(1); //延时
dula=1;
  led[2]= fre/100%10;//           bai
   P1=seg[led[2]];  //送个位段选数据
   wela1=0;
delayms(1);
   wela1=1;
    led[3]= fre/1000%10;//           bai
   P1=seg[led[3]];  //送个位段选数据
   wela2=0;
delayms(1);
   wela2=1;

  led[4]= fre/10000%10;//           bai
   P1=seg[led[4]];  //送个位段选数据
   wela3=0;
delayms(1);
   wela3=1;

    led[5]= fre/100000%10;//           bai
   P1=seg[led[5]];  //送个位段选数据
   wela4=0;
delayms(1);
   wela4=1;


}
}

这个是6位数码管的。你按这个在加2位就好!


回复

使用道具 举报

板凳
ID:59960 发表于 2014-3-29 11:53 | 只看该作者
void delayms(unsigned int a) //延时约1ms(12Mhz晶振)
{ unsigned char i;
while(a--!=0)
for(i=125;i>0;i--);
}
回复

使用道具 举报

地板
ID:60228 发表于 2014-4-19 10:00 | 只看该作者
这首先还得看你的硬件电路,不然再好的程序也不适合你,没什么作用。
回复

使用道具 举报

5#
ID:61066 发表于 2014-4-24 20:19 | 只看该作者
#include <reg51.h> #include <intrins.h> #define  uchar unsigned char sbit Max7219LOAD=P2^1; sbit Max7219DIN=P2^0; sbit Max7219CLK=P2^2; unsigned char DisplayBuffer[8]={1,2,3,4,5,6,7,8};         //显示缓冲区  void WriteMax7219(uchar Address,uchar Data) { uchar i; Max7219LOAD=0; for(i=0;i<8;i++)   {     Max7219CLK=0;  //发送地址           Max7219DIN=(Address&(0x80>>i));           _nop_();         _nop_();    Max7219CLK=1;            _nop_();         _nop_();   }   for(i=0;i<8;i++)   {     Max7219CLK=0;  //发送数据           Max7219DIN=(Data&(0x80>>i));           _nop_();         _nop_();    Max7219CLK=1;            _nop_();         _nop_();   }   Max7219LOAD=1;  }  void InitialMax7219(void)         //初始化 {    WriteMax7219(0x0A,0X07); //亮度7    WriteMax7219(0x0B,0X07); //扫描LED个数8    WriteMax7219(0x0C,0X01);//处于工作模式    WriteMax7219(0x09,0XFF);        //BCB编码模式 }  void Max7219Display(uchar*buffer)  {   unsigned char i;   for(i=0;i<8;i++)   {    WriteMax7219(i+1,*(buffer+i));   }  }  void main(void) //主函数   {    InitialMax7219();   //初始化     Max7219Display(&DisplayBuffer[0]);//显示           while(1);           //循环   }
回复

使用道具 举报

6#
ID:61326 发表于 2014-5-1 19:43 | 只看该作者
给你一个汇编:
回复

使用道具 举报

7#
ID:61326 发表于 2014-5-1 19:44 | 只看该作者
汇编源程序
DISPBUF EQU 30H
DISPCNT EQU 38H
DISPBIT EQU 39H
T1CNTA EQU 3AH
T1CNTB EQU 3BH
CNT EQU 3CH

ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV DISPCNT,#8
MOV A,#10
MOV R1,#DISPBUF
LP: MOV @R1,A
INC R1
DJNZ DISPCNT,LP
MOV DISPBIT,#00H
MOV T1CNTA,#00H
MOV T1CNTB,#00H
MOV CNT,#00H
MOV TMOD,#01H
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $

INT_T0:
MOV TH0,#(65536-1000) / 256
MOV TL0,#(65536-1000) MOD 256
MOV A,DISPBIT
ADD A,#DISPBUF
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,P1
ANL A,#0F8H
ADD A,DISPBIT
MOV P1,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,NEXT
MOV DISPBIT,#00H
NEXT: INC T1CNTA
MOV A,T1CNTA
CJNE A,#50,LL1
MOV T1CNTA,#00H
INC T1CNTB
MOV A,T1CNTB
CJNE A,#8,LL1
MOV T1CNTB,#00H
INC CNT
MOV A,CNT
CJNE A,#9,LLX
MOV CNT,#00H
MOV A,CNT
LLX: CJNE A,#01H,NEX1
MOV 30H,#8
LL1: LJMP DONE
NEX1: CJNE A,#02H,NEX2
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX2: CJNE A,#03H,NEX3
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX3: CJNE A,#04H,NEX4
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX4: CJNE A,#05H,NEX5
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX5: CJNE A,#06H,NEX6
MOV 35H,#8
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX6: CJNE A,#07H,NEX7
MOV 36H,#8
MOV 35H,#8
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX7: CJNE A,#08H,NEX8
MOV 37H,#8
MOV 36H,#8
MOV 35H,#8
MOV 34H,#8
MOV 33H,#8
MOV 32H,#8
MOV 31H,#8
MOV 30H,#8
LJMP DONE
NEX8: CJNE A,#00H,DONE
MOV 37H,#10
MOV 36H,#10
MOV 35H,#10
MOV 34H,#10
MOV 33H,#10
MOV 32H,#10
MOV 31H,#10
MOV 30H,#10
LL: LJMP DONE
DONE: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H
END
回复

使用道具 举报

8#
ID:61326 发表于 2014-5-1 19:47 | 只看该作者
C语言源程序
#include <AT89X51.H>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00};
unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,
0xfc,0xfd,0xfe,0xff};
unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};
unsigned char dispbitcnt;
unsigned int t02scnt;
unsigned char t5mscnt;
unsigned char u;
unsigned char i;

void main(void)
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;
while(1);
}

void t0(void) interrupt 1 using 0
{
t5mscnt++;
if(t5mscnt==4)
{
t5mscnt=0;
P0=dispcode[dispbuf[dispbitcnt]];
P1=dispbitcode[dispbitcnt];
dispbitcnt++;
if(dispbitcnt==8)
{
dispbitcnt=0;
}
}
t02scnt++;
if(t02scnt==1600)
{
t02scnt=0;
u++;
if(u==9)
{
u=0;
}
for(i=0;i<8;i++)
{
dispbuf[i]=16;
}
for(i=0;i<u;i++)
{
dispbuf[i]=8;
}
}
}
回复

使用道具 举报

9#
ID:61415 发表于 2014-5-7 15:59 | 只看该作者
/*用P1口控制数码管的段,P2口控制数码管位*/
回复

使用道具 举报

10#
ID:61415 发表于 2014-5-7 15:59 | 只看该作者
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,        // 0, 1, 2, 3
                                0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off  数码管的段选数组
void delayms(uchar ms)
{
        uchar i;
        while(ms--)
        {
                for(i=0;i<120;i++);
        }
}
void xianshi()                                                                       
{
        P1=dis_code[1];                                                                //数码管段选
        P2=0xfe;                                                                        //数码管位选
        delayms(3);                                                               
        P1=dis_code[2];
        P2=0xfd;
        delayms(3);
        P1=dis_code[3];
        P2=0xfb;
        delayms(3);
        P1=dis_code[4];
        P2=0xf7;
        P1=dis_code[5];                                                               
        P2=0xef;                                                               
        delayms(3);                                                               
        P1=dis_code[6];
        P2=0xdf;
        delayms(3);
        P1=dis_code[7];
        P2=0xbf;
        delayms(3);
        P1=dis_code[8];
        P2=0x7f;
        delayms(3);
        P2=0xff;
}
void main()
{
         while(1)
         {
                 xianshi();                                                          
         }
}
回复

使用道具 举报

11#
ID:63918 发表于 2014-7-12 22:40 | 只看该作者
#include<reg51.h>
typedef unsigned char uint8;
typedef unsigned int  uint16;
int  b=0;//有符号标志位
uint8  gewei;//个位
uint8  shiwei;//十位
uint8  a[6];  //用来存储时,分,秒的个位和十位的"动态数组"
uint8 code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint8  keyNum=0;//按键扫描后得到的键值从1到16
static uint8 miao=0;//秒
static uint8 fen=30;//分
static uint8 shi=12;//时
uint16 counter;
sbit ADDR0=P2^2;
sbit ADDR1=P2^3;
sbit ADDR2=P2^4;
void delay()/***********************延时函数*****************************/
{
        uint16 i=800;

        while (i--);
}
void timer1_init()/*****************定时器1初始化***********************/
{
        TMOD|=0X10 ;
        TMOD&=0XDF;
        TH1=0XFC;
        TL1=0X67;
        TR1=1;
}                          
void int_init()/*********************定时器1溢出中断初始化**************/
{
        ET1=1;
        EA=1;
}
void key_deal()/*********************每个按键对应的单击事件(共4*4=16个按键)********/
{
        switch(keyNum)
        {
                case 1 :switch(b)//数字0
                                {
                                        case 1:miao=miao/10*10+0;break;
                                        case 2:miao=miao%10+0*10;break;
                                        case 3:fen=fen/10*10+0; break;
                                        case 4:fen=fen%10+10*0; break;
                                        case 5:shi=shi/10*10+0; break;
                                        case 6:shi=shi%10+10*0; break;
                                        default:break;
                                }       
                                break;
                case 2 : switch(b)//+加号键
                                 {
                                         case 0:break;
                                        case 1:shiwei=miao/10;gewei=miao%10;if(gewei==9)  gewei=0; else gewei++; miao=shiwei*10+gewei;keyNum=0;break;
                                        case 2:shiwei=miao/10;gewei=miao%10;if(shiwei==5) shiwei=0;else shiwei++;miao=shiwei*10+gewei;keyNum=0;break;
                                        case 3:shiwei=fen/10; gewei=fen%10; if(gewei==9)  gewei=0; else gewei++; fen=shiwei*10+gewei;keyNum=0; break;
                                        case 4:shiwei=fen/10; gewei=fen%10; if(shiwei==5) shiwei=0;else shiwei++;fen=shiwei*10+gewei;keyNum=0; break;
                                        case 5:shiwei=shi/10; gewei=shi%10;
                                                                                                                if(shiwei<2&&gewei<9)  {gewei++; goto zz1;}
                                                                                                                if(shiwei<2&&gewei==9) {gewei=0; goto zz1;}
                                                                                                                if(shiwei>1&&gewei==3) {gewei=0; goto zz1;}
                                                                                                                if(shiwei>1&&gewei<3)  {gewei++; goto zz1;}
                                                                                                                zz1:
                                                                                 shi=shiwei*10+gewei;keyNum=0;                                      break;
                                        case 6:shiwei=shi/10; gewei=shi%10; if(gewei<4&&shiwei==2) {shiwei=0; goto zz2;}
                                                                                                                if(gewei<4&&shiwei<2)  {shiwei++; goto zz2;}
                                                                                                                if(gewei>3&&shiwei==1) {shiwei=0; goto zz2;}
                                                                                                                if(gewei>3&&shiwei<1)  {shiwei++; goto zz2;}
                                                                                                                zz2:                                       
                                                                                                shi=shiwei*10+gewei;keyNum=0;                                                                        break;
                                        default :break;
                                 }
                                 break;
               
                case 3 :switch(b)//-减号键
                                 {
                                         case 0:break;
                                        case 1:shiwei=miao/10;gewei=miao%10;if(gewei==0)  gewei=9; else gewei--; miao=shiwei*10+gewei;keyNum=0;break;
                                        case 2:shiwei=miao/10;gewei=miao%10;if(shiwei==0) shiwei=5;else shiwei--;miao=shiwei*10+gewei;keyNum=0;break;
                                        case 3:shiwei=fen/10; gewei=fen%10; if(gewei==0)  gewei=9; else gewei--; fen=shiwei*10+gewei;keyNum=0; break;
                                        case 4:shiwei=fen/10; gewei=fen%10; if(shiwei==0) shiwei=5;else shiwei--;fen=shiwei*10+gewei;keyNum=0; break;
                                        case 5:shiwei=shi/10; gewei=shi%10; if(shiwei<2&&gewei==0) {gewei=9; goto xx1;}
                                                                                                                if(shiwei<2&&gewei>0)  {gewei--; goto xx1;}
                                                                                                                if(shiwei>1&&gewei==0) {gewei=3; goto xx1;}
                                                                                                                if(shiwei>1&&gewei>0)  {gewei--; goto xx1;}
                                                                                                                xx1:
                                                                                shi=shiwei*10+gewei;keyNum=0;                                                                    break;
                                        case 6:shiwei=shi/10; gewei=shi%10; if(gewei<4&&shiwei==0) {shiwei=2; goto xx2;}
                                                                                                                if(gewei<4&&shiwei>0)  {shiwei--; goto xx2;}
                                                                                                                if(gewei>3&&shiwei==0) {shiwei=1; goto xx2;}
                                                                                                                if(gewei>3&&shiwei>0)  {shiwei--; goto xx2;}
                                                                                                                xx2:
                                                                                                                shi=shiwei*10+gewei;keyNum=0;                                                                            break;
                                        default :break;
                                 }
                                 break;
                case 5 :switch(b)//数字3
                                {
                                        case 1:miao=miao/10*10+3;break;
                                        case 2:miao=miao%10+3*10;break;
                                        case 3:fen=fen/10*10+3; break;
                                        case 4:fen=fen%10+10*3; break;
                                        case 5:shi=shi/10*10+3; break;
                                       
                                        default:break;
                                }               
                                break;
                case 6 :switch(b)//数字6
                                {
                                        case 1:miao=miao/10*10+6;break;
                                       
                                        case 3:fen=fen/10*10+6; break;
                                       
                                        case 5:if(shi/10<2) shi=shi/10*10+6; break;
                                       
                                        default:break;
                                }                       
                                break;
                case 7:switch(b)//数字9
                                {
                                        case 1:miao=miao/10*10+9;break;
                                       
                                        case 3:fen=fen/10*10+9; break;
                                       
                                        case 5:if(shi/10<2) shi=shi/10*10+9; break;
                                       
                                        default:break;
                                }                               
                                break;
                case 9 :switch(b)//数字2
                                {
                                        case 1:miao=miao/10*10+2;break;
                                        case 2:miao=miao%10+2*10;break;
                                        case 3:fen=fen/10*10+2; break;
                                        case 4:fen=fen%10+10*2; break;
                                        case 5:shi=shi/10*10+2; break;
                                        case 6:if(shi%10<4) shi=shi%10+10*2; break;
                                        default:break;
                                }               
                                break;
                case 10 :switch(b)//数字5
                                {
                                        case 1:miao=miao/10*10+5;break;
                                        case 2:miao=miao%10+5*10;break;
                                        case 3:fen=fen/10*10+5; break;
                                        case 4:fen=fen%10+10*5; break;
                                        case 5:if(shi/10<2) shi=shi/10*10+5; break;
                                       
                                        default:break;
                                }               
                                break;
                case 11:switch(b)//数字8
                                {
                                        case 1:miao=miao/10*10+8;break;
                                       
                                        case 3:fen=fen/10*10+8; break;
                                       
                                        case 5:if(shi/10<2) shi=shi/10*10+8; break;
                                       
                                        default:break;
                                }                               
                                break;
                case 12: --b;if(b<0) b=6; keyNum=0;break;//移位键,向右移一位
                case 13 :switch(b)//数字1
                                {
                                        case 1:miao=miao/10*10+1;break;
                                        case 2:miao=miao%10+1*10;break;
                                        case 3:fen=fen/10*10+1; break;
                                        case 4:fen=fen%10+10*1; break;
                                        case 5:shi=shi/10*10+1; break;
                                        case 6:shi=shi%10+10*1; break;
                                        default:break;
                                }               
                                break;
                case 14 :switch(b)//数字4
                                {
                                        case 1:miao=miao/10*10+4;break;
                                        case 2:miao=miao%10+4*10;break;
                                        case 3:fen=fen/10*10+4; break;
                                        case 4:fen=fen%10+10*4; break;
                                        case 5:if(shi/10<2) shi=shi/10*10+4; break;
                                       
                                        default:break;
                                }               
                                break;
                case 15:switch(b)//数字7
                                {
                                        case 1:miao=miao/10*10+7;break;
                                       
                                        case 3:fen=fen/10*10+7; break;
                                       
                                        case 5:if(shi/10<2) shi=shi/10*10+7; break;
                                       
                                        default:break;
                                }                               
                                break;
                case 16: ++b;if(b>6) b=0; keyNum=0;break;//移位键,向左移一位
                default:break;
        }
}
void refresh_led()/***************************数码管刷新函数************************/
{
        static uint8 j=0;
        switch(j)
        {
                case 0:if(b==1){ADDR0=0;ADDR1=0;ADDR2=0;j++;if(counter<500) P0=number[a[0]]; else P0=0x00;}
               else{ADDR0=0;ADDR1=0;ADDR2=0;j++;P0=number[a[0]];}break;
                case 1:if(b==2){ADDR0=1;ADDR1=0;ADDR2=0;j++;if(counter<500) P0=number[a[1]]; else P0=0x00;}
                           else{ADDR0=1;ADDR1=0;ADDR2=0;j++;P0=number[a[1]];}break;

                case 2:ADDR0=0;ADDR1=1;ADDR2=0;j++;P0=0x40;break;

                case 3:if(b==3){ADDR0=1;ADDR1=1;ADDR2=0;j++;if(counter<500) P0=number[a[2]]; else P0=0x00;}
                           else{ADDR0=1;ADDR1=1;ADDR2=0;j++;P0=number[a[2]];}break;
                case 4:if(b==4){ADDR0=0;ADDR1=0;ADDR2=1;j++;if(counter<500) P0=number[a[3]]; else P0=0x00;}
                           else{ADDR0=0;ADDR1=0;ADDR2=1;j++;P0=number[a[3]];}break;
               
                case 5:ADDR0=1;ADDR1=0;ADDR2=1;j++;P0=0x40;break;
               
                case 6:if(b==5){ADDR0=0;ADDR1=1;ADDR2=1;j++;if(counter<500) P0=number[a[4]];else P0=0x00;}
               else{ADDR0=0;ADDR1=1;ADDR2=1;j++;P0=number[a[4]];}break;
                case 7:if(b==6){ADDR0=1;ADDR1=1;ADDR2=1;j=0;if(counter<500) P0=number[a[5]]; else P0=0x00;}
               else{ADDR0=1;ADDR1=1;ADDR2=1;j=0;P0=number[a[5]];}break;
                default:break;
        }       
}
void key_scan()/*********************矩阵键盘扫描函数***********************************************/
{
        uint8 hang,lie,tmp1,tmp2;
        tmp1=0x01;//0000   0001
        for(lie=0;lie<4;lie++)
        {
                P1=0xf0;
                P1=~tmp1;
                tmp1*=2;
                if((P1&0xf0)<0xf0)
                delay();
                if((P1&0xf0)<0xf0)
                {
                        tmp2=0x10;
                        for(hang=0;hang<4;hang++)
                        {
                                if((P1&tmp2)==0x00)
                                {
                                        keyNum=lie*4+hang+1;
                                        return;
                                }
                                tmp2*=2;
                        }
                }
        }
       
        key_deal();               
}
void interrupt_timer1() interrupt 3/*******************定时器1溢出中断*****************/
{
          
       
        TH1=0XFC;
        TL1=0X67;
        counter++;
        if(counter==1000)
        {
                counter=0;
                if(b!=0) goto cc;
                miao++;
                cc:
                if(miao==60)
                {
                        miao=0;
                        fen++;
                }
                if(fen==60)
                {
                         fen=0;
                        shi++;
                }
                if(shi>23)
                {
                        shi=0;
                }
                a[0]=miao%10;
                a[1]=miao/10;
                a[2]=fen%10;
                a[3]=fen/10;
                a[4]=shi%10;
                a[5]=shi/10;

        }
       
    refresh_led();
}
//////////////////LCD1602显示

sbit RS = P2^6 ;
sbit RW = P2^5 ;
sbit EN = P2^7 ;
sbit BUSY = P0^7;


unsigned char code word1[]={"Hi,teacher wan!"};
unsigned char code word2[]={"made by Mr GUO"};


/**
* 等待繁忙标志
*/
void wait(void)
{
        P0 = 0xFF;

       
        do
        {
                RS = 0;
                RW = 1;
                EN = 0;
                EN = 1;
        }while (BUSY == 1);
        EN = 0;
}

/**
* 写数据
*/
void w_dat(uint8 dat)
{
        wait();
        EN = 0;
        P0 = dat;
        RS = 1;
        RW = 0;
        EN = 1;
        EN = 0;
}

/**
* 写命令
*/
void w_cmd(uint8 cmd)
{
        wait();
        EN = 0;
        P0 = cmd;
        RS = 0;
        RW = 0;
        EN = 1;
        EN = 0;
}

/**
* 发送字符串到LCD
*/
void w_string(uint8 addr_start, uint8 *p)
{
        w_cmd(addr_start);
        while (*p != '\0')
        {
                w_dat(*p++);
        }
}


/**
* 初始化1602
*/
void Init_LCD1602(void)
{
        w_cmd(0x38);  // 16*2显示,5*7点阵,8位数据接口
        w_cmd(0x0C);  // 显示器开、光标开、光标允许闪烁
        w_cmd(0x06);  // 文字不动,光标自动右移
        w_cmd(0x01);  // 清屏
}
void main()/*****************************主函数******************/
{       
        Init_LCD1602();
        w_string(0x80,word1);
        w_string(0xC0,word2);
        timer1_init();
        int_init();
        while(1)
        {       
                key_scan();
        }       
}
回复

使用道具 举报

12#
ID:153199 发表于 2016-12-31 11:32 | 只看该作者
这一个简单
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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