基于stc15f2k60s2芯片单片机编程(蓝桥杯十一届省赛题)

本项目为蓝桥杯单片机设计与开发省赛题目,要求使用IAP15F2K61S2单片机,结合DS18B20温度传感器和PCF8591 DAC,实现温度数据测量、数码管显示、按键操作、LED状态指示等功能。系统需满足特定的响应时间和参数设置范围,且具有参数合理性检查机制。
摘要由CSDN通过智能技术生成

main.c

#include <stc15f2k60s2.h>
#include <intrins.h>
#include "onewire.h"
#include "iic.h"


void xianshi();
void Timer0Init();
void Delay10ms();
void anjian();
void LEDdeng();

sbit s7=P3^0;
sbit s6=P3^1;
sbit s5=P3^2;
sbit s4=P3^3;


unsigned char flag;
unsigned char jiemian=0;//界面调节参数,界面0=数据,界面1=参数
unsigned char display[]={
   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char shuzu[]={
   0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int wendu;
extern unsigned int temp;
unsigned char high=30,low=20;//温度上下线
unsigned char qie;//切换选择参数
unsigned char chigh=30,clow=20;


void main()
{
   
	
	
	Timer0Init();EA=1;ET0=1;
	P2=(P2&0X1F)|0XA0;P0=0X00;P2&=0X1F;
	P2=(P2&0X1F)|0X80;P0=0XFF;P2&=0X1F;	

	while(1)
	{
   		
//		if(wendu>high)SetDAC(4);
//		if((wendu<=high)&(wendu>low))SetDAC(3);
//		if(wendu<low)SetDAC(2);
		if(high==100)high=0;
		if(low==100)low=0;
		anjian();
		wendu=readtemp();
		xianshi();
		LEDdeng();
	}

}

void LEDdeng()
{
   
	unsigned char led=0xff;
	if(wendu>high)
	{
   
		P2=(P2&0X1F)|0X80;
		P0=0XFE&led;
		P2&=0X1F;	
		SetDAC(4);
		Delay10ms();
	}
	if((wendu<=high)&(wendu>low))
	{
   
		P2=(P2&0X1F)|0X80;
		P0=0XFD&led;
		P2&=0X1F;	
		SetDAC(3);
		Delay10ms();
	}
	if(wendu<low)
	{
   
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值