历史上的今天

今天是:2025年06月21日(星期六)

2018年06月21日 | 51单片机(AT89C52)A/D转换

发布者:小星星龙猫 来源: eefocus关键字:51单片机  AT89C52  D转换 手机看文章 扫描二维码
随时随地手机看文章

#include  

#define uchar unsigned char  

#define uint unsigned int  

#define PORT P3  

#define dula_h P2|=0x40  

#define dula_l P2&=0xbf  

#define wela_h P2|=0x80  

#define wela_l P2&=0x7f  

sbit cs=P2^0;  

sbit rd=P2^1;  

sbit wr=P2^2;  

uchar read;  

uchar table[]={ //共阳数码管  

0xc0,0xf9,0xa4,0xb0,  

0x99,0x92,0x82,0xf8,  

0x80,0x90,0x88,0x83,  

0xc6,0xa1,0x86,0x8e};  

void delayms(uint x)  

{  

    uint y,z;  

    for(y=x;y>0;y--)  

        for(z=110;z>0;z--);  

}  

void show()  

{  

    dula_l;  

    wela_l;  

    PORT=0x80;  

    wela_h;  

    wela_l;  

    PORT=table[read%10];  

    dula_h;  

    dula_l;  

    delayms(1);  

      

    PORT=0x40;  

    wela_h;  

    wela_l;  

    PORT=table[read%100/10];  

    dula_h;  

    dula_l;  

    delayms(1);  

  

    PORT=0x20;  

    wela_h;  

    wela_l;  

    PORT=table[read/100];     

    dula_h;  

    dula_l;   

    delayms(1);  

  

    PORT=0x10;  

    wela_h;  

    wela_l;  

    PORT=table[0];    

    dula_h;  

    dula_l;   

    delayms(1);  

  

    PORT=0x08;  

    wela_h;  

    wela_l;  

    PORT=table[0];    

    dula_h;  

    dula_l;  

    delayms(1);   

  

    PORT=0x04;  

    wela_h;  

    wela_l;  

    PORT=table[0];    

    dula_h;  

    dula_l;   

    delayms(1);  

  

    PORT=0x02;  

    wela_h;  

    wela_l;  

    PORT=table[0];    

    dula_h;  

    dula_l;   

    delayms(1);  

  

    PORT=0x01;  

    wela_h;  

    wela_l;  

    PORT=table[0];    

    dula_h;  

    dula_l;   

    delayms(1);  

}  

void main()  

{  

    while(1)  

    {  

        cs=1;//A/D转换时序  

        wr=1;  

        cs=0;  

        wr=0;  

        wr=1;  

        cs=1;  

        delayms(1);  

  

        cs=1;//转换结果输出时序  

        rd=1;  

        cs=0;  

        rd=0;  

        read=P0;  

        delayms(1);  

        rd=1;  

        cs=1;  

        show();//数码管显示函数  

        delayms(10);  

    }         

关键字:51单片机  AT89C52  D转换 引用地址:51单片机(AT89C52)A/D转换

上一篇:51单片机(AT89C52)D/A转换
下一篇:51单片机(AT89C52)DS1302时钟芯片程序

推荐阅读

在8051系列单片机中,内部ram的前32个字节被分为4组,每组8个寄存器。每组的8个寄存器名字都为R0-R7。通过设置PSW寄存器的两个位,可以选择使用4组寄存器中的哪一组。寄存器组在处理中断或者使用实时操作系统时非常有用,可以在进入中断或者切换任务时使用不同寄存器组,而不用把8个寄存器的内容保存到堆栈。在退出中断或返回原任务时,只需切换回原来的寄...
新型功率半导体企业美商联合碳化硅股份有限公司(UnitedSiC)宣布进一步扩展UF3C FAST产品系列,新增采用TO-247-4L 4引脚Kelvin Sense分立封装选项的1200V高性能SiC FET器件。新产品UF3C120150K4S具有150mΩ的典型导通电阻(RDS(on)),使4引脚FAST系列器件的总数达到6个,并将整个系列的导通电阻范围从30mΩ一直延伸到最高至150mΩ。 UF3C120150K4...
打开STVD开发环境,如下界面:1. Workspace窗口右键单击stm8s_sx1276, 选择“Set as Active Project”2. Workspace窗口右键单击stm8s_sx1276,选中Build,编译项目3. 点击工具栏图标开始调试过程,4. 点击工具栏图标运行;5. 点击工具栏图标,执行对应的调试动作;6. 设置断点,在代码浏览串口中,左键单击最左边的代码行号后在行号后显示一个红...
程序太简单啦,就不说啦,自己看吧ATMEGA16用ICCAVR编译器1、外部中断#include<iom16v.h>#include <AVRdef.h>unsigned char temp=0x80;void main(){ DDRA=0xff; GICR|=0x40;//使能外部INT0 MCUCR|=0x01;//INT0下降沿触发 SEI();//总中断 while(1);}#pragma interrupt_handler int0_isr:iv_INT0void int0_isr(void){ ...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved