我是菜逼!我是菜逼!我是菜逼!
我的微控制器長這樣:
jd51微控制器開發板
(我也不知道為啥他為啥傳上來就斜了)
開發板原理圖
我初步寫的程式:
#include #define uchar unsigned char
#define uint unsigned int
sbit c573 = p2^5; //控制數碼管晶元開啟
uchar times = 0; //計數器輪數
uint time = 30; //初步定義倒計時30秒
code uchar letter = ;
/* 0 , 1 , 2 , 3 ,
4 , 5 , 6 , 7 ,
8 , 9 , a , b ,
c , d , e , f , */
code uchar local = ;
//數碼管位 佔位,左1,左2,左3,左4
void clock1(); //計時1s
void t0reset();
//uint alltime( uint time ); //總時間(以後再寫)
void output( uint temp ); //顯示輸出當前時間
void delay( uint ); //延時函式
void main() }}
void clock1() }}
void t0reset()
void delay( uint temp )
void output( uint temp )
} else while(1)
}
然後呢我發現我發現這個程式在數碼管顯示的while迴圈之**不來????
我不信邪(萬一好了呢??)燒進去一看
果然一直顯示30,並沒有在計時,計時函式一直就沒執行。
屎意用上心頭,我跑廁所拉屎,隨著一聲聲噗呲噗呲有乙個主意湧上心頭!!!
這個是不是需要乙個中斷函式????
然而我發現我不會寫
看了會也沒太看明白,但是卻有另乙個想法!
我是不是可以把計時函式拆開,然後時刻去查詢是否計滿1s????
我去搞搞
我回來了,我寫不出來,我去學學中斷函式。
誒我的媽真香,我沒用中斷函式,還是用查詢模式把他給寫了。
**如下:
#include #define uchar unsigned char
#define uint unsigned int
sbit c573 = p2^5; //¿øöæêýâë¹üð¾æ¬¿ªæô
uchar times = 0; //¼æêýæ÷âöêý
uint time = 30; //³õ²½¶¨òåµ¹¼æê±30ãë
code uchar letter = ;
/* 0 £¬ 1 £¬ 2 £¬ 3 £¬
4 £¬ 5 £¬ 6 £¬ 7 £¬
8 £¬ 9 £¬ a £¬ b £¬
c £¬ d £¬ e £¬ f £¬ */
code uchar local = ;
//êýâë¹üî» õ¼î»£¬×ó1£¬×ó2£¬×ó3£¬×ó4
void t0reset();
void output( uint temp ); //ïôê¾êä³öµ±ç°ê±¼ä
void delay( uint ); //ñó걺¯êý
void output0();
void main() }}
void t0reset()
void delay( uint temp )
void output()
} if(!time) break; }}
void output0()
}
注釋亂碼了??算了湊合吧,我也懶得搞了。
我現在打算
1.我想用中斷函式寫一下這個程式
2.我想加更多的操作,使用者可以自己設定時間、倒計時到了會叫
先來簡單的最簡單的,加操作。
我搞了搞!你康康!!
#include #define uchar unsigned char
#define uint unsigned int
sbit key1 = p3^2;
sbit key2 = p3^3;
sbit key3 = p3^4;
sbit key4 = p3^5;
sbit speaker = p2^4;
sbit c573 = p2^5; //¿øöæêýâë¹üð¾æ¬¿ªæô
uchar times = 0; //¼æêýæ÷âöêý
uint time = 0; //³õ²½¶¨òåµ¹¼æê±30ãë
code uchar letter = ;
/* 0 £¬ 1 £¬ 2 £¬ 3 £¬
4 £¬ 5 £¬ 6 £¬ 7 £¬
8 £¬ 9 £¬ a £¬ b £¬
c £¬ d £¬ e £¬ f £¬ */
code uchar local = ;
//êýâë¹üî» õ¼î»£¬×ó1£¬×ó2£¬×ó3£¬×ó4
void t0reset(); //
void start(); //
void delay( uint ); //ñó걺¯êý
void input(); //
void main()
}void t0reset()
void delay( uint temp )
void start()
} if(!time) break; }}
void output0()
}void input()
}
但是現在呢,我好像沒有搞那個按鍵防抖還是什麼的,出現了這個狀況。
我也不知這是好還是壞
我摸了摸74hc573 真的燙!!!
我現在去看看中斷函式咋寫
我寫出來了!!!我現在去寫注釋!
#include #define uchar unsigned char
#define uint unsigned int
sbit key1 = p3^2;
sbit key2 = p3^3;
sbit key3 = p3^4;
sbit key4 = p3^5;
sbit speaker = p2^4;
sbit c573 = p2^5; //控制數碼管晶元開啟
uchar times = 0; //計數器輪數
uint time = 0; //初步定義倒計時30秒
code uchar letter = ;
/* 0 , 1 , 2 , 3 ,
4 , 5 , 6 , 7 ,
8 , 9 , a , b ,
c , d , e , f , */
code uchar local = ;
//數碼管位 佔位,左1,左2,左3,左4
void delay( uint temp ) //延時函式
void outputonce() //輸出單次數碼管
void input() //輸入數字
}void outputtime() //迴圈輸出數碼管數字
}void t0reset() //t0計時器復位
void timer0() interrupt 1 //中斷函式timer0,不用呼叫t0reset函式,tf0會自動置0
}void main()
}}
演示效果如下:
微控制器倒計時實現
蜂鳴器又把我家貓嚇一跳,我家貓已經乙個下午受我蜂鳴器的折磨了
別看了,已經沒了。
用python寫楊輝三角
先定義階層函式,求出階層 deffact n if n 0 return int 1 else return int n fact n 1 再定義組合函式,求出組合c n,m 的值 defcom n,m return fact n fact m fact n m 呼叫cum函式,輸出結果 i int...
用原生js寫三角形
直角三角形 直角三角形 leta number str n return str console.log a 5 letb number 這是輸出的星星是依次遞加,只有i能每次遞加所以j i,每次就能遞加 for let j 0 j i j str n return str console.log ...
用迴圈佇列寫楊輝三角形
用迴圈佇列寫楊輝三角形 include using namespace std const int maxsize 100 template class sqqueueclass 非迴圈隊佇列類模板 template sqqueueclass sqqueueclass 建構函式 template s...