📄 main.c
字号:
#include "reg52.h"
#include "i2c.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
sbit SMG_EN1=P1^3;
sbit SMG_EN2=P1^2;
sbit SMG_EN3=P1^1;
sbit SMG_EN4=P1^0;
#define SMG_DATA P0
// 字形表, 为0亮
// a_
// f|_|b
// e|_|c .p
// d
// 00001101
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
unsigned char code SMG_TABLE[16]={0x3f,0xf9,0xc4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
/* Function */
void Delay_10us(WORD n);
void SMG_Display(BYTE SMGNum, BYTE tdata);
void main(void)
{
BYTE rdata;
rdata=0;
I2C_WriteEEPROM_OneByte(0xA0,0,1); //1
I2C_WriteEEPROM_OneByte(0xA0,1,3); // 3
I2C_WriteEEPROM_OneByte(0xA0,2,5); // 5
I2C_WriteEEPROM_OneByte(0xA0,3,7); // 7
while(1)
{
rdata=I2C_ReadEEPROM_OneByte(0xA0,0);
SMG_Display(1,rdata);
rdata=I2C_ReadEEPROM_OneByte(0xA0,1);
SMG_Display(2,rdata);
rdata=I2C_ReadEEPROM_OneByte(0xA0,2);
SMG_Display(3,rdata);
rdata=I2C_ReadEEPROM_OneByte(0xA0,3);
SMG_Display(4,rdata);
}
}
// write the tdata to the SMGNum
void SMG_Display(BYTE SMGNum, BYTE tdata)
{
switch(SMGNum)
{
case 1:SMG_EN1=0;break;
case 2:SMG_EN2=0;break;
case 3:SMG_EN3=0;break;
case 4:SMG_EN4=0;break;
default:break;
}
SMG_DATA=SMG_TABLE[tdata];
Delay_10us(100);
SMG_EN1=1;SMG_EN2=1;SMG_EN3=1;SMG_EN4=1;
}
// delay_ms(WORD n), default use 12M XTAL,others should be modifed.
void Delay_10us(WORD n)
{
BYTE i=0;
for(;n>0;n--)
for(i=0;i<10;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -