📄 ch452l.lst
字号:
C51 COMPILER V7.50 CH452L 05/15/2008 15:59:16 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CH452L
OBJECT MODULE PLACED IN CH452L.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CH452L.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /* ***************************
2 Website: http://wch.cn
3 Email: tech@wch.cn
4 Author: W.ch 2005.4
5 CH452的4线接口子程序
6 ****************************
7 CH45X的4线接口,不含按键中断为3个I/O引脚,含按键中断为4个I/O,类似SPI时序,
8 四线制方式也可以参照CH451,其中对CH451的选择4线串行接口初始化子函数可以省去
9 *************************************************************************** */
10 #include "PIN.H" // 修改该文件以适应硬件环境/单片机型号等
11 #include "CH452CMD.H" // CH452常量定义
12 #include "definition.h"
13 #define uchar unsigned char
14 #define uint unsigned int
15 extern uchar storey;
16 extern uchar inside_request;
17 extern uchar outside_request;
18 bit stop=0;
19
20 void CH452_Write(unsigned short cmd)
21 {
22 1 unsigned char i;
23 1 DISABLE_KEY_INTERRUPT; //禁止键盘中断,防止传输过程中被CH452中断而进入中断服务程序中再次传输
24 1 CH452_LOAD_CLR; //命令开始,LOAD=0
25 1 CH452_LOAD_D_OUT; // 设置LOAD为输出方向
26 1 CH452_DOUT_D_IN; // 设置DOUT为输入方向
27 1 CH452_DIN_D_OUT; // 设置DIN为输出方向
28 1 CH452_DCLK_D_OUT; // 设置DCLK为输出方向
29 1 for(i=0;i!=12;i++) //送入12位数据,低位在前
30 1 {
31 2 if (cmd&1) {CH452_DIN_SET;}
32 2 else {CH452_DIN_CLR;} // 输出位数据
33 2 // CH452_DIN=cmd&1;
34 2 CH452_DCLK_CLR;
35 2 cmd>>=1;
36 2 CH452_DCLK_SET; //上升沿有效
37 2 }
38 1 CH452_LOAD_SET; //加载数据,LOAD上升沿
39 1 DELAY_1US; //命令数据加载周期不小于6US,CH451不需要该周期
40 1 DELAY_1US;
41 1 DELAY_1US;
42 1 DELAY_1US;
43 1 DELAY_1US;
44 1 DELAY_1US;
45 1 ENABLE_KEY_INTERRUPT;
46 1 }
47
48 //*************************************************
49 //输入按键代码子程序,从CH452读取
50 unsigned char CH452_Read( void )
51 {
52 1 unsigned char i;
53 1 unsigned char cmd,keycode; //定义命令字,和数据存储器
54 1 DISABLE_KEY_INTERRUPT; //禁止键盘中断,防止传输过程中被CH452中断而进入中断服务程序中再
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -