📄 main.c
字号:
/*-----------------------------------------------------*
*工 程 名:
*硬件连接:
*程序描述: SD-HC08 模板生成
*/
/*[头文件]*/
#include "GP32C.h" //映像寄存器地址头文件
#include "KB.h"
/*[主函数]*/
void main()
{ unsigned int va;
unsigned char p,ko;
KB_Init();
while(1)
{
do
{
ko=KB_Scan();
}while(ko==0xff);//查找有没有按键按下,有就跳出,
va=KB_Def(ko);
Timer(va);
do
{ko=KB_Scan();
p=((ko==0xff)|(ko==0xD7)|(ko==0xE7));
}while(!p);//查询按键有没有放开,当放开就停止
T1SC|=1<<TSTOPBit;//关记数器,第五位.
DDRD=0xff;
PTD|=0xcf;//使数据口为I/o模式,输出为低电平(为1)
}
}
/*定时器初始化设计*/
void Timer(unsigned int frq)
{ unsigned int frq_c;
unsigned char frqh_w,frql_w;
frq_c=38400/frq;//得到频率值所对应的周期
frq=((frq_c*2)>>8)&0x00ff;//得到高八位的数值
frqh_w=frq;
frq=((frq_c*2)&0x00ff);//得到相应的低八位
frql_w=frq;
//禁止溢出中断、不启动计数、分频因子=64
T1SC=0b00100110;//分频系数为64,不容许中断,定时器停止
T1SC0=0b00010110; //0b00010110设置通道0输出捕捉模式,
//不允许比较中断,输出电平反转
//计数寄存器初值=0x0000
T1CNTH=0x00; T1CNTL=0x00;
//对应的数值产生对应的频率值,在通道寄存器溢出时翻转;
T1CH0H=frqh_w; T1CH0H=frql_w;
//允许定时器1计数寄存器计数
T1SC&=~(1<<TSTOPBit);
}/*定时器结束*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -