历史上的今天
返回首页

历史上的今天

今天是:2025年02月26日(星期三)

正在发生

2020年02月26日 | pic单片机多路ad切换程序与循环程序设计

2020-02-26 来源:elecfans

pic单片机是最重要的单片机种类之一,对于pic单片机,小编曾带来诸多介绍,如pic单片机的优势、pic单片机选型等。而在本文中,小编将为大家介绍两种pic单片机程序:一是pic单片机多路ad切换程序,二是pic单片机循环程序。如果你对这两类程序存在一定兴趣,不妨继续往下阅读。

pic单片机多路ad切换程序与循环程序设计

一、pic单片机简介

pic单片机(Peripheral Interface Controller)是一种用来开发和控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。PIC 单片机是一个小的计算机。PIC单片机有计算功能和记忆内存像CPU并由软件控制运行。然而,处理能力—般,存储器容量也很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变。如果是同样的体系结构,时钟频率较高的处理能力会较强。


二、AD转换介绍

所谓模拟量很好理解就是模拟量是指变量在一定范围连续变化的量;也就是在一定范围(定义域)内可以取任意值(在值域内)。数字量是分立量,而不是连续变化量,只能取几个分立值,如 三位进制数字变量只能取7个整数值0.1.2.3.4.5.6.7。


而不是经过AD通道的话,经过的是普通的IO口,那么模拟信号只会在引脚上出现两种数字结果,一个是1一个是0,而不能比较准确的描述出模拟量的数值,模拟量信号是一种变量信号,比如果0V--10V,或50MA到100MA,开关信号是一种通断信号,比如家里的灯开关,数字信号是一种连续的开关信号或高低电平信号,比如1101----高高低高。一连串的信号代表数字信号。


再继续说一下AD精度的问题,8位AD精度的话就是将这个满电压值分成2^8=256份,比方说51单片机采集的电压范围是0-5v 那么0v对应的是 0 5v对应的是255.

pic单片机多路ad切换程序与循环程序设计

三、pic单片机多路ad切换程序

void ad_init (void)

{ ADIF=0X00;

ADCON1=0x80;//

ADCON0=0X81; //十位结果必须高为8位

TRISA=0X0FF;//默认为AD输入

PORTA=0X00;

TRISE0=1;

TRISE1=1;

TRISE2=1;

ADON=1;

}

void delay(unsigned int x)

{

unsigned int a,b;

a=(2*x/8);

for(a;a》0;a--);

for(b=5;b》0;b--);

}

unsigned int read_ADresult(unsigned char channel)

{

channel &= 0x07; // 此处语法相当于channel=channel&0x07 联系自反加语法!

ADCON0 &= 0x85; // 清当前通道

ADCON0 |= (channel《《3); //10 xxx 001

delay(30);

ADGO=1;

while(ADGO) conTInue;

return (ADRESH《《8)+(ADRESL);

// return ADRESL;

}

unsigned int ad_res[8];//存放AD转换值

for(j=0;j《8;j++)

{

ad_res[j]=read_ADresult(j);

}

pic单片机多路ad切换程序与循环程序设计

四、pic单片机循环程序实例

下面小编将为大家介绍一种定时程序,说明循环程序在PIC单片机上的应用。小编此次以PIC16F84单片机为例建立其定时源程序清单。该定时器源程序只需改变一条指令的常数设置,即可使定时时间从分钟级到3?8小时的连续变化(4MHz晶振条件)。在该源程序上再多设置一次循环,可使定时时间长达1月以上。


该PIC16F84单片机定时源程序可直接在MPLAB集成开发环境软件下进行汇编,其汇编后生成的HEX文件可在实验编程器1?01上对源程序进行固化并可在相应的实验板上直接观察实验的结果。PIC16F84单片机时的源程序清单如下(文件各可自定义):

LIST

P=PIC16F84

#INCLUDE P16F84?INC

COUNT1 EQU

0x1F

COUNT2 EQU

0x1E

COUNT3 EQU

0x1D

COUNT4 EQU

0x1C

ORG  0

START CLRW

;与MOVLW 0等效

BSF

STATUS,5;选体1

MOVWF TRISB  ;设B口为输出

BCF

STATUS,5;STATUS复位当前体0

CLRF   PORTB ;定时启动功能

M1   BTFSS   PORTA,1 ;判断A口第D1位,D1=1间跳,D1=0顺

;序执行

GOTO   M2

GOTO   M1

M2   MOVLW 0xAA  ;选B口定时位,LED亮开始定时

MOVWF PORTB  ;B口按0x10101010输出

DELY CLRW

;与MOVLW 0等效

MOVLW 0xFF

MVOWF COUNT1

MVOWF COUNT2

MVOWF COUNT3

MOVLW 0

;与CLRW指令等效

MOVLW 0x02

;0x02送W(最大定时为0xFF)

MOVWF COUNT4 ;定时值控制(细调)

LOOP DECFSZ COUNT1,1 ;CPUNT减1,为0间跳

GOTO LOOP

DECFSZ COUNT2,1 ;同上特点,这里d=1可不用

GOTO   LOOP

DECFSZ COUNT3,1 ;同上

GOTO LOOP

DECFSZ COUNT4,1 ;同上,但COUNT4中值可自由选定

GOTO LOOP

CLRW

;与MOVLW 0相同

MOVLW 0x02

;定时结束显示

MOVWF PORTB

M3 GOTO M3

END

;程序结束


说明:该源程序中常数设置可由读者任意改变,改变之后即可达到任意时间的设定。

推荐阅读

史海拾趣

AW Industries Inc公司的发展小趣事

在国内市场取得成功后,AW Industries Inc开始寻求国际化发展。公司首先选择了几个具有潜力的海外市场进行拓展,并通过与当地企业合作、建立销售网络等方式逐步打开市场。随着国际化战略的深入实施,公司的业务范围不断扩大,国际市场份额也逐步增加。

