|
單片機源程序如下:
- #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);
- }
復制代碼
|
|