创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

51单片机读写AT29C040的C51程序

来源:单片机教程网 作者:单片机教程网 2020-11-07 12:01 次阅读

给大家介绍一个51单片机读写AT29C040的c51程序

#include 《reg51.h》

#include 《intrins.h》

unsigned char time;

void int_t0(void) interrupt 1 {

time++;

}

unsigned char d; //rec data

bit rec(void) {

TH0=0;time=0;

while (!RI) {if (time》1) return(1);}

RI=0;

d=SBUF;

return(0);

}

void sen(unsigned char dd) {

SBUF=dd;

while (!TI) {}

TI=0;

}

void wait(void) {

time=0;while (time《10) {}

}

void wait10ms(void) {

TH0=150;time=0;

while (!time) {}

}

sbit ce=P3^5;

sbit oe=P3^6;

sbit we=P3^7;

sbit a16=P3^2;

sbit a17=P3^3;

sbit a18=P3^4;

void pro_to_card(void) {

unsigned char no,i,j;

sen(0xaa);

if (rec()) {wait();return;}

no=d;

sen(d);

no《《=2;

no|=0xe3;

P3=0xff;

P3&=no;

i=0;

do {

P0=i;

j=0;

do {

if (rec()) {wait();ce=1;return;}

TI=0;SBUF=d;

P1=j;

P2=d;

ce=0;

we=0;

we=1;

ce=1;

j++;

} while (j);

wait10ms();

i++;

} while (i);

ce=1;

}

void card_to_pro(void) {

unsigned char no,i,j;

sen(0x55);

if (rec()) {wait();return;}

no=d;

sen(d);

no《《=2;

no|=0xe3;

P3=0xff;

P3&=no;

P2=0xff;

i=0;

do {

P0=i;

j=0;

do {

P1=j;

ce=0;oe=0;

no=P2;

oe=1;ce=1;

j++;

sen(no);

if (rec()) {wait();return;}

if (no!=d) {wait();return;}

} while (j);

i++;

} while (i);

}

/*

void load(unsigned int as,unsigned char dd) {

P0=as/256;P1=as;P2=dd;

ce=0;we=0;we=1;ce=1;

}

void erase(void) {

a16=a17=a18=0;

load(0x5555,0xaa);

load(0x2aaa,0x55);

load(0x5555,0x80);

load(0x5555,0xaa);

load(0x2aaa,0x55);

load(0x5555,0x10);

wait10ms();

wait10ms();

}

void unlock(void) {

unsigned char i;

a16=a17=a18=0;

load(0x5555,0xaa);

load(0x2aaa,0x55);

load(0x5555,0x80);

load(0x5555,0xaa);

load(0x2aaa,0x55);

load(0x5555,0x20);

i=0;

do {

P1=i;

ce=0;we=0;we=1;ce=1;

i++;

} while (i);

}

*/

//AT29C040读写主程序开始

void main(void) {

SCON=0x80;

TMOD=0x21;

ET0=TR0=1;EA=1;

wait10ms();

// erase();

// unlock();

REN=1;

while (1) {

REN=1;RI=0;

while (!RI) {} RI=0;

switch (SBUF) {

case 0x55:card_to_pro();break;

case 0xaa:pro_to_card();break;

case 0xa5:

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

sen(0xaa);

break;

}

}

}
责任编辑 LK

