藍橋杯 第六屆省賽 溫度器

2021-10-02 14:48:24 字數 3401 閱讀 1869

實驗平台:ct107d

實驗晶元:stc15f2k60s2

實驗現象:完成題目要求

**如下

#include

"stc15f2k60s2.h"

sbit dq = p1^4;

//單匯流排介面

//單匯流排延時函式

void

delay_onewire

(unsigned

int t)

//stc89c52rc

//通過單匯流排向ds18b20寫乙個位元組

void

write_ds18b20

(unsigned

char dat)

delay_onewire(5

);}//從ds18b20讀取乙個位元組

unsigned

char

read_ds18b20

(void

)delay_onewire(5

);}return dat;

}//ds18b20裝置初始化

bit init_ds18b20

(void

)unsigned

intduwendu()

#ifndef __onewire_h

#define __onewire_h

unsigned

char

rd_temperature

(void);

//; ;

unsigned

intread_temp()

;#endif

#include

#include

sbit sck=p1^

7;

sbit sda=p2^

3;

sbit rst = p1^3;

// ds1302復位

void

write_ds1302

(unsigned

char temp)

}void

write_ds1302_byte

(unsigned

char address,

unsigned

char dat )

unsigned

char read_ds1302_byte (

unsigned

char address )

rst=0;

_nop_()

; sck=0;

_nop_()

; sck=1;

_nop_()

; sda=0;

_nop_()

; sda=1;

_nop_()

;return

(temp);}

void

set_sfm

(unsigned

char shi,

unsigned

char fen,

unsigned

char miao)

#ifndef __ds1302_h

#define __ds1302_h

void

write_ds1302

(unsigned

char temp)

;void

write_ds1302_byte

(unsigned

char address,

unsigned

char dat )

;unsigned

char

read_ds1302_byte

(unsigned

char address )

;void

set_sfm

(unsigned

char shi,

unsigned

char fen,

unsigned

char miao)

;#endif

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit buzz = p0^6;

uchar code duan=

;//定義段碼陣列

uchar disbuff[8]

;//定義顯示數字

uchar temp_val[10]

;uchar trg,cont;

uchar gap=1;

uchar jishu=0;

uchar shi,fen,miao;

uchar mode =1;

count_temp =0;

uchar temp;

bit shot_flag =1;

bit read_temp_flag =0;

bit led_flag =0;

bit rec_temp =0;

bit open_flag =0;

void

closebuzz()

void

keyscan()

void

keyfun()

if(trg ==

0x04

&&mode ==1)

if(trg ==

0x08

&& mode ==1)

}void

shownum()

//顯示數字函式

if(mode ==2)

if(shot_flag ==0)

}if(mode ==3)

}void

display()

//數碼管掃瞄函式

void

timer0init

(void

)//2毫秒@12.000mhz

void

time0

() interrupt 1

if(sec >= gap&&open_flag)

}display()

;keyscan()

;keyfun()

;}void

set_led()

if(shot_flag ==0)

}if(led_flag ==0)

}void

main()

shownum()

;set_led();}}

第六屆藍橋杯省賽試題B組

獎券數目 有些人很迷信數字,比如帶 4 的數字,認為和 死 諧音,就覺得不吉利。雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某 活動的獎券號碼是5位數 10000 99999 要求其中不要出現帶 4 的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。請提交該數字 乙...

藍橋杯第六屆 省賽C B組 答案

第一題ans 52488 include using namespace std bool check int x return true int main cout cnt endl return0 第二題 ans 2017 08 05 include using namespace std in...

2014 第六屆藍橋杯 省賽 C C組

答案 2520.答案 142857 歷史上,不同的人類聚居地可能有不同的曆法,因而記錄下來的資料中日期的換算就很麻煩。幸好今天我們統一使用公元紀年法。當然,這種曆法對求兩個日期差多少天也不是十分簡便,但畢竟是可以忍受的。下面的程式計算了兩個日期的差值,兩個日期都使用公元紀年法。請分析程式邏輯,並推斷...