我弄成了这样 对吗 #include "system.h"#include "Sys
tick.h"
#include "led.h"
#include "smg.h"
#include "beep.h"
u8 smgduan[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};//0~F ÊýÂë¹Ü¶ÎÑ¡Êý¾Ý
int main()
{
u8 i=0;
SysTick_Init(72);
LED_Init();
SMG_Init();
while(1)
{
for(i=0;i<16;i++)
{
GPIO_Write(SMG_PORT,(u16)(~smgduan
));
delay_ms(1000);
}
BEEP_Init();
u16 n=0;
while(1)
{
n++;
if(n%10==0)
{
beep=!beep;
}
if(n%20000==0)
{
led1=!led1;
}
delay_us(10);
}
}
}
-
-
定时器定时一个基本时间,数码管和蜂鸣器的时间就基于这个基本时间来调节。在定时器中断程序里进行数码管的扫描程序,并根据蜂鸣器的状态标志来判断是应该鸣叫还是关闭。
在主程序中进行计数,当计数到F时,设置蜂鸣器状态标志,方便在定时器中断程序里鸣叫蜂鸣器。
调试时可以先调试蜂鸣器部分,这个比较好调试,然后调试数码管部分,这里会有消隐,扫描频率等问题。
一周热门 更多>