使用的元器件:
1、STC89C52RC單片機(jī)一個
2、11.0592晶振一個
3、30pf磁片電容兩只
4、1K電阻4個
5、led發(fā)光二級管4只
6、3.3/5V電源模塊一個
7、面包板一個
8、連接導(dǎo)線數(shù)根
實現(xiàn)的功能:
流水燈及閃爍效果
目的:初學(xué)者都是從51單片機(jī)開發(fā)板開始,開發(fā)板集成了很多功能,學(xué)習(xí)者在開發(fā)板上使用各種功能可能得心應(yīng)手,但離開了開發(fā)板卻是一片茫然,本貼旨在給像我的一樣茫然者一點小小啟發(fā),大神勿噴,多多指正。
制作出來的實物圖如下:
因無法上傳視頻,就發(fā)張圖片吧,附件中有完整資料
單片機(jī)源程序如下:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit led0=P1^0;
- sbit led1=P1^1;
- sbit led2=P1^2;
- sbit led3=P1^3;
- /*------------------------------------------------
- 延時子程序
- ------------------------------------------------*/
- void delay(uint cnt)
- {
- while(--cnt);
- }
- /*----------------------------------
- led燈閃爍子程序
- -----------------------------------*/
- void led_ShanShuo()
- {
- uchar i;
- for(i=0;i<3;i++)
- {
- P1=0x00;
- delay(50000);
- P1=0xff;
- delay(50000);
- }
- }
- /*------------------------------
- 流水燈子程序
- ------------------------------*/
- void led_LiuShuiDeng1()
- {
- led0=0;
- delay(50000);
- led0=1;
- led1=0;
- delay(50000);
- led1=1;
- led2=0;
- delay(50000);
- led2=1;
- led3=0;
- delay(50000);
- led3=1;
- delay(50000);
- }
- /*------------------------------------------------
- 利用循環(huán)移位方式實現(xiàn)LED流水燈效果子程序
- --------------------------------------------------*/
- void led_LiuShuiDeng2()
- {
- P1=0xfe;//給初始化值 換算成二進(jìn)制是 1111 1110
- while(1)
- { delay(50000);//延時程序
- P1<<=1;//左移一位 該語句等效于 P1=P1<<1
- P1|=0x01;//最后一位補(bǔ) 1,該語句等效于 P1=P1|0x01 符號"|"表示"或"
- if(P1==0xf7) //檢測是否移到最左端?"=="表示檢測符號 2 端的值是否相等
- {
- delay(50000);
- P1=0xfe; //重新賦值
- }
- }
- }
- void main()
- {
- while(1)
- {
- led_LiuShuiDeng1();
- led_ShanShuo();
- }
- }
復(fù)制代碼 視頻:
視頻.7z
(2.89 MB, 下載次數(shù): 11)
2022-10-28 21:58 上傳
點擊文件名下載附件
面包板布局最小單片機(jī)實現(xiàn)流水燈接線詳圖、演示視頻及Keil代碼
|