ch452程序代码 (2).doc_第1页
ch452程序代码 (2).doc_第2页
ch452程序代码 (2).doc_第3页
ch452程序代码 (2).doc_第4页
ch452程序代码 (2).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ch452程序代码/*/* FileName: ch452.h */* Function: */*-History-*/* Author | Date | Status | Description */* wang | 2011/8/04 | create | */* | | | */*/#ifndef _CH452_H#define _CH452_H/#ifndef_CH452A_H_/#define_CH452A_H_/*Define command*/#defineCMD_SYSPARA0x68/definiton for system parameter commanddefault:0#defineDISP0x01/0:disable 1:enable#defineKEYB0x02/0:disable 1:enable#define WDOG0x04/0:close1:open#defineDPLR0x08/0:low level1:high level#defineSSPD0x10/0:low speed1:high speed#defineINTM0x20/0:low level1:low level pulse#defineGPOE0x40/0:all DIG as driver1:DIG6 DIG7 as GPIO#defineCMD_DISPARA0x6A/definiton for display parameter commanddefault:0#defineMODE0x80/0:No decode1:BCD decode/#defineLIMIT0x70/bit6bit4 range from 000 to 111#defineINTENSITY0x0F/bit3bit0 range from 0000 to 1111#defineCMD_DISPDAT0x70/加载字数据前八位#defineCMD_GETKEY0x6E/键盘前八位#defineCMD_ACKEN0x6E/2线接口应答前八位/*Function prototype*/void ch452a_two_ack(void);void ch452a_Init (void);void ch452a_sendcmd(unsigned char cmd,unsigned char paradata);/写命令unsigned char ch452a_getkey(void);/读取按键unsigned char CH452_ReadKeyboard();#define KEY_UP0x59#define KEY_DOWN0x58#define KEY_LEFT0x5B#define KEY_RIGHT0x5A#define KEY_SET0x48#define KEY_OK0x40#endif主程序代码:/* FileName: ch452.c * Function: *-History-* Author | Date | Status | Description * wang | 2011/7/28 | create | * | | | */#include STC_NEW_8051.h#includeIIC.h#includeCh452.hsbit SCL=P10;sbit SDA=P11;/ FileName:ch452a_two_ack() / Function:Init_ack /void ch452a_two_ack()unsigned char i,wr_data;wr_data=CMD_ACKEN&0xfe;IIC_start();/* start condition */for(i=0;i8;i+)if(wr_data&0x80)/判断高位数据SDA=1;elseSDA=0;wr_data=1;/让高位数据往左移delays(1);SCL=1;/数据的写要在时钟为高电平时delays(4);SCL=0;delays(5); /* nine clock */SCL=0;delays(1);SDA=1;delays(4);SCL=1;delays(5);/* send data */for(i=0;i8;i+)SCL = 0;delays(1);SDA= 0;delays(4);SCL= 1;delays(5);IIC_stop();/ FileName:ch452a_Init() / Function:Init /void ch452a_Init(void)unsigned char cmddata,cmdadr;ch452a_two_ack();cmddata=CMD_SYSPARA;/系统参数地址cmdadr=DISP| KEYB & (INTM) & (DPLR);/系统参数数据IIC_writedata(cmddata,&cmdadr,1);cmddata=CMD_DISPARA;/显示参数地址cmdadr=MODE; IIC_writedata(cmddata,&cmdadr,1);/FunctionName:ch452a_sendcmd()/Description:send command to ch452a /void ch452a_sendcmd (unsigned char cmd,unsigned char paradata)unsigned char cmddata,cmdadr;cmddata=cmd;cmdadr=paradata;IIC_writedata(cmddata,&cmdadr,1); /FunctionName:ch452a_getkey()/Description:get key value from ch452a /unsigned char ch452a_getkey()unsigned char cmddata,keycode;/unsigned char*pData=&revdata;cmddata=CMD_GETKEY | 0x01; keycode=IIC_readdata(cmddata);return keycode;/*unsigned char CH452_ReadKeyboard()unsigned char recvdata,cmddata; unsigned char ack;/ uchar* pRecvData = &recvdata;cmddata = CMD_GETKEY | 0x01;IIC_start(); /启动IIC_send(cmddata); /发送从机地址ack=IIC_re_ack(ack);if(ack=0)recvdata = IIC_accept(cmddata);IIC_wr_ack(0); /主机发送应答给从机IIC_stop();else IIC_stop(); /ack条件不满足终止发送数据return recvdata

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论