Chemi-Con公司的发展小趣事

在电子行业的发展过程中,Chemi-Con公司意识到单一产品线的局限性,并开始积极探索多元化发展的道路。公司不仅拓展了电容器产品的应用领域,还涉足了光电子机械等新兴产业。此外,Chemi-Con还积极寻求与其他企业的合作,通过技术共享、资源共享等方式实现共赢。这种开放、合作的姿态使得Chemi-Con在行业中树立了良好的形象,也为公司的长远发展奠定了坚实的基础。

Advanced Detector Corp公司的发展小趣事

随着全球市场的不断开放和经济的全球化,ADC开始将业务拓展至全球范围。公司在全球各地设立了分支机构,并建立了完善的销售和服务网络。通过全球化布局,ADC成功打开了新的市场,提升了品牌影响力,实现了业务的快速增长。

Datasensor公司的发展小趣事

为了进一步扩大市场份额和增强技术实力,DATASENSOR公司积极进行收购和扩张。2004年,公司成功收购INFRA和SPECIALVIDEO公司,这两家公司在工业自动化领域拥有丰富的经验和先进的技术,为DATASENSOR公司带来了更多的市场机会和技术优势。此外,公司还在法国、德国、英国和西班牙等国家和地区设立了子公司,实现了全球化的战略布局。

意瑞(COSEMITECH)公司的发展小趣事

在技术创新方面,意瑞半导体始终保持着高度的热情和投入。其研发团队在磁传感器芯片领域取得了显著成果,连续两年荣获闵行区的“讲理想、比贡献、奋力实现中国梦”活动的创新团队奖。此外,公司还获得了高新技术企业证书,并多次获得上海市科委的上海市科技型中小企业技术创新认可,证明了其在技术创新方面的实力。

Foxconn_Optical_Interconnect_Technologies__Inc.公司的发展小趣事

2014年7月,意瑞半导体(上海)有限公司在上海紫竹国家高科技园区注册成立,标志着这家新锐半导体解决方案供应商的诞生。成立之初,公司便专注于传感与控制等IC的研发与生产,为未来的技术布局打下了坚实的基础。公司凭借其前瞻性的战略眼光,在上海和深圳设立了研发及服务机构,以快速响应市场需求。

问答坊 | AI 解惑

74HC393

74HC393,发给二都的…

查看全部问答>

关于wince中文输入法的问题

我添加了如下组件 MSPY 3.0 for windows ce       1.7 MB -standard database       double spelling soft keyboard Multilingual User Interface(MUI)。 但进入系统后,用double spelling soft keyb ...…

查看全部问答>

关于CAN总线出错的问题处理

两个CAN通讯,故意手动模CAN通讯线(线皮去掉),CAN总线会死掉,我仿真时候,在看寄存器,发现,有时候是离线错误,看了几种错误情况都有? 如果仿真,让CPU重新复位,发现CA还不能正常通讯,我复位CPU,整个CAN寄存器都复位了,为什么总线 ...…

查看全部问答>

请问IR2136驱动IGBT管这个三极管是什么管子(有图示)?

想自已DIYG一个简易的变频器,拆开单位用到的一种国产变频器(好象它的返修是最少的), 描下其用IR2136驱动IGBT管的电路,就是看不明白其中的D2,D3是什么管子?那位大虾可以说说吗? 我开始以为是PNP三极管,但用数字万用表测量C脚,B脚之间 ...…

查看全部问答>

有关硬件调试

各位老师和高手们:我已看过FAQ,但是没有调试的具体说明,请问调试DSP时,一般最关键的信号是什么?应是什么样的波形?MSC应是什么样的波形? 另外,DSP和FPGA连调的时候,最应该注意什么?我调试了一天,找不到原因?一般应该怎样找呢? 先 ...…

查看全部问答>

用AD刚画的一个51的开发板,多评评啊!!!!

[local]3[/local]花了两天时间画的一个开发板,是看着别人原理图画的,我用的是AD,不足之处,多多说,互相学习…

查看全部问答>

请进、我的救星、关于51MCU、ROM、EA问题

51MCU中。用编译器将HEX程序文件载入单片机ROM里的时候,是将其放在MCU的内部存储器还是外部存储器呢? 还有,在EA置低的时候为什么单片机最小系统也还是可以工作的? 大神们请为小弟耐心解答!万分感谢!!…

查看全部问答>

运放偏置电流和输出失调电压的关系

首先给大家推荐一本好书《OP放大电路活用技巧》比较适合我这种没怎么使用过运放的新手 我看书时,书中介绍运放的偏置电流和输出失调电压的关系时写到: VOoffset=(RS//RF)(1+RF/RS)*IB-=RF*IB- 不知道是怎么推出来的?有没有大神讲讲具体原理啊 ...…

查看全部问答>

3GHz频谱仪如何选择

我们是做无线抄表系统设计的,希望购买一套3GHz频谱仪,大家有什么推荐或建议?(无线远传电表的核心器件是Nordic的RFIC nRF401(433MHz),目前在考虑N9000A-503和FSL3/6(报价约10万 RMB),同时最近泰克的人也在推荐他们的混合域MDO4000系列的分 ...…

查看全部问答>

「ADI模拟大学堂」混频器的基础理论和应用(2014.3.4)

replyreload += \',\' + 1640264;「ADI模拟大学堂」混频器的基础理论和应用(2014.3.4) (每日一份资料) 「ADI模拟大学堂」每天更新一份资料,资料更新目录在后面,希望大家支持。希望能获得大家的回帖,我也不用做回复可见。希望大家喜欢ADI的资 ...…

查看全部问答>