2023实验日记STC32位单片机STC32G12K128-实验箱-V9.62
本帖最后由 STC89C51 于 2023-11-22 15:55 编辑.
2023实验日记STC 32位 8051 单片机
STC32G12K128-实验箱-V9.622023-05-19
STC 32位 8051 单片机
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=323
STC 32位 8051单片机
STC32G12K128-实验箱-V9.622023-05-19
非常感谢冲哥老师的辛苦教学
还有STC公司美女业务员的大力支持
非常感谢感谢
1933892258
.
..........................................................................................
8位数码管 显示8个 不同的数字 程序代码
修改成需要显示的数字代码位置
u8 Show_Tab[8] = {3,3,8,9,2,2,5,8};
..........................................................................................
#include "COMM/stc.h"
#include "COMM/usb.h"
#define SEG_Delay 1
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
u8 SEG_Tab = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };
u8 COM_Tab = { 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe };
u8 Show_Tab = {3,3,8,9,2,2,5,8};
void sys_init();
void delay_ms(u16 ms);
void main()
{
u8 num = 0;
sys_init();
usb_init();
EA = 1;
while(1)
{
if( DeviceState != DEVSTATE_CONFIGURED )
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P70 = 0;
P7 = COM_Tab;
P6 = SEG_Tab];
delay_ms(SEG_Delay);
num++;
if( num >7 )
num = 0;
}
}
void sys_init()
{
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;
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
IRC48MCR = 0x80;
while (!(IRC48MCR & 0x01));
USBCLK = 0x00;
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
.
本帖最后由 STC89C51 于 2023-11-7 19:00 编辑
.
第七集:按键点灯上
...........................................................................
按键打印
编写代码程序
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
}
}
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("??P33?? \r\n");
}
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
.....................................................................................................
程序编译成功
0错误0警告
Rebuild target 'Target 1'
compiling Demo.c...
linking...
Program Size: data=8.3 edata+hdata=420 xdata=192 const=66 code=7084
creating hex file from ".\Objects\Demo"...
".\Objects\Demo" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:00
..................................................................................
按键点灯
编写代码程序
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
P60 = 0;
}
}
else
{
P60 = 1;
}
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("??P33?? \r\n");
}
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
......................................................................................
程序编译成功
0错误 0警告
Rebuild target 'Target 1'
compiling Demo.c...
linking...
Program Size: data=8.3 edata+hdata=420 xdata=192 const=66 code=7090
creating hex file from ".\Objects\Demo"...
".\Objects\Demo" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:01
..............................................................................................
.
本帖最后由 STC89C51 于 2023-11-7 19:29 编辑
.
第七集:按键点灯上
...........................................................................
按键灭灯
编写代码程序
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
P60 = 0;
}
}
else
{
P60 = 1;
}
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("??P33?? \r\n");
P67 = 1;
}
}
else
{
P67 = 0;
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
......................................................
程序编译成功
0错误 0警告
Rebuild target 'Target 1'
compiling Demo.c...
linking...
Program Size: data=8.3 edata+hdata=420 xdata=192 const=66 code=7096
creating hex file from ".\Objects\Demo"...
".\Objects\Demo" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:00
...........................................................................................
LED取反
编写程序代码
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
P60 = 0;
}
}
else
{
P60 = 1;
}
// if( KEY2 == 0 )
// {
// delay_ms(10);
// if( KEY2 == 0 )
// {
// printf("??P33?? \r\n");
// P67 = 1;
// }
// }
// else
// {
// P67 = 0;
// }
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("??P33?? LED??\r\n");
P67 = !P67;
delay_ms(500);
}
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
........................................................
程序编写成功
0错误 0警告
Rebuild target 'Target 1'
compiling Demo.c...
linking...
Program Size: data=8.3 edata+hdata=420 xdata=192 const=71 code=7099
creating hex file from ".\Objects\Demo"...
".\Objects\Demo" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:01
......................................................................................
.
本帖最后由 STC89C51 于 2023-11-7 19:43 编辑
.
第七集:按键点灯上
.............................................................
3.3按键按下一次,LED状态改变一次
编写代码程序
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
P60 = 0;
}
}
else
{
P60 = 1;
}
// if( KEY2 == 0 )
// {
// delay_ms(10);
// if( KEY2 == 0 )
// {
// printf("??P33?? \r\n");
// P67 = 1;
// }
// }
// else
// {
// P67 = 0;
// }
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
printf("??P33?? LED??\r\n");
P67 = !P67;
while(KEY2 == 0)
{
}
}
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
.........................................................................
程序编译成功
0错误 0警告
Rebuild target 'Target 1'
compiling Demo.c...
linking...
Program Size: data=8.3 edata+hdata=420 xdata=192 const=71 code=7105
creating hex file from ".\Objects\Demo"...
".\Objects\Demo" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:00:00:01
........................................................................................
按键按下松开指示灯才会有变化
#include "COMM/stc.h" //µ÷ÓÃÍ·Îļþ
#include "COMM/usb.h"
#define KEY1 P32
#define KEY2 P33
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
//sbit P40 = P4^0; //Èý¼«¹Ü¿ØÖÆÒý½Å
//sbit P60 = P6^0; //LED¿ØÖÆÒý½Å
//sbit P61 = P6^1; //LED¿ØÖÆÒý½Å
void sys_init(); //º¯ÊýÉùÃ÷
void delay_ms(u16 ms);
void main() //³ÌÐò¿ªÊ¼ÔËÐеÄÈë¿Ú
{
sys_init(); //USB¹¦ÄÜ+IO¿Ú³õʼ»¯
usb_init(); //usb¿â³õʼ»¯
EA = 1; //CPU¿ª·ÅÖжϣ¬´ò¿ª×ÜÖжϡ£
while(1) //ËÀÑ»·
{
if( DeviceState != DEVSTATE_CONFIGURED ) //
continue;
if( bUsbOutReady )
{
usb_OUT_done();
}
P40 = 0; //Èý¼«¹ÜÒý½ÅÊä³öµÍµçƽ
// P60 = 0; //led4Òý½ÅÊä³öµÍµçƽ
// P61 = 0; //led5Òý½ÅÊä³öµÍµçƽ
if( KEY1 == 0 )
{
delay_ms(10);
if( KEY1 == 0 )
{
printf("??P32?? \r\n");
P60 = 0;
}
}
else
{
P60 = 1;
}
// if( KEY2 == 0 )
// {
// delay_ms(10);
// if( KEY2 == 0 )
// {
// printf("??P33?? \r\n");
// P67 = 1;
// }
// }
// else
// {
// P67 = 0;
// }
if( KEY2 == 0 )
{
delay_ms(10);
if( KEY2 == 0 )
{
while(KEY2 == 0)
{
}
printf("??P33?? LED??\r\n");
P67 = !P67;
}
}
}
}
void sys_init() //º¯Êý¶¨Òå
{
WTST = 0;//ÉèÖóÌÐòÖ¸ÁîÑÓʱ²ÎÊý£¬¸³ÖµÎª0¿É½«CPUÖ´ÐÐÖ¸ÁîµÄËÙ¶ÈÉèÖÃΪ×î¿ì
EAXFR = 1; //À©Õ¹¼Ä´æÆ÷(XFR)·ÃÎÊʹÄÜ
CKCON = 0; //Ìá¸ß·ÃÎÊXRAMËÙ¶È
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; //ÉèÖÃΪ׼˫Ïò¿Ú
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
//ÉèÖÃUSBʹÓõÄʱÖÓÔ´
IRC48MCR = 0x80; //ʹÄÜÄÚ²¿48M¸ßËÙIRC
while (!(IRC48MCR & 0x01));//µÈ´ýʱÖÓÎȶ¨
USBCLK = 0x00; //ʹÓÃCDC¹¦ÄÜÐèҪʹÓÃÕâÁ½ÐУ¬HID¹¦ÄܽûÓÃÕâÁ½ÐС£
USBCON = 0x90;
}
void delay_ms(u16 ms)
{
u16 i;
do
{
i = MAIN_Fosc/6000;
while(--i);
}while(--ms);
}
................................................................................................
.
页:
[1]