|
单片机源程序如下:
- #include "config.h"
- #define LEDCON 0x00000200 /*P0.9引脚控制LED,低电平点亮*/
- #define LEDCON1 0x00000400
- void DelayNS(uint32 dly) /*长软件延时*/
- {
- uint32 i;
- for(;dly>0;dly--)
- for(i=0;i<50000;i++);
- }
- #include "config.h"
- #define uchar unsigned char
- char LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*0-9数字段码表*/
- void delay(uint32 n) /*延时子程序*/
- {
- uint32 i;
- for(i=0;i<500000;i++)
- n--;
- }
- void light(int m) /*显示数码管子程序*/
- {
- int i;
- if(m==0)
- {
- for(i=9;i>=0;i--) /*东西亮绿灯,南北亮红灯延时9s*/
- {
- IOSET=LED[i]; /*查段码表送显示*/
- delay(500000000);
- IOCLR= 0x000001ff; /*IO低九位清零*/
- }
- }
- else
- {
- if(m==1)
- {
- for(i=6;i>=0;i--) /*东西亮黄灯,南北亮黄灯延时6s*/
- {
- IOSET=LED[i]; /*查段码表送显示*/
- delay(500000000);
- IOCLR= 0x000001ff; /*IO低九位清零*/
- }
- }
- else
- {
- for(i=8;i>=0;i--) /*东西亮红灯,南北亮绿灯延时8s*/
- {
- IOSET=LED[i]; /*查段码表送显示*/
- delay(500000000);
- IOCLR= 0x000001ff; /*IO低九位清零*/
- }
- }
- }
- }
- int main(void) /*主程序*/
- {
- uint32 j;
- while(1)
- {
- PINSEL0=0x00000000;
- IODIR=0x00007fff;
- IOCLR=0x00007fff ;
- IOSET=0x00004200; /*东西方向亮红灯,南北方向亮绿灯*/
- j=0;
- light(j);
- IOCLR=0x00007fff ;
- IOSET=0x00002400; /*东西方向亮黄灯,南北方向亮黄灯*/
- j=1;
- light(j);
- IOCLR=0x00007fff ;
- IOSET=0x00001800; /*东西方向亮绿灯,南北方向亮红灯*/
- j=2;
- light(j);
- IOCLR=0x00007fff ;
- IOSET=0x00002400; /*东西方向亮黄灯,南北方向亮黄灯*/
- j=1;
- light(j);
- }
- return(0);
- }
复制代码
|
|