控制P37 P21 P22 P23 P16 P17控制流水燈
單片機源程序如下:
- /***************************************
- 小系統板的花樣流水燈
- 流水燈只接P37 P21 P22 P23 P16 P17
- ***************************************/
- #include <STC15F2K60S2.H>
- #include "intrins.h"
- #include "led.h"
- #include "delay.h"
- /***************************************/
- typedef unsigned int uint;
- typedef unsigned char uchar;
- /***************************************/
- void initial();
- void Delay1000ms();
- void led_dr_light_on(uchar m);
- void led_dr_light_off(uchar m);
- void writedate(uchar dat1);
- void delay(uchar m);
- void Delay1000ms();
- void Delay500ms();
- void Delay300ms();
- void Delay100ms();
- void Delay500us();
- void style_one();
- void new();
- /***************************************/
- uchar code tab_zeor[6]={0x00,0x00,0x00,0x00,0x00,0x00};
- uchar code tab[6]={0x01,0x02,0x04,0x08,0x10,0x20};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
- uchar code tab_new[8]={0x01,0x02,0x04,0x08,0x10,0x20,0X40,0X80};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
- uchar code tab_one[14]={0xaa,0xaa,0x55,0x55,0xaa,0xaa,0x55,0x55,0xff,0xff,0x00,0x00,0xff,0xff};//1010 1010 aa 0101 0101 55
- uchar code tab_two[17]={0x21,0x12,0x0c,0x12,0x21,0x12,0x0c,0x12,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
- uchar code tab_three[25]={0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
- /***************************************/
- void main()
- {
-
- uint i=0;
- initial();
-
- while(1)
- {
- //new();
- style_one();
- }
-
-
-
- }
-
- /***************************************
- 函數名:initial
- 功能:初始化程序
- 說明:
- 入口參數:無
- 返回值:無
- ***************************************/
- void initial()
- {
- P0M0 = 0x00;
- P0M1 = 0x00;
- P1M0 = 0x00;
- P1M1 = 0x00;
- P2M0 = 0x00;
- P2M1 = 0x00;
- P3M0 = 0x00;
- P3M1 = 0x00;
- P4M0 = 0x00;
- P4M1 = 0x00;
- P5M0 = 0x00;
- P5M1 = 0x00;
- P6M0 = 0x00;
- P6M1 = 0x00;
- P7M0 = 0x00;
- P7M1 = 0x00;
- P37 = 0;
- P21 = 0;
- P22 = 0;
- P23 = 0;
- P16 = 0;
- P17 = 0;
- P0=0;
- }
- /***************************************
- 函數名:led_dr_light_on
- 功能:控制燈亮
- 說明:輸入m的值,使第m個燈亮
- 入口參數:m
- 返回值:無
- ***************************************/
- void led_dr_light_on(uchar m)
- {
- switch(m)
- {
- case 0: P37=1; break;
- case 1: P21=1; break;
- case 2: P22=1; break;
- case 3: P23=1; break;
- case 4: P16=1; break;
- case 5: P17=1; break;
- }
- }
- /***************************************
- 函數名:led_dr_light_off
- 功能:控制燈滅
- 說明:輸入m的值,使第m個燈滅
- 入口參數:m
- 返回值:無
- ***************************************/
- void led_dr_light_off(uchar m)
- {
- switch(m)
- {
- case 0: P37=0; break;
- case 1: P21=0; break;
- case 2: P22=0; break;
- case 3: P23=0; break;
- case 4: P16=0; break;
- case 5: P17=0; break;
- }
- }
- /***************************************
- 函數名:writedate
- 功能:識別輸入的字節
- 說明:輸入字節,使該字節對應的1亮,0滅
- 入口參數:dat1
- 返回值:無
- ***************************************/
- void writedate(uchar dat1)
- {
-
- uint temp1,i=0;
-
- for(i=0;i<6;i++)
- {
- temp1=dat1 & 0x01;
- if(temp1 != 0)
-
- led_dr_light_on (i); //亮
- else
- led_dr_light_off (i); //滅
- dat1 >>= 1;
- }
- }
- /***************************************
- 函數名:style_one
- 功能:樣式一
- 說明:花樣流水
- 入口參數:無
- 返回值:無
- ***************************************/
- void style_one()
- {
- uint i;
- for(i=0;i<6;i++)
- {
- writedate(tab[i]);
- Delay100ms();
- }
- initial();
- Delay100ms();
-
- for(i=0;i<6;i++)
- {
- writedate(tab[5-i]);
- Delay100ms();
- }
- initial();
- Delay100ms();
-
- for(i=0;i<14;i++)
- {
- writedate(tab_one[i]);
- Delay100ms();
- }
- initial();
- Delay100ms();
- for(i=0;i<17;i++)
- {
- writedate(tab_two[i]);
- Delay100ms();
- }
- initial();
- Delay100ms();
-
- for(i=0;i<25;i++)
- {
- writedate(tab_three[i]);
- Delay100ms();
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
小系統板.zip
(36.62 KB, 下載次數: 5)
2017-10-11 23:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|