• 大小: 5KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: 其他
  • 标签: lcd51  

资源简介

用51单片机来控制lcd显示的篮球计分板

资源截图

代码片段和文件信息

#include
#define u8 unsigned char
#define u16 unsigned int
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
u8 t = 0numA = 0numB = 0aa = 0bb = 0miao1 = 5miao2 = 24fen = 0;
/********************1602显示屏******************/
sbit lcdrs=P1^7;
sbit lcdrw=P1^6;
sbit lcden=P2^4;
sbit q = P3^7;
sbit    p = P2^7; 
void delay_ms(unsigned int a);
void wr_com(unsigned char com);
void wr_dat(unsigned char dat);
void inti_lcd();
//void zifu(unsigned char xunsigned yunsigned char zifu);
void  writfen(u8 duiu8 fen);
void key();
void writtime();
void voice(u16 c);
//u8 jia_(u8 cu8 z);
//u8 shuzi[]  = {01234567890x3A};//0--9还有冒号


void main()
{
 inti_lcd();
 writtime();
 TR0 = 1;
 TR1 = 0;
 while(1)
 {
   key();
 if(t == 0)
writfen(0numA);
 if(t == 1)
writfen(1numB);
 writtime();

 }
}
void wr_com(unsigned char com) //写操作时序,写指令
{
  lcdrs=1;
lcdrw=0;
lcden=0;
lcdrs=0;
delay_ms(2);
P0=com;
delay_ms(2);
lcden=1;
delay_ms(2);
lcden=0;
}
void wr_dat(unsigned char dat) //写操作时序,写数据
{
lcdrs=0;
lcdrw=0;
lcden=0;
lcdrs=1;
delay_ms(2);
P0=dat;
delay_ms(2);
lcden=1;
delay_ms(2);
lcden=0;
}
void inti_lcd()   //初始化
{
wr_com(0x38); //设置16*2显示
wr_com(0x0c); //开显示,开光标,开光标闪烁
wr_com(0x06); //读写一个字符后地址指针加一,光标加一
wr_com(0x01); //清屏
wr_com(0x80);//设置光标初始位置
TMOD = 0x11;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
TH1 = (65536 - 46080) / 256;
TL1 = (65536 - 46080) % 256;
IE = 0x8a;//开关中断允许
delay_ms(40);
wr_com(0x80 + 2);
  wr_dat(‘A‘);
wr_com(0x80 + 8);
wr_dat(‘B‘);
wr_com(0x80 + 6);
wr_dat(‘:‘);
  writfen(0numA);
writfen(1numB);
}

//void zifu(unsigned char xunsigned yunsigned char zifu)
//{
// if (y==1)
// wr_com(0x80+x);
// if (y==2)
// wr_com(0x80+0x40+x);
// wr_dat(zifu);
//}
/******************两队分数刷新显示*********/
void  writfen(u8 duiu8 fen)
{

u8 ijk; //用三位显示分数
i = fen / 100;
j = fen % 100 /10;
k = fen % 10;
if(0 == dui)
{
wr_com(0x80 + 3);
wr_dat(i + 0x30);
wr_dat(j + 0x30);
wr_dat(k + 0x30);
}
if(1 ==dui)
{
wr_com(0x80 + 9);
wr_dat(i + 0x30);
wr_dat(j + 0x30);
wr_dat(k + 0x30);

评论

共有 条评论

相关资源