熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-8-21 19:14
正文摘要:想自己制作 求指導(dǎo) :8個(gè)發(fā)光管由。上至下間隔1s流動(dòng),其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時(shí)關(guān)閉蜂鳴器,一直重復(fù)下去。 求教各位大佬: 我只能做到間隔一秒流動(dòng)。但是亮500ms,滅500ms這個(gè)操作 ... |
| 寫個(gè)延時(shí)函數(shù),再調(diào)用 |
| 干嘛搞個(gè)蜂鳴器的代碼,不是LED燈嗎? |
|
#include<reg52.h> typedef unsigned int uint;//無符號(hào)整型 void Delay500ms(); //@11.0592MHz void main(void) { while(1) { uint a; for(a = 0; a < 8;a++) { P1 = ~(0X01 << a); //這一行加上蜂鳴器開啟 Delay500ms();//500ms延時(shí) 11.0592MHZ } for(a = 0; a < 6;a++) { P1 = ~(0X40 >> a); //這一行加上蜂鳴器關(guān)閉 Delay500ms();//500ms延時(shí) 11.0592MHZ } } } void Delay500ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 5; j = 5; k = 150; do { do { while (--k); } while (--j); } while (--i); } //這個(gè)延時(shí)時(shí)間500毫秒多,具體使用自己微調(diào)吧 |
|
#include "reg52.h" #include "intrins.h" sbit BEEP = P2^3; sbit Led0 = P1^0; //著實(shí)費(fèi)引腳 (8個(gè)數(shù)碼管共陰) sbit Led1 = P1^1; sbit Led2 = P1^2; sbit Led3 = P1^3; sbit Led4 = P1^4; sbit Led5 = P1^5; sbit Led6 = P1^6; sbit Led7 = P1^7; unsigned char n; //嚴(yán)格意義上盡量別用延時(shí) void Delay100ms() //@11.0592MHz 100毫秒延時(shí) { unsigned char i, j; i = 180; j = 73; do { while (--j); } while (--i); } void delay_ms(unsigned char n) //延時(shí)是100ms的整數(shù)倍 { while(n>=0) { Delay100ms(); n--; } } void Beep() //蜂鳴器響函數(shù), { unsigned int i,j; for(i=0;i<700;i++) { BEEP = ~BEEP; for(j=0;j<300;j++); BEEP = ~BEEP; for(j=0;j<10;j++); } } void main() { unsigned int i; /* 第一種效果 while(1) { Led0 = Led2 = Led4 = Led6 = 1;//燈亮 0,2,4,6燈亮 Led1 = Led3 = Led5 = Led7 = 0;//燈滅 Beep(); delay_ms(5);//500ms Led0 = Led2 = Led4 = Led6 = 0;// 燈滅 Led1 = Led3 = Led5 = Led7 = 1;//燈亮 delay_ms(5);//500ms } */ while(1) { for(i=0;i<7;i++) { P1 = _crol_(P1,1); //右移 Beep(); delay_ms(5); } for(i=0;i<7;i++) { P1 = _cror_(P1,1); Beep(); delay_ms(5); } } } |
|
延時(shí)程序設(shè)計(jì)為500ms, temp=_crol_(temp,1) P1=temp; //亮 beep=0; //響 delay(); //延時(shí) P1=0xff; //滅 beep=1; //不響 delay(); //延時(shí) |
Powered by 單片機(jī)教程網(wǎng)