第六集、使用【Ai8051U】擎天柱核心板——IO口输入输出
任务一:按下P32按钮灯亮,松开P32按钮灯灭
- #include "ai8051u.h"
- #include "stc32_stc8_usb.h"
- #include "intrins.h"
-
- #define u8 unsigned char
- #define u16 unsigned int
-
- u8 state = 0;
-
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
-
- void Delay20ms(void) ;
- {
- unsigned long edata i;
-
- _nop_();
- _nop_();
- i = 119998UL;
- while (i) i--;
- }
-
-
- void main(void)
- {
- WTST = 0;
- EAXFR = 1;
- CKCON = 0;
-
- P0M1 = 0x00; P0M0 = 0x00;
- P1M1 = 0x00; P1M0 = 0x00;
- P2M1 = 0x00; P2M0 = 0x00;
- P3M1 = 0x00; P3M0 = 0x00;
- P4M1 = 0x00; P4M0 = 0x00;
- P5M1 = 0x00; P5M0 = 0x00;
- P6M1 = 0x00; P6M0 = 0x00;
- P7M1 = 0x00; P7M0 = 0x00;
-
- usb_init();
-
- IE2 |= 0x80;
- EA = 1;
-
- while (DeviceState != DEVSTATE_CONFIGURED);
-
- while(1)
- {
-
- if (bUsbOutReady)
- {
- //USB_SendData(UsbOutBuffer,OutNumber);
-
- usb_OUT_done();
- }
-
- //任务1:按下P32按钮灯亮,松开P32按钮灯灭;
- if( P32 == 0 )
- {
- P20 = 0;
- }
- else
- {
- P20 = 1;
- }
复制代码
任务二:任务2:按下P32按钮灯灭,松开P32按钮灯亮
- #include "ai8051u.h"
- #include "stc32_stc8_usb.h"
- #include "intrins.h"
-
-
- #define u8 unsigned char
- #define u16 unsigned int
-
- u8 state = 0;
-
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
-
- void Delay20ms(void) //@24.000MHz Delay20ms();
- {
- unsigned long edata i;
-
- _nop_();
- _nop_();
- i = 119998UL;
- while (i) i--;
- }
-
-
- void main(void)
- {
- WTST = 0;
- EAXFR = 1;
- CKCON = 0;
-
- P0M1 = 0x00; P0M0 = 0x00;
- P1M1 = 0x00; P1M0 = 0x00;
- P2M1 = 0x00; P2M0 = 0x00;
- P3M1 = 0x00; P3M0 = 0x00;
- P4M1 = 0x00; P4M0 = 0x00;
- P5M1 = 0x00; P5M0 = 0x00;
- P6M1 = 0x00; P6M0 = 0x00;
- P7M1 = 0x00; P7M0 = 0x00;
-
- usb_init();
-
- IE2 |= 0x80;
- EA = 1;
-
- while (DeviceState != DEVSTATE_CONFIGURED);
-
- while(1)
- {
-
- if (bUsbOutReady)
- {
- //USB_SendData(UsbOutBuffer,OutNumber);
-
- usb_OUT_done();
- }
- //任务2:按下P32按钮灯灭,松开P32按钮灯亮;
- if( P32 == 1 ) //判断P32按钮是否按下
- {
- P20 = 0;
- }
- else
- {
- P20 = 1;
- }
复制代码
任务三:按一下灯亮,按一下灯灭
- #include "ai8051u.h"
- #include "stc32_stc8_usb.h"
- #include "intrins.h"
-
-
- #define u8 unsigned char
- #define u16 unsigned int
-
- u8 state = 0;
-
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
-
- void Delay20ms(void) //@24.000MHz Delay20ms();
- {
- unsigned long edata i;
-
- _nop_();
- _nop_();
- i = 119998UL;
- while (i) i--;
- }
-
-
- void main(void)
- {
- WTST = 0;
- EAXFR = 1;
- CKCON = 0;
-
- P0M1 = 0x00; P0M0 = 0x00;
- P1M1 = 0x00; P1M0 = 0x00;
- P2M1 = 0x00; P2M0 = 0x00;
- P3M1 = 0x00; P3M0 = 0x00;
- P4M1 = 0x00; P4M0 = 0x00;
- P5M1 = 0x00; P5M0 = 0x00;
- P6M1 = 0x00; P6M0 = 0x00;
- P7M1 = 0x00; P7M0 = 0x00;
-
- usb_init();
-
- IE2 |= 0x80;
- EA = 1;
-
- while (DeviceState != DEVSTATE_CONFIGURED);
-
- while(1)
- {
-
- if (bUsbOutReady)
- {
- //USB_SendData(UsbOutBuffer,OutNumber);
-
- usb_OUT_done();
- }
-
- //任务3:按一下灯亮,按一下灯灭
- if( P32 == 0 ) //判断P32按钮是否按下
- {
- Delay20ms(); //延时20ms消抖
- if( P32 == 0 )
- {
- state = !state; //变量取反 0 1 0 1 0 1
- P20 = state;
- printf("state:%d\r\n",(int)state);
-
- while( P32 == 0 ); //等待P32松开
-
- }
- }
-
-
- }
- }
复制代码
|