历史上的今天
返回首页

历史上的今天

今天是:2024年11月11日(星期一)

正在发生

2019年11月11日 | 基于PICf16877的ADC源码

2019-11-11 来源:51hei

单片机源程序如下:

//从零到项目开发学PIC单片机与C语言技术视频教程配套实验源码

#include

#define uchar unsigned char

#define uint  unsigned int

__CONFIG(0x3B31);

const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

                        0x87,0xff,0xef};

void delay(uint x);

void init();

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5);

void disp1(uchar num1,uchar num2,uchar num3,uchar num4);

uint get_ad();

void main()

{

        uint lednum,u1,u2,r1,r2;

          float n;

        uchar a1,a2,a3,a4,a5;

        init();

        while(1)

        {/*

                lednum=get_ad();

                a1=lednum/1000;

                a2=lednum%1000/100;

                a3=lednum%100/10;

                a4=lednum%10;

                disp(a1,a2,a3,a4);

            */

                          lednum=get_ad();

                   // n=(lednum*10)/(10240-lednum);

                    n=lednum;

                    //u1=5120-lednum;

                    //r1=u2/u1;

                   // r2=r2*1000;

                   // r2=lednum;

                    //r1=u1/i;

                   // r2=lednum*10/i*10

                   // r2=i;

                   // i=i*10000

                   // r2=lednum;

                   // r2=u2/i;

                    //i=(5000-lednum)/10000;

                   // r2=lednum/i;

                    //lednum=(int)r2;

                   // n=n*1000;

                    r2=n;

                    //r2=lednum;

/*                  

                a1=r2/10000; 

                a2=r2%10000/1000;

                a3=r2%1000/100;

                a4=r2%100/10;

                    a5=r2%10;

                disp1(a1,a2,a3,a4,A5);

*/

                    a1=r2/1000; 

                a2=r2%1000/100;

                a3=r2%100/10;

                a4=r2%10;

                disp1(a1,a2,a3,a4);

        }        

}

void delay(uint x)

{

        uint a,b;

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

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

}

void init()

{

        TRISA=0x01;//0000 0001

        TRISD=0;

        PORTA=0;

        PORTD=0;

          TRISB=0;

        PORTB=0;

        ADCON0=0x41;

        ADCON1=0x80;

        delay(10);

}

uint get_ad()

{

        uint adval;

        float advalf;

        GO=1;

        while(GO);

        adval=ADRESH;//00000000 00000011

        adval=adval<<8|ADRESL;//00000011 11111111

        //advalf=adval/1023.0*5.0;//==2.3843

          //advalf=adval/1023.0*5.0;//==2.3843

        //adval=advalf*1000;

         // adval=adval*1024;

          adval=adval;

        return (adval);        

}

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5)

{

        PORTD=table1[num1];//显示第一个数码管

        PORTA=0x20;//0010 0000

        delay(2);

        PORTD=table[num2];//显示第二个数码管

        PORTA=0x10;//0001 0000

        delay(2);

        PORTD=table[num3];//显示第三个数码管

        PORTA=0x08;//0000 1000

        delay(2);

        PORTD=table[num4];//显示第四个数码管

        PORTA=0x04;//0000 0100

        delay(2);

          PORTD=table[num5];//显示第四个数码管

        PORTB=0x20;//0000 0100

        delay(2);

}

void disp1(uchar num1,uchar num2,uchar num3,uchar num4)

……………………



推荐阅读

史海拾趣

Hirschmann公司的发展小趣事
TC4066作为模拟开关,根据外部输入的数字信号(如A、B、C、D等)来控制其内部开关的通断。这些数字信号可以编程地设置TC4066的开关状态,从而改变电路中的信号路径或电阻/电容值,进而影响定时电路的延时时间或输出波形。
DETCO公司的发展小趣事

在电子产品行业日益关注环保和可持续发展的背景下,ElectronicsCorp采取了一系列积极措施。公司开始使用环保材料制造产品,并优化生产流程以减少能源消耗和废物排放。此外,ElectronicsCorp还推出了一系列回收计划,鼓励消费者将旧电子产品回收再利用。这些措施不仅提高了公司的环保形象,还增强了消费者对公司品牌的忠诚度。

