关键词:c语言 51单片机 1602 篮球计分
单片机源程序如下:
- #include<reg52.h>
- #include "1602.h"
- #define DataPort P0
- sbit KEY1=P3^0;
- sbit KEY2=P3^1;
- sbit KEY3=P3^2;
- sbit KEY4=P3^3;
- sbit KEY5=P3^4;
- sbit KEY6=P3^5;
- sbit KEY7=P3^6;
- int a;
- int b;
- bit flag=0;
- char code Ad[16]="Scores A: ";
- char code Bd[16]="Scores B: ";
- void Delay10ms() //@11.0592MHz
- {
- unsigned char i, j;
- i = 18;
- j = 235;
- do
- {
- while (--j);
- } while (--i);
- }
- void KeyScan(void)
- {
- /********************************************************/
- if(!KEY1)
- {
- Delay10ms();
- if(!KEY1)
- {
- while(!KEY1);
- {
- flag=!flag;
- }
- }
- }
- if(!KEY2)
- {
- Delay10ms();
- if(!KEY2)
- {
- while(!KEY2);
- {
- a++;
- }
- }
- }
- if(!KEY3)
- {
- Delay10ms();
- if(!KEY3)
- {
- while(!KEY3);
- {
- b++;
- }
- }
- }
- if(!KEY4)
- {
- Delay10ms();
- if(!KEY4)
- {
- while(!KEY4);
- {
- a=a+2;
- }
- }
- }
- if(!KEY5)
- {
- Delay10ms();
- if(!KEY5)
- {
- while(!KEY5);
- {
- b=b+2;
- }
- }
- }
- if(!KEY6)
- {
- Delay10ms();
- if(!KEY6)
- {
- while(!KEY6);
- {
- a=a+3;
- }
- }
- }
- if(!KEY7)
- {
- Delay10ms();
- if(!KEY7)
- {
- while(!KEY7);
- {
- b=b+3;
- }
- }
- }
- }
- void Axian()
- {
- char x,y,z,num;
- LCD_Write_Com(0x80);
- for(num=0;num<9;num++)
- {
- LCD_Write_Data(Ad[num]);
- }
- x=a/100;
- y=(a%100)/10;
- z=(a%100)%10;
- LCD_Write_Com(0x80+11);
- LCD_Write_Data(0x30+z);
- LCD_Write_Com(0x80+10);
- LCD_Write_Data(0x30+y);
- LCD_Write_Com(0x80+9);
- LCD_Write_Data(0x30+x);
- }
- void Bxian()
- {
- char x,y,z,num;
- LCD_Write_Com(0x80+0x40);
- for(num=0;num<9;num++)
- {
- LCD_Write_Data(Bd[num]);
- }
- x=b/100;
- y=(b%100)/10;
- z=(b%100)%10;
- LCD_Write_Com(0x80+0x40+11);
- LCD_Write_Data(0x30+z);
- LCD_Write_Com(0x80+0x40+10);
- LCD_Write_Data(0x30+y);
- LCD_Write_Com(0x80+0x40+9);
- LCD_Write_Data(0x30+x);
- }
- void Axian1()
- {
- char x,y,z,num;
- LCD_Write_Com(0x80+0x40);
- for(num=0;num<9;num++)
- {
- LCD_Write_Data(Ad[num]);
- }
- x=a/100;
- y=(a%100)/10;
- z=(a%100)%10;
- LCD_Write_Com(0x80+0x40+11);
- LCD_Write_Data(0x30+z);
- LCD_Write_Com(0x80+0x40+10);
- LCD_Write_Data(0x30+y);
- LCD_Write_Com(0x80+0x40+9);
- LCD_Write_Data(0x30+x);
- }
- void Bxian1()
- {
- char x,y,z,num;
- LCD_Write_Com(0x80);
- for(num=0;num<9;num++)
- {
- LCD_Write_Data(Bd[num]);
- }
- x=b/100;
- y=(b%100)/10;
- z=(b%100)%10;
- LCD_Write_Com(0x80+11);
- LCD_Write_Data(0x30+z);
- LCD_Write_Com(0x80+10);
- LCD_Write_Data(0x30+y);
- LCD_Write_Com(0x80+9);
- LCD_Write_Data(0x30+x);
- }
- /*------------------------------------------------
- 主函数
- ------------------------------------------------*/
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
篮球计数器—1602显示.zip
(58.07 KB, 下载次数: 83)
|