代碼在附件里面,用Keil5打開,代碼很大 網(wǎng)頁好像發(fā)不完
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255
- #define uint unsigned int //無符號整型 宏定義 變量范圍0~65535
- sbit smg1=P2^7; //定義數(shù)碼管第一位
- sbit smg2=P2^6; //定義數(shù)碼管第二位
- sbit smg3=P2^5; //定義數(shù)碼管第三位
- 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) //延時函數(shù)
- {
- char i;
- while(x--)
- {
- for(i=500;i>0;i--);
- }
- }
- /***********************1ms延時函數(shù)*****************************/
- 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;
- }
- /****************結(jié)束信號 **************************/
- void stop()
- {
- sda = 0;
- scl = 1;
- sda = 1;
- scl = 0;
- }
- /*****************檢測應(yīng)答*************************/
- 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;
- //}
- /*****************非應(yīng)答*************************/
- void no_ack()
- {
- sda = 1;
- scl = 1;
- scl = 0;
- }
- /*****************寫一個字節(jié)*************************/
- void write_iic(uchar dat)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- scl = 0;
- dat <<= 1 ;
- sda = CY;
- scl = 1;
- }
- scl = 0;
- }
- /*******************讀一個字節(jié)***********************/
- 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;
- }
復(fù)制代碼
|