4
36
170
注册会员
数码管.c
2024-7-29 21:46 上传
点击文件名下载附件
1.62 KB, 下载次数: 55
使用道具 举报 送花
19
3191
4876
论坛元老
#include "COMM/stc.h" //调用头文件 #include "COMM/usb.h" #define KEY1 P32 //定义一个按键 引脚选择P32 #define KEY2 P33 //定义一个按键 引脚选择P33 #define BEEP P54 //定义一个按键 引脚选择P54 #define MAIN_Fosc 24000000UL //定义主时钟 char *USER_DEVICEDESC = NULL; char *USER_PRODUCTDESC = NULL; char *USER_STCISPCMD = "@STCISP#"; u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; //0-9 void sys_init(); //函数声明 void delay_ms(u16 ms); //unsigned int void main() //程序开始运行的入口 { u8 num = 0; sys_init(); //USB功能+IO口初始化 usb_init(); //usb库初始化 EA = 1; //CPU开放中断,打开总中断。 while(1) //死循环 { if( DeviceState != DEVSTATE_CONFIGURED ) // continue; if( bUsbOutReady ) { usb_OUT_done(); } P70 = 0; //开启一个数码管 //------------------------------------------------P32按下一次,灯往右边边移动一个单位 ----------------------------------------------- // P6 = SEG_Tab[num]; //这个数码管输出段码 // num ++; // if( num>9 ) // num = 0; // // delay_ms(1000); P6 = SEG_Tab[num]; //这个数码管输出段码 if( KEY1 ==0 ) { delay_ms(10); if( KEY1 ==0 ) { BEEP = 0; delay_ms(10); BEEP = 1; while( KEY1 ==0 ); if( num<9 ) { num++; } } } if( KEY2 ==0 ) { delay_ms(10); if( KEY2 ==0 ) { BEEP = 0; delay_ms(10); BEEP = 1; while( KEY2 ==0 ); if( num>0 ) num--; } } } } /* 11111110 0XFE 11111101 0XFD 11111011 0XFB 11110111 0XF7 11101111 0XEF 11011111 0XDF 10111111 0XBF 01111111 0X7F */ 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) //unsigned int { u16 i; do { i = MAIN_Fosc/6000; while(--i); }while(--ms); } 复制代码
//#include <STC32G.H> #include "COMM/stc.h" //调用头文件 #include "COMM/usb.h" #define KEY1 P32 //定义一个按键 引脚选择P32 #define KEY2 P33 //定义一个按键 引脚选择P33 #define BEEP P54 //定义一个按键 引脚选择P54 #define MAIN_Fosc 24000000UL //定义主时钟 char *USER_DEVICEDESC = NULL; char *USER_PRODUCTDESC = NULL; char *USER_STCISPCMD ="@STCISP#"; u8 SEG_Tab[10]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; //0-9 void sys_init(); //函数声明 void delay_ms(u16 ms); //unsigned int void main() { u8 num = 0; //程序开始运行的入口 sys_init(); //USB功能+I0口初始化 usb_init(); //usb库初始化 EA = 1; //CPT开放中断,打开总中断。 while(1) //死循环 { if( DeviceState != DEVSTATE_CONFIGURED) continue ; if( bUsbOutReady ) { usb_OUT_done(); } P70 = 0; //开启一个数码管 //---------------------------------P32按下一次,灯往右边边移动一个单位------------------------ // P6=SEG Tab[num]: //这个数码管输出段码 // num ++ ; // if(num>9) // num=0; // // delay_ms(1000); P6 = SEG_Tab[num]; //这个数码管输出段码 if ( KEY1 ==0 ) { //delay_ms(10); delay_ms(10); // if( KEY1 ==0) if( KEY1 ==0 ) { BEEP = 0; delay_ms(10); BEEP = 1; while( KEY1 ==0 ); if( num<9) { num++; } } } if( KEY2 ==0 ) { delay_ms(10); if(KEY2 ==0 ) { BEEP = 0; delay_ms(10); BEEP = 1; while( KEY2 ==0); if( num>0 ) num--; } } } } 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) //unsigned int { u16 i; do { i = MAIN_Fosc/6000; while(--i); }while(--ms); } 复制代码
张*** 发表于 2024-7-29 22:37 代码修改过来后我的还是有32个警告。
so*** 发表于 2024-7-29 23:14 这个是使用库函数的问题L57,由于这些函数未使用编译器警告而已,不用管他,如果flash占用不是很大忽略, ...
61
818
1494
金牌会员
130
1521
1865
zha*** 发表于 2024-7-30 12:05 他视频地下讲就有吧
vb2*** 发表于 2024-7-30 19:21 冲哥那个帖子里面有, 我已经下载保存了. 如果找不到的话,联系我,我发给你 ...
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-5-3 01:01 , Processed in 0.133358 second(s), 106 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.