单片机跑马灯简单程序设计

来源:百度知道 编辑:UC知道 时间:2024/06/28 02:51:19
8盏发光二极管灯初始全灭,过2S后由最低位逐一点亮,间隔时间2S,不断循环,每循环一次两只数码管加1,两只数码管初始值为00。加到99回到00重新递加。

我分会追加的 谢谢啦

是课题设计吧,呵呵 又想混过去啊 这么好一个锻炼机会浪费了
给你个类似,剩下的你自己改咯
//MCU:AT89S52
//晶振:12M
#include<AT89X52.H>
const unsigned char led_mod[34]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,
0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,
0xE7,0xDB,0xBD,0x7E,0x7E,0xBD,0xDB,0xE7,
0XAA,0X55
};

/********1ms延时子程序***********/
delay_nms(unsigned int n)
{
unsigned int i;
unsigned char j;

for(i=0;i<n;i++)
for(j=0;j<120;j++)
; //空操作
}

void main(void)
{
unsigned char a;
while(1)
{
for(a=0;a<34;a++)
{

P0=led_mod[a];
if(a>=32)
delay_nms(1500);//延时1.5S
delay_nms(300);//延时0.3S,