📄 text1.c
字号:
#include <reg51.h>
#include<stdio.h>
#define P8253ControlWord 0XFFFF //8253控制字
#define P8253Channel0 0X3FFF //8253通道0地址
#define P8253Channel1 0X7FFF //8253通道1地址
#define P8253Channel2 0XBFFF //8253通道2地址
#define uchar unsigned char //uchar代表单个字节无符号数
#define uint unsigned int //uint无符号字
void WriteControlWord(uchar c8253data);
void WriteToChannel0(uchar c8253data);
void WriteToChannel1(uchar c8253data);
void WriteToChannel2(uchar c8253data);
xdata uchar c8253word=0;
Uart_Init(); //输出口初始化
void Delay(); //延时程序
main()
{ Uart_Init(); //
P0=0XFF; //端口初始化为0xFF
P1=0XFF;
P2=0XFF;
P3=0XFF;
c8253word=0X10;//通道0 方式0
WriteControlWord(c8253word);//写入控制字
WriteToChannel0(0X80);//写入计数初值
c8253word=0X56;//通道1 方式3
WriteControlWord(c8253word);//写入控制字
WriteToChannel1(0X80);//写入计数初值
c8253word=0X98;//通道2 方式4
WriteControlWord(c8253word);//写入控制字
WriteToChannel2(0X80);//写入计数初值
while(1);
}
Uart_Init()
{SCON = 0x52; /* 设置串行口控制寄存器SCON*/
TMOD = 0x21; /* 12M时钟时波特率为2400 */
TCON = 0x69; /* TCON */
TH1 = 0xf3; /* TH1 */
}
void Delay() //延时程序
{ uint i;
for(i=0;i<200;i++);
}
void WriteControlWord(uchar c8253data)//写控制字
{ *((uchar xdata *)P8253ControlWord)=c8253data;
}
void WriteToChannel0(uchar c8253data)//写通道0初值
{ *((uchar xdata *)P8253Channel0)=c8253data;
}
void WriteToChannel1(uchar c8253data)//写通道1初值
{*((uchar xdata *)P8253Channel1)=c8253data;
}
void WriteToChannel2(uchar c8253data)//写通道2初值
{ *((uchar xdata *)P8253Channel2)=c8253data;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -