|

楼主 |
发表于 2020-11-7 08:51:08
来自手机浏览器
|
显示全部楼层
汪浩然 发表于 2020-11-2 13:06
我下来了但是里面程序只是STC的引脚定义文件,可能只有那个HEX文件有用吧!我没有试过。 ...
stc15w408-16接3位共阴数码管(无小数点)
*******引脚*****************************************
b w3 w2 f a w1 K out
| | | | | | | |
--------------------------------
| 16 15 14 13 12 11 10 9 |
|p11 p10 p37 p36 p33 p32 p31 p30 |
| |
| STC15W408AS-16 |
| |
|p12 p13 p14 p15 p54 vcc p55 Gnd |
| 1 2 3 4 5 6 7 8 |
--------------------------------
| | | | | | | |
A-IN B-IN e d c 5V g Gnd
****************************************************/
#include <STC_LIB.h>
unsigned int a,b; //定义两个常数
unsigned char n,t1; //定义定时功能常数
unsigned int t; //定义时间计数器
void setup() //设置函数
{
ADC_init(ADC2); //adc初始化,打开转换adc12,adc13
ADC_init(ADC3);
P1_OUT_PP(Pin1+Pin4+Pin5);//开强推挽输出p11,p14,p15,p33,p36,p54,p55强推挽
P3_OUT_PP(Pin3+Pin6);
P5_OUT_PP(Pin4+Pin5);
}
void loop() //主循环函数
{
a=0,b=0;
Delay_ms(5); //设置系统循环时间5ms
a=Get_adc(ADC2)/14; //计算热电偶值
b=Get_adc(ADC3)/18; //计算温度调节器值
Tube_data[0]=b0/10;
Tube_data[1]=b;
Tube_data[2]=0;
Tube_display();
t++;
if(t==400) //判断到达温度2秒后关闭MOS输出
{
if(a>b)
{
P30=1;
}
}
if(t==800) //判断没有到达温度2秒后打开MOS输出
{
if(a<b)
{
P30=0;
}
t=0;
t1++;
}
if(P31==0) //判断是否按下按钮,按下等于关机
{
Delay_ms(1000);
t1=150; //必须与下一语句t1==?的值一致
}
if(t1==150) //设置为定时10分钟关机
{
do
{
n=1;
P30=1; //关闭MOS输出
Tube_data[0]=31; //熄灭第一个数码管
Tube_data[1]=31; //熄灭第二个数码管
Tube_data[2]=32; //输出”-“给第三个数码管
Tube_display();
if(P31==0) //判断是否按下按钮,按下等于开机
{
Delay_ms(1000);
n=0;
}
}while(n);
t1=0;
}
}
如果再不行就去模吧里面找原帖,我也是按照原帖做的。 |
|