標題: 藍橋杯歷年省賽試題解析,長貼,持續更新 [打印本頁]
作者: 13122031726 時間: 2018-3-5 19:42
標題: 藍橋杯歷年省賽試題解析,長貼,持續更新
【藍橋杯單片機設計與開發】(18)省賽試題解析 2011第三屆 溫度記錄器(上)從本章開始,我將開始為大家講解歷年的省賽真題的編程思路以及編程原理,通過這種方式讓大家學習邊熟悉這種多模塊協同的綜合題目的編程方式。
2011年第三屆藍橋杯 單片機類 省賽試題是按照任務要求設計一個“溫度監控器”,因為后續內容每個模塊都有較多的代碼,故我們將每一個題目分成兩章來發布。
功能簡述 “溫度監控器”可以實現環境溫度檢測及報警功能;通過 EEPROM 存儲上下限溫度數值,溫度上下限數值可通過外部按鍵更改。系統硬件電路主要有單片機控制電路、數碼管顯示電路、EEPROM 存儲電路、直流電機驅動電路(設計部分)、鍵控制電路及繼電器組成,系統框圖如圖 1 所示:
MCS-51 單片機匯編指令集、C51 關鍵字、DS18B20 和 AT24C02 芯片部分驅動、CT107D考試平臺電路原理圖以及本題所涉及到的芯片數據手冊,可參考計算機上的電子文檔。
設計任務要求1.數碼管顯示通過 8 位共陽數碼管顯示溫度信息,包括設定的溫度上下限數值和當前溫度值,顯示格式如圖 2 所示:
示例代碼:display.c
- /************************************************************/
- /************************智術靈慧****************************/
- /******************藍橋杯2011年省賽試題**********************/
- /***********************溫度監控器***************************/
- /*******************聯系QQ:1149809374***********************/
- /*************聯系郵箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
-
- #include "stc15f2k60s2.h"
- #include "display.h"
- #include "at24c02.h"
- #include "ds18b20.h"
-
- uchar code tab[] =
- {0XC0,0XF9,0XA4,0XB0,0X99,0X92,
- 0X82,0XF8,0X80,0X90,0XBF,0XFF};
- uchar strtab[8];
- uchar temp_value;
- uint i;
-
- void display(char max,char min)
- {
- strtab[0] = tab[max / 10];
- strtab[1] = tab[max % 10];
- strtab[2] = tab[min / 10];
- strtab[3] = tab[min % 10];
- strtab[4] = tab[11];
- strtab[5] = tab[11];
- strtab[6] = tab[temp_value / 10];
- strtab[7] = tab[temp_value % 10];
- }
-
- void Timer0Init(void) //5毫秒@11.0592MHz
- {
- AUXR |= 0x80;//定時器時鐘1T模式
- TMOD &= 0xF0;//設置定時器模式
- TL0 = 0x00;//設置定時初值
- TH0 = 0x28;//設置定時初值
- TF0 = 0;//清除TF0標志
- TR0 = 1;//定時器0開始計時
- }
-
- void Timer0_int() interrupt 1 using 0
- {
- static uchar num;
- TH0 = 0xcd;
- TL0 = 0xd4;
-
- switch (num)
- {
- case 0: P2 = ((P2&0x1f)|0xc0); P0 = 0x01;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 1: P2 = ((P2&0x1f)|0xc0); P0 = 0x02;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 2: P2 = ((P2&0x1f)|0xc0); P0 = 0x04;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 3: P2 = ((P2&0x1f)|0xc0); P0 = 0x08;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 4: P2 = ((P2&0x1f)|0xc0); P0 = 0x10;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 5: P2 = ((P2&0x1f)|0xc0); P0 = 0x20;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 6: P2 = ((P2&0x1f)|0xc0); P0 = 0x40;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- case 7: P2 = ((P2&0x1f)|0xc0); P0 = 0x80;
- P2 = ((P2&0x1f)|0xff); P0 = strtab[num]; break;
- default: break;
- }
- num++;
- if (num == 8)
- num = 0;
- }
-
- void Timer1Init(void) //5毫秒@11.0592MHz
- {
- AUXR |= 0x40; //定時器時鐘1T模式
- TMOD &= 0xF0; //設置定時器模式
- TL1 = 0x00; //設置定時初值
- TH1 = 0x28; //設置定時初值
- TF1 = 0; //清除TF0標志
- TR1 = 1; //定時器0開始計時
- }
-
- void Timer1_int() interrupt 3
- {
- i++;
- if(i == 400)
- {
- i = 0;
- temp_value = ReadTemp();
- }
- }
復制代碼
示例代碼:display.h- /************************************************************/
- /************************智術靈慧****************************/
- /******************藍橋杯2011年省賽試題**********************/
- /***********************溫度監控器***************************/
- /*******************聯系QQ:1149809374***********************/
- /*************聯系郵箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
-
- #ifndef __DISPLAY_H_
- #define __DISPLAY_H_
-
- void display(uchar max,uchar min);
- void Timer0Init(void);
- void Timer1Init(void);
-
- #endif
復制代碼
2.溫度測量單元通過 DS18B20 數字溫度芯片測量環境溫度。
示例代碼:ds18b20.c
- /************************************************************/
- /************************智術靈慧****************************/
- /******************藍橋杯2011年省賽試題**********************/
- /***********************溫度監控器***************************/
- /*******************聯系QQ:1149809374***********************/
- /*************聯系郵箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
-
- #ifndef __DELAY_H_
- #define __DELAY_H_
-
- void Delay5us();
- void Delay10ms();
- void Delay500us();
-
- #endif
復制代碼- /************************************************************/
- /************************智術靈慧****************************/
- /******************藍橋杯2011年省賽試題**********************/
- /***********************溫度監控器***************************/
- /*******************聯系QQ:1149809374***********************/
- /*************聯系郵箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
- #include "delay.h"
- #include "intrins.h"
-
- void Delay5us() //@11.0592MHz
- {
- unsigned char i;
-
- _nop_();
- i = 11;
- while (--i);
- }
-
- void Delay10ms() //@11.0592MHz
- {
- unsigned char i, j;
-
- i = 108;
- j = 145;
- do
- {
- while (--j);
- } while (--i);
- }
-
- void Delay500us() //@11.0592MHz
- {
- unsigned char i, j;
-
- _nop_();
- _nop_();
- i = 6;
- j = 93;
- do
- {
- while (--j);
- } while (--i);
- }
復制代碼
本章內容到這里就先結束了,剩下的程序和文檔將在下一部分一同發出,希望大家先對這一部分內容進行加深理解,只有將每一部分都了解透徹才能更好地完成比賽的要求。
更多資訊關注公眾號:智術靈慧(zslh_dyh)
QQ交流群:693211073

作者: 13122031726 時間: 2018-3-6 17:23
【藍橋杯單片機設計與開發】(19)省賽試題解析 2011第三屆 溫度記錄器(下)從本章我們繼續上一章的內容,我將開始為大家講解歷年的省賽真題的編程思路以及編程原理,通過這種方式讓大家學習邊熟悉這種多模塊協同的綜合題目的編程方式。
2011年第三屆藍橋杯 單片機類 省賽試題是按照任務要求設計一個“溫度監控器”第二章。
功能簡述 “溫度監控器”可以實現環境溫度檢測及報警功能;通過 EEPROM 存儲上下限溫度數值,溫度上下限數值可通過外部按鍵更改。系統硬件電路主要有單片機控制電路、數碼管顯示電路、EEPROM 存儲電路、直流電機驅動電路(設計部分)、鍵控制電路及繼電器組成,系統框圖如圖 1 所示:
MCS-51 單片機匯編指令集、C51 關鍵字、DS18B20 和 AT24C02 芯片部分驅動、CT107D考試平臺電路原理圖以及本題所涉及到的芯片數據手冊,可參考計算機上的電子文檔。
設計任務要求3.EEPROM 記錄單元系統通過 AT24C02 存儲溫度信息,AT24C02 內部存儲地址 0x00 和 0x01 分別存儲
溫度上下限數據信息;溫度上下限數據可通過外部按鍵進行修改,并通過數碼管實時顯
示。數據存儲格式如圖 3 所示:
示例代碼:at24c02.c
- /************************************************************/
- /************************智術靈慧****************************/
- /******************藍橋杯2011年省賽試題**********************/
- /***********************溫度監控器***************************/
- /*******************聯系QQ:1149809374***********************/
- /*************聯系郵箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
-
- #ifndef __AT24C02_H_
- #define __AT24C02_H_
-
- #define SlaveAddrW 0xA0
- #define SlaveAddrR 0xA1
-
- void IIC_Start(void);
- void IIC_Stop(void);
- void IIC_Ack(unsigned char ackbit);
- bit IIC_WaitAck(void);
- void IIC_SendByte(unsigned char byt);
- unsigned char IIC_RecByte(void);
- void WriteByte_AT24C02(uchar add,uchar date);
- uchar ReadByte_AT24C02(uchar add);
-
- #endif
復制代碼
4.按鍵控制單元(見main.c)獨立按鍵 S4 設定為“加上限”按鍵;每按下一次,溫度上限值增加 1℃;
獨立按鍵 S5 設定為“加下限”按鍵;每按下一次,溫度下限值增加 1℃;
獨立按鍵 S6 設定為“減上限”按鍵;每按下一次,溫度上限值減少 1℃;
獨立按鍵 S7 設定為“減下限”按鍵;每按下一次,溫度下限值減少 1℃。
5.按直流電機驅動電路設計(見main.c)設計一個直流電機驅動電路與單片機 P34 引腳連接。
6.溫控單元(見main.c)若當前溫度數值超過 EEPROM 中存儲的溫度上限數據,通過單片機 P34 口產生周期為 1KHz 占空比為 30%的 PWM 信號驅動直流電機工作。待溫度恢復到上下限閾值內時,P34 口輸出高電平,直流電機停止工作。
若當前溫度低于 EEPROM 中存儲的溫度下限數據,繼電器打開,當溫度恢復到上
3下限閾值內時,繼電器自動關閉。
7.系統初始狀態說明(見main.c)上、下限溫度值需要設定在 0℃到 99℃范圍內,下限值不大于上限值。系統上電后,從 EEPROM 中讀取溫度上、下限數值,并實時顯示當前溫度。
示例代碼:main.c
本章資料下載地址
本章關于2011年省賽試題“溫度監控器”的講解到這里就結束了,如果有不理解的可以加群,找我或者群里的朋友交流。
更多資訊關注公眾號:智術靈慧(zslh_dyh)
QQ交流群:693211073

-
-
第三屆 溫度記錄器.rar
2018-3-6 17:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
207.56 KB, 下載次數: 40, 下載積分: 黑幣 -5
作者: 13122031726 時間: 2018-3-9 14:46
【藍橋杯單片機設計與開發】(20)省賽模擬題解析 2012第四屆 自動售水機(簡析)“自動售水機”設計任務書功能簡述通過競賽硬件平臺模擬小區自動售水機的工作流程:通過按鍵控制售水機水流出和停止;通過數碼管顯示費率、出水量及總費用;通過光敏電阻檢測環境亮度,在亮度過低的情況下,自動開燈。系統硬件電路主要由單片機控制電路、數碼管顯示電路、A/D 轉換電路及功能按鍵組成。系統框圖如圖 1 所示:
單總線驅動程序、CT107D 單片機考試平臺電路原理圖以及本題所涉及到的芯片數據手冊,可參考計算機上的電子文檔。程序流程圖及相關工程文件請以考生號命名,并保存在計算機上的考生文件夾中(文件夾名為考生準考證號,文件夾位于 windows 桌面上)。
設計任務及要1. 溫度檢測溫度檢測采用 DS18B20 溫度傳感器,數據經過單片機處理后,與用戶設定的溫度上限(T MAX )和溫度下限(T MIN )比較,確定當前溫度所處的區間,數碼管溫度顯示格式如圖 2 所示:
關于溫度區間的說明 :
溫度區間 0:當前溫度<T MIN
溫度區間 1:T MIN ≤當前溫度≤T MAX
溫度區間 2:當前溫度>T MAX
可設定的最大溫度區間:0℃~99℃
2. 用戶輸入-3 ×4 矩陣鍵盤通過矩陣鍵盤設定系統的工作參數,各個按鍵的功能定義如圖 3 所示:
“設置”按鍵按下后,進入工作參數設定界面,如圖 4 所示,依次按下設定的數值,再次按下“設置”按鍵,保存當前輸入的數據,并退出工作參數設定界面。
3. 執行機構執行機構由指示燈 L1 和繼電器組成,用于報警和連接外部高低溫執行機構。
3.1 實時溫度處在溫度區間 0,繼電器關閉,指示燈 L1 以 0.8 秒為間隔閃爍;
3.2 實時溫度處在溫度區間 1,繼電器關閉,指示燈 L1 以 0.4 秒為間隔閃爍;
3.3 實時溫度處在溫度區間 2,繼電器打開,指示燈 L1 以 0.2 秒為間隔閃爍。
4. 初始化狀態說明系統默認的溫度上限為 30℃(T MAX ),溫度下限為 20℃(T MIN ),可以通過矩陣鍵盤修改。
5. 電路原理圖設計假定一個光敏電阻,在光線充足的狀態下,阻值為 5KΩ,擋光狀態下阻值≥45 KΩ,使用簡單阻容元件、晶體管、運算放大器等設計一個光敏電路開關電路,擋光狀態下電路驅動 5V繼電器 K1 吸合,反之,繼電器斷開。設計過程中,請考慮信號抖動等因素,簡述電路的工作原理與設計思路,并繪制出電路原理圖。
本章資料下載地址無黑幣見原文,有的直接這里就行。
本章關于2012年省賽模擬試題“自動售水機”的源碼請各位下載查看,不懂得地方留言或者加群交流。
更多資訊關注公眾號:智術靈慧(zslh_dyh)
QQ交流群:693211073

-
-
第四屆 自動售水機.rar
2018-3-9 14:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
565.26 KB, 下載次數: 20, 下載積分: 黑幣 -5
作者: 13122031726 時間: 2018-3-9 16:15
【藍橋杯單片機設計與開發】(20)省賽模擬題解析 2012第四屆 自動售水機(簡析)“自動售水機”設計任務書功能簡述通過競賽硬件平臺模擬小區自動售水機的工作流程:通過按鍵控制售水機水流出和停止;通過數碼管顯示費率、出水量及總費用;通過光敏電阻檢測環境亮度,在亮度過低的情況下,自動開燈。系統硬件電路主要由單片機控制電路、數碼管顯示電路、A/D 轉換電路及功能按鍵組成。系統框圖如圖 1 所示:
單總線驅動程序、CT107D 單片機考試平臺電路原理圖以及本題所涉及到的芯片數據手冊,可參考計算機上的電子文檔。程序流程圖及相關工程文件請以考生號命名,并保存在計算機上的考生文件夾中(文件夾名為考生準考證號,文件夾位于 windows 桌面上)。
設計任務及要1. 溫度檢測溫度檢測采用 DS18B20 溫度傳感器,數據經過單片機處理后,與用戶設定的溫度上限(T MAX )和溫度下限(T MIN )比較,確定當前溫度所處的區間,數碼管溫度顯示格式如圖 2 所示:
關于溫度區間的說明 :
溫度區間 0:當前溫度<T MIN
溫度區間 1:T MIN ≤當前溫度≤T MAX
溫度區間 2:當前溫度>T MAX
可設定的最大溫度區間:0℃~99℃
2. 用戶輸入-3 ×4 矩陣鍵盤通過矩陣鍵盤設定系統的工作參數,各個按鍵的功能定義如圖 3 所示:
“設置”按鍵按下后,進入工作參數設定界面,如圖 4 所示,依次按下設定的數值,再次按下“設置”按鍵,保存當前輸入的數據,并退出工作參數設定界面。
3. 執行機構執行機構由指示燈 L1 和繼電器組成,用于報警和連接外部高低溫執行機構。
3.1 實時溫度處在溫度區間 0,繼電器關閉,指示燈 L1 以 0.8 秒為間隔閃爍;
3.2 實時溫度處在溫度區間 1,繼電器關閉,指示燈 L1 以 0.4 秒為間隔閃爍;
3.3 實時溫度處在溫度區間 2,繼電器打開,指示燈 L1 以 0.2 秒為間隔閃爍。
4. 初始化狀態說明系統默認的溫度上限為 30℃(T MAX ),溫度下限為 20℃(T MIN ),可以通過矩陣鍵盤修改。
5. 電路原理圖設計假定一個光敏電阻,在光線充足的狀態下,阻值為 5KΩ,擋光狀態下阻值≥45 KΩ,使用簡單阻容元件、晶體管、運算放大器等設計一個光敏電路開關電路,擋光狀態下電路驅動 5V繼電器 K1 吸合,反之,繼電器斷開。設計過程中,請考慮信號抖動等因素,簡述電路的工作原理與設計思路,并繪制出電路原理圖。
本章資料下載地址無黑幣見原文,有的直接這里就行。
本章關于2012年省賽模擬試題“自動售水機”的源碼請各位下載查看,不懂得地方留言或者加群交流。
更多資訊關注公眾號:智術靈慧(zslh_dyh)
QQ交流群:693211073

-
-
第四屆 自動售水機.rar
2018-3-9 16:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
565.26 KB, 下載次數: 28, 下載積分: 黑幣 -5
作者: lzDestiny 時間: 2019-3-20 17:24
樓主停更了么?
作者: hfj2011 時間: 2019-6-12 10:50
期待更新,點贊
作者: abc111111 時間: 2019-6-12 13:17
怎么不用lcd12864當顯示呢?學習不來
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久一区二区三区免费
|
一区二区三区高清
|
成人免费视频
|
久久成人在线视频
|
一级片免费视频
|
亚洲精品99
|
日本三级网址
|
天堂中文av
|
亚洲免费在线观看
|
我要看黄色录像一级片
|
免费成人国产
|
亚洲一区二区三区国产
|
91色在线视频
|
久久久男人的天堂
|
日韩视频一区二区三区
|
涩爱av一区二区三区
|
免费亚洲视频
|
中文一区
|
国产日韩欧美电影
|
亚洲欧洲成人av每日更新
|
午夜免费网站
|
中文一区二区视频
|
国产精品色|
99热播放
|
成人av一区二区亚洲精
|
午夜欧美|
亚洲精品视频一区
|
九九热国产精品视频
|
国产黑丝在线
|
精品久久一区二区三区
|
一区二区三区影院
|
免费在线观看一区二区三区
|
欧美性另类
|
欧美日韩一
|
麻豆av免费观看
|
另类一区
|
91久久精品一区二区二区
|
东方伊人免费在线观看
|
久久久久国产精品午夜一区
|
成人小视频在线观看
|
成人免费三级电影
|