代码在附件里面,用Keil5打开,代码很大 网页好像发不完
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
- #define uint unsigned int //无符号整型 宏定义 变量范围0~65535
- sbit smg1=P2^7; //定义数码管第一位
- sbit smg2=P2^6; //定义数码管第二位
- sbit smg3=P2^5; //定义数码管第三位
- sbit keyks=P3^4; //定义开始按键
- sbit keytz=P3^5; //定义停止按键
- sbit keyqc=P3^6; //定义清除按键
- sbit key1=P1^0; //定义1号抢答选手
- sbit key2=P1^1; //定义2号抢答选手
- sbit key3=P1^2; //定义3号抢答选手
- sbit key4=P1^3; //定义4号抢答选手
- sbit key5=P1^4; //定义5号抢答选手
- sbit key6=P1^5; //定义6号抢答选手
- sbit key7=P1^6; //定义修改时间按键
- sbit key8=P1^7; //定义查看计分按键
- sbit beep=P2^1; //定义蜂鸣器
- int djs=60,js=0; //djs和bt是初始倒计时时间,可修改
- int value;
- int jifen1,jifen2,jifen3,jifen4,jifen5,jifen6,jifen_flag=1;
- //int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳
- int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40};//共阴
- sbit scl = P2^3; //24C02 IO口定义
- sbit sda = P2^2; //24C02 IO口定义
- sbit LED = P2^0; //led IO口定义
- void delayms(int x) //延时函数
- {
- char i;
- while(x--)
- {
- for(i=500;i>0;i--);
- }
- }
- /***********************1ms延时函数*****************************/
- void delay_1ms(uint q)
- {
- uint i,j;
- for(i=0;i<q;i++)
- for(j=0;j<120;j++);
- }
-
- //24C02程序
- /***************启始信号 ***************************/
- void start()
- {
- sda = 1;
- scl = 1;
- sda = 0;
- scl = 0;
- }
- /****************结束信号 **************************/
- void stop()
- {
- sda = 0;
- scl = 1;
- sda = 1;
- scl = 0;
- }
- /*****************检测应答*************************/
- void ack()
- {
- uchar i;
- sda = 1;
- scl = 1;
- while((i < 100) & (sda == 1)) i++;
- scl =0;
- }
- //void ack_zhuji()
- //{
- // sda = 0;
- // scl = 1;
- // scl = 0;
- // sda = 1;
- //}
- /*****************非应答*************************/
- void no_ack()
- {
- sda = 1;
- scl = 1;
- scl = 0;
- }
- /*****************写一个字节*************************/
- void write_iic(uchar dat)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- scl = 0;
- dat <<= 1 ;
- sda = CY;
- scl = 1;
- }
- scl = 0;
- }
- /*******************读一个字节***********************/
- uchar read_iic()
- {
- uchar i,value;
- for(i=0;i<8;i++)
- {
- scl = 1;
- value <<= 1;
- if(sda == 1)
- value |= 0x01;
- scl = 0;
- }
- return value;
- }
复制代码
|