第九届蓝桥杯单片机省赛

该博客内容涉及STC15F2K60S2单片机的程序实现,包括定时器初始化、I2C通信、LCD显示及按键响应等功能。程序中详细定义了不同变量和函数,如AD转换、I2C读写、数字显示等,实现了对开发板的实时数据显示和用户交互。

直接复制粘贴然后运行

然后打开stc烧录到开发板上面就能用  程序哪里不懂的话问我,我闲的蛋疼!

#include <STC15F2K60S2.H>
#include <intrins.h>

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
unsigned char yi,er,san,si,wu,liu,qi,ba;
unsigned char jiemian=0;   //定义界面
int moshi=1;       //定义模式
unsigned char jiange=4;      //定义间隔
unsigned char a=0,tiao=0,shan=0;
unsigned char b=0,app=0,shan1=0;
unsigned char shuju;
unsigned char d=0;
int c=0;
unsigned char tiaozhuan;
unsigned char pwm=0;

unsigned char AD();

#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}    


#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1


sbit SDA = P2^1;  
sbit SCL = P2^0; 
    
    void Timer0Init(void)        //5毫秒@11.0592MHz
{
    AUXR |= 0x80;        //定时器时钟1T模式
    TMOD &= 0xF0;        //设置定时器模式
    TL0 = 0x00;        //设置定时初值
    TH0 = 0x28;        //设置定时初值
    TF0 = 0;        //清除TF0标志
    TR0 = 1;        //定时器0开始计时
    EA=1;
    ET0=1;
}
void tm0_isr() interrupt 1
{
    TL0 = 0x00;        //设置定时初值
    TH0 = 0x28;        //设置定时初值
    
    a++;
    if(a==160)
    {
        a=0;
        if(tiao==1)
        {
            if(shan==0)
            {
                wu=jiange/10;liu=jiange%10;
                er=11;
                shan=1;
            }
            else 
                if(shan==1)
                {
                    wu=jiange/10;liu=jiange%10;
                    er=moshi;
                    shan=0;
                }
        }
        if(tiao==2)
        {
            if(shan==0)
            {
                er=moshi;
                wu=11;liu=11;
                shan=1;
            }
            else 
                if(shan==1)
                {
                    er=moshi;
                    wu=jiange/10;liu=jiange%10;
                    shan=0;
                }
        }
    }
    
}


void Delayms(int ms)
{
    int i,j;
    for(i=0;i<ms;i++)
        for(j=845;j>0;j--);
}
void chushihua()
{
    P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
    P2=0XC0;P0=0X00;P2=0XFF;P0=0XFF;
}
void shumaguan1(unsigned char yi,unsigned char er)
{
    P2=0XC0;
    P0=0X01;
    P2=0XFF;
    P0=tab[yi];
    Delayms(1);
    
    P2=0XC0;
    P0=0X02;
    P2

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值