|
1-14屆藍橋杯單片機組代碼與賽題.
#include <STC15F2K60S2.H>
#include "sys.h"
//控制數碼管、按鍵、LED、外部模塊函數刷新速率的變量
uchar seg_dly, key_dly, led_dly, sen_dly;
//seg_pos 定時器中斷顯示專用,循環依次顯示數碼管
//seg_buf[] 把字符串轉換后的段碼,保存下來
//seg_code[] 存儲要顯示內容的段碼
uchar seg_pos, seg_buf[10], seg_code[8] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
uchar key_val, key_old, key_down, key_up;
uchar led_stat = 0x00; ////記錄LED的狀態
bit seg_stat = 1; //1-頻率界面 0-電壓界面
ulong freq_temp = 0, freq = 0; //頻率的中間值 真正的頻率值
uint freq_ms; //記錄頻率的時間
float voltage_ain3 = 0, voltage_dac = 0; //通道3的電壓 DAC輸出電壓
bit mode = 1; //1-DAC輸出2V 0-DAC輸出通道3的電壓
bit led_flag = 1; //1開啟 0關閉
bit seg_flag = 1; //1開啟 0關閉
void main()
{
ClsPeripherial();//關閉外設
TimerInit(); //配置定時器1 定時器0
while(1)
{
SensorProc(); //PCF8591模塊處理函數
SegProc(); //數碼管處理函數
LedProc(); //LED處理函數
KeyProc(); //按鍵處理函數
}
}
void Timer0() interrupt 1
{
freq_temp++;
}
void Timer1() interrupt 3
{
if(++seg_dly == 200) seg_dly = 0;
if(++led_dly == 100) led_dly = 0;
if(++key_dly == 10) key_dly = 0;
if(++sen_dly == 200) sen_dly = 0;
if(++freq_ms == 1000) //每過1秒得出頻率值
{
freq = freq_temp;
freq_temp = 0; //頻率置0
freq_ms = 0;//頻率的時間置0
}
if(led_flag)
LedDisp(led_stat);//LED顯示
else
LedDisp(0x00);//熄滅LED
if(seg_flag)
{
SegDisp(seg_pos, seg_code[seg_pos]);//數碼管顯示seg_code[]數組的段碼
}else{
SegDisp(seg_pos, 0xff);//不顯示內容
}
if(++seg_pos == 8) seg_pos = 0;//數碼管顯示刷新
}
要的人太多了,代碼自己下載把,里面包含了兩份代碼,是不同寫法。不是國賽是省賽代碼,但是都差不多。下載文件里面有歷屆賽題。
部分文件超過了上傳限制,是國賽賽題(沒有代碼)以及一些客觀題解釋,如果想要可以留下郵箱推薦網易與qq郵箱。只需要省賽代碼下載下面文件即可。如果黑幣不夠也可以留下郵箱  
|
-
-
STC15單片機組代碼1-14.7z
2024-11-5 23:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
8.04 MB, 下載次數: 10, 下載積分: 黑幣 -5
1-14屆單片機組藍橋杯省賽代碼
評分
-
查看全部評分
|