长江微电(cjiang)公司的发展小趣事

在发展过程中,长江微电始终坚持自主创新之路。公司注重人才培养和团队建设,积极引进高端人才和先进技术。同时,公司还建立了完善的研发体系和创新机制,鼓励员工发挥创新精神和创造力。通过自主创新,长江微电在电感产品领域取得了多项核心技术和专利成果,为公司的持续发展提供了强大动力。

以上五个故事分别从不同角度展现了长江微电(CJIANG)公司的发展历程和成就。这些故事不仅记录了公司的发展历程和成长轨迹,也彰显了其坚韧不拔、创新求变的精神和追求卓越、服务客户的理念。

Electro-Optical Systems Inc公司的发展小趣事

EOS公司成立于1983年,创始人是一群热衷于红外技术的专家。他们深知红外探测器在军事、科研和工业领域的重要性,于是决定投身于这一领域。初创时期,EOS面临着资金短缺、技术难度大等挑战,但团队成员凭借着对技术的执着和对市场的敏锐洞察,逐步攻克难关,成功研制出第一批红外探测器产品。

HM International公司的发展小趣事

EOS公司成立于1983年,创始人是一群热衷于红外技术的专家。他们深知红外探测器在军事、科研和工业领域的重要性,于是决定投身于这一领域。初创时期,EOS面临着资金短缺、技术难度大等挑战,但团队成员凭借着对技术的执着和对市场的敏锐洞察,逐步攻克难关,成功研制出第一批红外探测器产品。

DFRobot公司的发展小趣事

DFRobot公司于2008年由叶琛创立,当时主要致力于将国外的开源硬件项目引入中国。起初,公司规模较小,团队由几位热爱机器人和开源硬件的工程师组成。他们凭借对技术的热情和不懈的努力,逐渐在电子行业崭露头角。叶琛作为公司的创始人,不仅拥有深厚的工程学背景,还具备前瞻性的商业眼光,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

C51教程完整版

这是在其他地方下到的东西,感觉很不错,拿过来和大家分享分享…

查看全部问答>

公司版STM32工作原理

公司版STM32工作原理  晶振:老板,带两个秘书(电容),有时老板不在秘书说了算(内部时钟模式) 时钟PLL:老板娘,老板控制局面,但还是要听老板娘的话。 CPU:人力资源部,调动人员齐心合力 APB1,APB2时钟:部门经理,发布任务进度, ...…

查看全部问答>

TEA 加解密算法在嵌入式系统通信中的应用

嵌入式系统的远程数据传输经常要使用公共通信线路这给数据安全带来隐患本文介绍的T E A 数据 加密算法高效可靠适用于资源有限的嵌入式系统同时文章还给出T E A 算法的一个应用实例…

查看全部问答>

谁能给详细的介绍下有源功率因数校正的工作原理步骤?

来自电源群:38592946 市电怎么一步一步转化的?…

查看全部问答>

tcpmp支持usb插拔吗,

如果支持 那么就会自动游览影音文件?…

查看全部问答>

机器人自主导航?

最近做一个家庭机器人的项目,需要用到激光传感器实现自主建立地图,自主导航。还没有什么明确的思路,各位高手有没有搞过这个的给学生一点建议,感谢…

查看全部问答>

求购开发板

需要嵌入式Linux与VxWorks开发板各一块,最好CPU频率400MHz以上, 必须带BSP支持。最好带完整的嵌入式Linux系统。VxWorks开发板支持WindML. 有意者请联系:010-51615759 邮箱:ancring.hk@163.com …

查看全部问答>

我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?

我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?…

查看全部问答>

evc下打开文件夹对话框

evc有没有打开文件夹对话框的api啊,SHBrowseForFolder()这个函数在evc里编译不过啊,还有没有其他的方法啊。 wince不会只能打开文件吧。 各位大虾帮帮忙啊!…

查看全部问答>