c语言文件读写调试,通过调试的AT93C46读写程序(C语言)

/*********************************************************************

通过调试的AT93C46读写程序(C语言)

* 程序说明:本程序实现51系列单片机对AT93C46的读写,ORG端接地

* 版本: v1.1

*********************************************************************/

#include #include unsigned char uchar;

#define READ_D 0xc0     //读指令

#define WRITE_D 0xa0     //写指令

#define ERASE_D 0xe0     //擦除指令

#define EWEN_D 0x98     //擦/写允许指令

#define EW_D 0x80     //擦/写禁止指令

sbit CS = P1^0;

sbit SK = P1^1;

sbit DI = P1^2;

sbit DO = P1^3;

//时钟函数

void at93c46_clock(void)

{

SK=0;

_nop_();

SK=1;

}

//输入函数;in_data为数据,d_bit为输入数据的位数。

void send(uchar in_data,uchar d_bit)

{

uchar i;

for(i=0;i   {

DI=(

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中驱动AT93C46(一种存储器接口芯片)通常涉及到硬件接口编程和设备驱动程序的编写。AT93C46是一种用于串行Eeprom的芯片,你需要做的是设置寄存器、读写数据以及处理中断等操作。 以下是一个简单的步骤概述: 1. **初始化**:首先,你需要初始化AT93C46的寄存器,比如地址线配置、时钟频率设置等。通常会使用特定的I/O端口来控制数据线、地址线和控制信号。 ```c void init_AT93C46(int data_port, int address_port) { // 设置数据线和地址线为输入/输出模式 // ... // 设置起始地址和时钟频率 // ... } ``` 2. **读取/写入**:使用指定的数据端口(`data_port`)进行数据传输。例如,读取数据时,先发送读命令,然后从数据端口读取数据。 ```c uint8_t read_data(uint16_t addr) { // 发送读命令 // 从data_port读取数据 return read_register(data_port, addr); } void write_data(uint16_t addr, uint8_t data) { // 发送写命令 // 写入数据到data_port write_register(data_port, addr, data); } ``` 3. **错误处理**:考虑到通信可能会出错,可能需要添加错误检查机制,如检查数据是否正确接收或写入。 4. **中断管理**:如果支持,AT93C46可能提供中断功能,需要配置中断向量并处理中断事件。 ```c void enable_interrupts() { // Enable interrupts and set interrupt handler // ... } void interrupt_handler() { // Handle interrupt conditions // ... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值