#include "1602.h"
#include "Key.h"
uchar temp
uchar a,b
uchar x
uchar baojing_flag,xianzai_flag
uchar const table[]={"temperature-----"}
uchar const table1[]={"baojingT-------"}
uchar i
uchar fu_flag
void main()//这个单片机的程序
{ P3=0//P3拉低
init()//初始化硬件,保证与ds18b20可协调工作// init_ds18b20()//初始化ds18b20芯片
while(1)
{
key_in()//接收按钮键入
// x=init_ds18b20()
if (baojing_flag==1)
{
write_com(0x80)
for (i=0i<16i++)
{
write_data(table1[i])
}
write_com(0x80+0x40)//串口写入,加上后面的写入应该是一个通讯协议
write_data('H')
write_data(':')
write_data(' ')
write_data(0x30+8)
write_data(0x30+5)
write_data(' ')
write_data('C')
write_data(' ')
write_data('L')
write_data(':')
write_data(' ')
write_data(0x30+0)
write_data(0x30+0)
write_data(' ')
write_data('C')
}
if ((xianzai_flag==1)||(baojing_flag==0))
{
temp=readtemperature()
if ((temp>=85)&&(temp<128))
{
led1=1
led2=0
sp=1
// delay_50ms(1)
// sp=0
// delay_50ms(1)
// sp=1
}
if ((temp>0) &&(temp<85))//根据通信返回的值在0:86区间,led1和led2点亮
{
led1=0
led2=0
sp=0//sp拉低
}
if (temp>128)//根据通信返回的值在 {led2=1 //led2 熄灭 led1=0 //led1点亮 sp=1//sp拉高
}
if (temp>128)//大于128转为负数
{
temp=256-temp
fu_flag=1
}
else
{
fu_flag=0
}
write_com(0x80)//写入通信值;
for (i=0i<16i++)
{
write_data(table[i])
}
write_com(0x80+0x40)
write_data(' ')
write_data(' ')
if (fu_flag==1)
{
write_data('-')
}
write_data(0x30+temp/100)
write_data(0x30+temp%100/10)
write_data(0x30+temp%10)
write_data(' ')
write_data('C')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
write_data(' ')
delay_50ms(1)//延时50ms一般是保证通讯完成
}}
//整体看,这是单片机与ds18b20芯片进行通讯,来完成特定的任务。
#include <stdlib.h>//这两句是头文件#include <stdio.h>
struct number
{
int n//数
int flag //标记,1为素数,0为非素数
}
void sushu(struct number num[]) //定义函数sushu,形参是结构体变量struct number 型的数组(指针)
{
int n,i,j,k
printf("Please input a number: ")
scanf("%d",&n) //输入n
for(i=2i<=ni++) //初始化,2到n
{
num[i-2].n=i//将2到n存入数组num,注意下标是从0开始的。
num[i-2].flag=1 //先默认num中的所有数都是素数,即默认所有的flag都是1。
}
for(i=2i<=ni++)
{
for(j=2(num[i-2].n*j)<=nj++) //素数j倍的数不是素数
{
for(k=2k<=nk++) //遍历num数组
{
if((num[i-2].n*j)==num[k-2].n)
num[k-2].flag=0//如果是前一个确定的素数(比如2)的倍数,则标注flag为0,即表明不是素数。
}
}
}
for(i=2i<=ni++)
{
if(num[i-2].flag) //只有flag值为1时,if语句的下面语句才执行。即只打印素数。
printf("%d ",num[i-2].n)//打印结果。
}
printf("\n")
}
int main()
{
struct number num[1000]//定义一个能容纳1000个结构体变量的数组。
sushu(num)//调用函数sushu,输出结果。
return 0 //主函数返回0,正常结束。
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)