收藏 人收藏

    评论

    相关推荐

    BPF ring buffer解决的问题及背后的设计

    文章介绍了 BPF ring buffer 解决的问题及背后的设计,并给出了一些代码示例和内核 pa....
    的头像 Linux阅码场 发表于 05-17 09:37 107次 阅读

    基于51单片机的可调时钟闹钟

    仿真软件:Proteus8.9 程序编译软件:keil5 编写语言:C语言 功能介绍 时钟设置显示功....
    发表于 05-14 10:25 12次 阅读

    基于51单片机的自动售货机方案

    硬件构成:        本设计由STC系列单片机+12864显示+电源模块+按键模块+蜂鸣器报警模....
    的头像 tony 发表于 05-14 09:52 42次 阅读
    基于51单片机的自动售货机方案

    PLC程序源码之三得利啤酒灌装机图纸和程序

    PLC程序源码——上海光明三得利啤酒灌装机图纸和程序(三菱)
    发表于 05-13 14:50 26次 阅读

    三菱PLC编程实例之一个三台发电机两用一备的PLC程序

    三菱PLC(可编程逻辑控制器)编程实例项目例程:一个三台发电机两用一备的PLC程序
    发表于 05-11 15:04 33次 阅读

    三菱PLC编程实例之注塑机改造的程序(含触摸屏)

    三菱PLC(可编程逻辑控制器)编程实例项目例程,注塑机改造的程序(含触摸屏有注释)
    发表于 05-11 15:04 17次 阅读

    三菱PLC编程实例项目之饮水机生产线PLC程序

    三菱PLC(可编程逻辑控制器)编程实例项目例程,饮水机生产线PLC程序《带注释》
    发表于 05-11 14:54 16次 阅读

    三万多步马扎克系统三菱梯形图程序(英文)

    三万多步马扎克系统三菱梯形图程序英文注释(日本人写)
    发表于 05-11 14:47 18次 阅读

    MM32F0010与ht1621液晶显示的应用程序

    使用MM32F0010单片机连接ht1621液晶,显示1234的程序
    发表于 05-11 14:45 13次 阅读

    NDock.NET应用运行容器

    ./oschina_soft/ndock.zip
    发表于 05-11 09:51 7次 阅读
    NDock.NET应用运行容器

    51单片机简单易学教材(C语言版)

    本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中 逐步掌握单片....
    发表于 05-10 17:37 47次 阅读

    CRC校验原理及C51程序

    CRC校验原理: 其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,....
    发表于 05-10 15:38 13次 阅读

    污水处理FX2NPLC程序(有注解的)

    污水处理FX2NPLC程序(有注解的)
    发表于 05-09 17:05 29次 阅读

    Whitewidow SQL漏洞自动扫描工具

    ./oschina_soft/whitewidow.zip
    发表于 05-09 10:48 5次 阅读
    Whitewidow SQL漏洞自动扫描工具

    触摸屏程序无法下载的解决方法

    故障类型一:点击下载没反应 1. 检查“账户控制设置”(HMI 软件菜单栏:工具-账户控制设置)
    发表于 05-07 15:00 34次 阅读

    触摸屏程序下载方法和问题的解决

    一、在线下载步骤: 1.保存程序后,点击软件中应用---编译(快捷键 F5);
    发表于 05-07 14:51 28次 阅读

    触摸屏程序读取的设置步骤

    触摸屏程序默认不支持读取,需通过设置如下设置后即可支持: 1、打开触摸屏软件中的应用---保存和备....
    发表于 05-07 14:48 38次 阅读

    ItWasAllADream PrintNightmare的Python扫描程序

    ItWasAllADream.zip
    发表于 05-07 11:36 12次 阅读
    ItWasAllADream PrintNightmare的Python扫描程序

    BPF ring buffer解决的问题及其背后的设计

    因此内核 5.8 引入了 ringbuf 来解决这个问题。ringbuf 是一个“多生产者、单消费者....
    的头像 Linux阅码场 发表于 05-07 11:12 125次 阅读

    suframe-sunny thinkphp ngrok内网穿透库

    gitee-sunny.zip
    发表于 05-07 10:42 6次 阅读
    suframe-sunny thinkphp ngrok内网穿透库

    xsec-ssh-firewall ssh密码防暴力破解程序

    xsec-ssh-firewall.zip
    发表于 05-07 09:50 12次 阅读
    xsec-ssh-firewall ssh密码防暴力破解程序

    xsec-traffic恶意流量分析程序

    xsec-traffic.zip
    发表于 05-07 09:47 13次 阅读
    xsec-traffic恶意流量分析程序

    Kubei Kubernetes运行时扫描程序

    kubei.zip
    发表于 05-06 11:21 3次 阅读
    Kubei Kubernetes运行时扫描程序

    Tsunami漏洞扫描程序

    tsunami-security-scanner.zip
    发表于 05-06 11:05 6次 阅读
    Tsunami漏洞扫描程序

    三菱梯形图程序英文注释

    PLC源代码_ 三万多步马扎克系统三菱梯形图程序英文注释(日本人写)
    发表于 05-06 09:27 26次 阅读

    转盘伺复定位的程序FX2N+10PG(带注解)

    转盘伺复定位的程序FX2N+10PG(带注解)资料分享。
    发表于 05-05 15:38 24次 阅读

    恒压供水程序(三菱FX有注释)

    三菱PLC(可编程逻辑控制器)编程实例项目例程——自己写的恒压供水程序(三菱FX有注释)
    发表于 05-05 15:30 20次 阅读

    自动模切机PLC程序(FX系列)

    三菱PLC(可编程逻辑控制器)编程实例项目例程-自动模切机PLC程序(FX系列)
    发表于 05-05 14:59 23次 阅读

    新印刷机PLC程序分享

    三菱PLC(可编程逻辑控制器)编程实例项目例程——新印刷机PLC程序
    发表于 05-05 14:58 21次 阅读

    如何在程序中判断程序处于调试模式还是非调试模式?

    如何在程序中判断程序处于调试模式还是非调试模式? 程序进入调试的入口或标志在哪里? 主要是为了实现USB虚拟串口的功能,在...
    发表于 05-05 10:14 1331次 阅读

    fping网络小工具

    fping.zip
    发表于 05-05 09:55 14次 阅读
    fping网络小工具

    FusionDirectory系统架构管理程序

    fusiondirectory.zip
    发表于 05-05 09:53 10次 阅读
    FusionDirectory系统架构管理程序

    使用arm-none-eabi-gcc编译cubemx生成的项目没有程序跳到uart_init是为什么

    使用arm-none-eabi-gcc编译cubemx 生成的项目。 发现没有程序没有跳到uart_init void rt_hw_board_init(void) {   &nb...
    发表于 05-05 09:43 1076次 阅读

    i.MXRT1170上串行NOR Flash双程序可交替启动设计

    与 i.MXRT10xx 一样,这里要聊的还是在一片挂载在 FlexSPI 上的串行 NOR Fla....
    的头像 痞子衡嵌入式 发表于 04-29 15:23 181次 阅读

    Coreos-bootstrap CoreOS主机启动程序

    ansible-coreos-bootstrap.zip
    发表于 04-29 10:30 17次 阅读
    Coreos-bootstrap CoreOS主机启动程序

    Borg Backup备份工具

    borg.zip
    发表于 04-28 15:44 18次 阅读
    Borg Backup备份工具

    GUpdate自动升级程序

    gitee-GeneralUpdate.zip
    发表于 04-28 09:56 12次 阅读
    GUpdate自动升级程序

    多线程访问I2C总线时程序跑飞是什么情况导致的

    I2C总线挂载两个设备, 启动两个任务去访问设备, rt_mutex_take(&bus->lock, RT_WAITING_FOREVER); ret = ...
    发表于 04-28 09:48 2380次 阅读

    pprof-rs Rust程序的性能分析器

    pprof-rs.zip
    发表于 04-28 09:43 22次 阅读
    pprof-rs Rust程序的性能分析器

    Nging基于caddy的网站服务程序

    gitee-nging.zip
    发表于 04-28 09:23 12次 阅读
    Nging基于caddy的网站服务程序

    西门子要将LAD指令与PLC变量互连

    在 TIA Portal 中,可以在程序段中创建用户程序时直接创建变量。 以下步骤介绍了如何定义 ....
    的头像 机器人及PLC自动化应用 发表于 04-27 16:10 309次 阅读

    51单片机密码锁案例

    51单片机密码锁案例免费下载。
    发表于 04-27 15:58 126次 阅读

    SLogger用于记录日志的Electron桌面软件应用

    gitee-slogger.zip
    发表于 04-27 10:56 16次 阅读
    SLogger用于记录日志的Electron桌面软件应用

    LogMaster4Net日志服务器软件

    LogMaster4Net.zip
    发表于 04-27 10:28 11次 阅读
    LogMaster4Net日志服务器软件

    pgBadger PostgreSQL日志分析程序

    pgbadger.zip
    发表于 04-27 09:08 15次 阅读
    pgBadger PostgreSQL日志分析程序

    Socorro程序崩溃报告系统

    socorro.zip
    发表于 04-26 11:23 16次 阅读
    Socorro程序崩溃报告系统

    Uchiwa Sensu监控的面板

    uchiwa.zip
    发表于 04-26 09:37 15次 阅读
    Uchiwa Sensu监控的面板

    Upsilon系统监控程序

    upsilon.zip
    发表于 04-26 09:11 15次 阅读
    Upsilon系统监控程序

    MatterSlice 3D打印GCode生成器

    MatterSlice.zip
    发表于 04-25 10:40 17次 阅读
    MatterSlice 3D打印GCode生成器

    T2Z 2D动画转成3D打印模型

    T2Z.zip
    发表于 04-25 10:38 22次 阅读
    T2Z 2D动画转成3D打印模型

    easyNmon Linux性能监控工具

    gitee-easyNmon.zip
    发表于 04-25 09:18 17次 阅读
    easyNmon Linux性能监控工具

    扰动观察法和电导量法的算法程序

    扰动观察法和电导量法的算法程序,仅供参考.
    发表于 04-24 10:10 31次 阅读

    51单片机的启动文件内容

    不使用预先定义的SFR。就是告诉汇编器不使用预定义的寄存器名,因为汇编器内部定义了51的寄存器名,但....
    的头像 嵌入式ARM 发表于 04-24 09:49 161次 阅读

    ARM之静态变量简析

    静态变量的值可以一直保持到程序结束,使用关键字static可以将变量声明为静态的: static int x ; static float y; 根据声...
    发表于 04-24 09:27 2042次 阅读

    可以帮我写一个程序和电路图吗

    1.用AT89C51设计一个2位的L .ED数码显示作为“秒表”:显示时间为00-99秒,每秒自动加1,另设计一个“开始’键和一一个“复...
    发表于 04-20 17:22 5451次 阅读

    51视频小车

    51小车代码讨论
    发表于 04-19 22:05 6374次 阅读

    ab32vg1的audio外设测评经验分享

    1、rtt studio配置在新建工程前需要点击studio的sdk管理器,下载开发板的bsp。双击左侧工程管理器的setting,进入配置界面。软件...
    发表于 04-19 15:47 1289次 阅读

    rt-thread串口程序里的一个bug咋样改进

    今天在调试学习rt-thread的时候,电脑突然死机了,此时板上的rt-thread还是正常运行的,我将电脑关掉重启,但并未关掉STM32 r...
    发表于 04-19 11:59 2593次 阅读

    51单片机与arm的定时中断设置相同与区别之处是什么

    51单片机与arm的定时中断设置相同与区别之处是什么?求大神指教 ...
    发表于 04-19 09:18 1513次 阅读

    DS18B20一直温度过高是怎么回事?

    毕设在做一个温度警报+摔倒警报系统,一旦异常就发信息。 我买了普中的51单片机学习板,在这上面调试是没有问题的,但是在我自...
    发表于 04-18 15:04 3266次 阅读
    DS18B20一直温度过高是怎么回事?