📄 ch452_2407.c.bak
字号:
/******************************************************************
本程序实现DSP控制ch452来实现键盘显示
*********************************************************************/
#include <2407.h>
#include <intrins.h>
#include <ch452_2407_pin.h> // 修改该文件以适应硬件环境/单片机型号等
//输出命令子程序
//定义一无符号整型变量存储12字节的命令字。
void CH452_Write(unsigned int cmd)
{
unsigned char i;
CH452_LOAD_CLR; //命令开始,LOAD=0
for(i=12;i!=0;i--) //送入12位数据,低位在前
{
if (cmd&1)
{
CH452_DIN_SET;
}
else
{
CH452_DIN_CLR;
} // 输出位数据
CH452_DCLK_CLR;
cmd>>=1;
CH452_DCLK_SET; //上升沿有效
}
CH452_LOAD_SET; //加载数据,LOAD上升沿
DELAY(6); //命令数据加载周期不小于6US
}
//*************************************************
//读按键子程序,DSP从CH452读出按键的代码
unsigned char CH452_Read()
{
unsigned char i;
unsigned char cmd,keycode; //定义命令字,和数据存储器
cmd=0x07; //输入读451命令字
CH452_LOAD_CLR;
for(i=4;i!=0;i--)
{
if (cmd&1)
{
CH452_DIN_SET;
}
else
{
CH452_DIN_CLR;
}
// 输出命令的前4位数据
CH452_DCLK_CLR;
cmd>>=1; //往右移一位
CH452_DCLK_SET; //产生时钟上升沿锁通知CH451输入位数据
}
CH452_LOAD_SET; //产生加载上升沿通知CH451处理命令数据
keycode=0; //清除keycode
for(i=0;i!=7;i++)
{
keycode<<=1; //数据移入keycode,高位在前,低位在后
keycode|=CH452_DOUT; //从高到低读入451的数据
CH452_DCLK_CLR; //产生时钟下升沿通知CH451输出下一位
CH452_DCLK_SET;
}
return(keycode); //反回键值
}
main()
{
/************** head files ********************/
#include "reg_c.h"
#include "var_g.h"
#include "fun_ex.h"
#include "macro.h"
void bk();
/******************************************************/
main()
{
sysini(); /*system initial*/
perini(); /*peripheral initial*/
para_load();
flagini();
enable();
operate_flag=RUN;
need_brk1=0;
f_r_last_adj=0;
f_r_now=12800;
f_pwm=0;
v_pwm=0;
oc_flag=0;
change_speed_flag=0;
/************************ main loop begin here ********************************/
while(1)
{
bk();
relayon();
// delay_ms(1000);
relayoff();
// k_ia=add2(0,1)+k_ia;
enable();
asm( " nop ") ;
}
}
void bk()
{
k_ia++;
return;
k_ia=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -