- #include <STC15W204S.h>
- #include <intrins.h>
- #define uchar unsigned char //定义一下方便后面使用
- #define uint unsigned int //定义一下方便后面使用
- #define ulong unsigned long //定义一下方便后面使用
- #define COMM_BAUD_RATE 9600 //串口波特率
- #define FOSC 11059200L //晶振设置,默认使用11.0592M Hz,
- sbit KEY1 = P3^3; //触发
- uchar code Table[]={0X03,0Xfd,0X14,0Xff,0X00,0X00,0X00,0X0f,0X6b};
- void Delay10ms() //@11.0592MHz
- {
- unsigned char i, j;
- i = 18;
- j = 235;
- do
- {
- while (--j);
- } while (--i);
- }
- void UartInit(void)
- {
- SCON = 0x50;//8位数据,可变波特率
- AUXR |= 0x01;//串口1选择定时器2为波特率发生器
- AUXR |= 0x04;//定时器2时钟为Fosc,即1T
- //内部RC时钟设置为11.0592的定时器2初值设置
- T2L = 0xE0;//设定定时初值
- T2H = 0xFE;//设定定时初值
- AUXR |= 0x10;//启动定时器2
- ES = 1 ;//允许UART串口中断
- EA = 1 ;//允许总中断
- }
- void send(uchar dat)
- {
- SBUF=dat; //发送指令到SBUF
- while(!TI); //等待发送结束
- TI=0; //清除结束标志,以便再发送数据
- }
- void main()
- {
- uchar i;
- UartInit();//串口寄存器的初始化设置
- while(1)
- {
- if(KEY1==0) //判断是否按下键盘
- {
- Delay10ms();
- if(KEY1==0)
- {
- for(i=0;i<9;i++)
- send(Table[i]);
- /* send(0X03);
- send(0XFD);
- send(0X14);
- send(0XFF);
- send(0X00);
- send(0X00);
- send(0X00);
- send(0X0F);
- send(0X6B);
- */
- }
- while(!KEY1);//按键锁定,每按一次count只加1.
- }
- }
- }
复制代码 |