📄 温度控制.txt
字号:
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit ds="P2"^2;
sbit dula="P2"^6;
sbit wela="P2"^7;
uchar flag ;
uint temp; //参数temp一定要声明为 int 型
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //不带小数点数字编码
uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
0x87,0xff,0xef}; //带小数点数字编码
/*延时函数*/
void TempDelay (uchar us)
{
while(us--);
}
void delay(uint count) //延时子函数
{
uint i;
while(count)
{
i=200;
while(i>0)
i--;
count--;
}
}
/*串口初始化,波特率9600,方式1 */
void init_com()
{
TMOD="0x20"; //设置定时器1为模式2
TH1=0xfd; //装初值设定波特率
TL1=0xfd;
TR1=1; //启动定时器
SM0=0; //串口通信模式设置
SM1=1;
// REN="1"; //串口允许接收数据
PCON="0"; //波特率不倍频
// SMOD="0"; //波特率不倍频
// EA="1"; //开总中断
//ES=1; //开串行中断
}
/*数码管的显示 */
void display(uint temp)
{
uchar bai,shi,ge;
bai="temp/100";
shi="temp"%100/10;
ge="temp"%100%10;
dula=0;
P0=table[bai]; //显示百位
dula=1; //从0到1,有个上升沿,解除锁存,显示相应段
dula=0; //从1到0再次锁存
wela="0";
P0=0xfe;
wela=1;
wela=0;
delay(1); //延时约2ms
P0=table1[shi]; //显示十位
dula=1;
dula="0";
P0=0xfd;
wela=1;
wela="0";
delay(1);
P0=table[ge]; //显示个位
dula=1;
dula="0";
P0=0xfb;
wela=1;
wela="0";
delay(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -