ADS7843触摸屏驱动程序——51单片机版

需积分: 10 15 下载量 88 浏览量 更新于2024-09-30 收藏 26KB DOC 举报
"这篇资源是关于使用ADS7843触摸屏芯片在51单片机上的驱动程序实现。" ADS7843是一款常用的电容式触摸屏控制器,适用于各种嵌入式系统,包括51系列单片机。这个程序展示了如何通过SPI(Serial Peripheral Interface)总线与ADS7843通信,读取和处理触摸屏的输入数据。 首先,程序中包含了必要的头文件,如"reg51.h"用于51单片机的基本寄存器定义,"intrins.h"可能包含了一些内联函数的定义。接着,定义了与ADS7843连接的SPI接口引脚,如DCLK(数据时钟)、CS(片选)、DIN(数据输入)、DOUT(数据输出)以及BUSY(忙标志)。 在程序中,可以看到几个关键的函数: 1. `delay(unsigned char i--)`:这是一个简单的延时函数,通过循环计数实现,用于在特定操作之间添加必要的等待时间。 2. `start()`:这个函数用于初始化SPI通信,设置相关引脚状态,以准备开始数据传输。 3. `WriteCharTo7843(unsigned char num)`:此函数向ADS7843发送一个8位的数据字节,数据移位由DIN引脚完成,DCLK作为时钟脉冲。 4. `ReadFromCharFrom7843()`:该函数从ADS7843读取12位的数据。数据通过DOUT引脚接收,DCLK控制数据的移位。 5. `ZhongDuan() interrupt 0`:这是外部中断0的服务子程序,用于处理触摸屏的中断事件。中断后,有一个延时函数以消除可能的按键抖动,然后启动SPI通信,发送控制字来读取触摸屏的X坐标。根据ADS7843的 datasheet,控制字0x90表示采用差分方式读取X坐标。 在实际应用中,还需要编写类似的功能来读取Y坐标,以及可能的其他配置和控制命令。此外,ADS7843的Busy信号被用来确认转换是否完成,但在这个例子中,Busy信号的检查是可以省略的。 通过这些函数,51单片机能够与ADS7843进行有效的通信,从而获取触摸屏的坐标信息,实现对触摸屏输入的响应。在实际项目中,这些坐标信息通常会被用来驱动显示或其他控制逻辑,以实现用户友好的交互界面。