滚屏显示电话号码:
- #include "COMM/stc.h"
- #include "COMM/usb.h"
-
- #define MAIN_Fosc 24000000UL
-
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
-
- u8 SEG_Tab[21] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xFF}; //0-9段码,0-9带小数点,熄灭
- u8 COM_Tab[8] = { 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe }; //0-7的位码数组
- u8 Show_Tab[14]= {1,5,2,3,4,8,5,2,8,6,6,20,20,20};
-
- u8 num = 0;
- u8 segdig;
- u16 segdelay;
- void sys_init();
- void delay_ms(u16 ms);
-
- void Timer0_Init(void) //1毫秒@24.000MHz
- {
- AUXR &= 0x7F;
- TMOD &= 0xF0;
- TL0 = 0x30;
- TH0 = 0xF8;
- TF0 = 0;
- TR0 = 1;
- ET0 = 1;
- }
-
-
- void main()
- {
- sys_init();
- usb_init();
- Timer0_Init();
- EA = 1;
- while(1)
- {
- if( DeviceState != DEVSTATE_CONFIGURED )
- continue;
- if( bUsbOutReady )
- {
- usb_OUT_done();
- }
-
- for(num=0;num<8;num++)
- {
- if(num+segdig < 14)
- {
- P7 = COM_Tab[num];
- P6 = SEG_Tab[Show_Tab[num+segdig]];
- }
- if(num+segdig >= 14)
- {
- P7 = COM_Tab[num];
- P6 = SEG_Tab[Show_Tab[num+segdig-14]];
- }
- delay_ms(1);
- }
- }
-
- }
-
-
- void Timer0_Isr(void) interrupt 1
- {
- segdelay++;
- if(segdelay == 1000) segdelay = 0;
- if(segdelay == 0) segdig++;
- if(segdig >13) segdig = 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) //unsigned int
- {
- u16 i;
- do
- {
- i = MAIN_Fosc/6000;
- while(--i);
- }while(--ms);
- }
复制代码
|