今天给大家分享单片机pic编程教程,其中也会对pic单片机***教学的内容是什么进行解释。
简略信息一览:
pic系列单片机用c语言编程时,让他执行A/D转换的指令是什么?
一般是***用惠斯通电桥进行测量。但其实质是将电阻信号转换为电压信号。从这一个思想出发还可以,让恒流源通过待测电阻,对电阻两端电压进行***样,从而实现。电阻器(Resistor)在日常生活中一般直接称为电阻。
按键处理模块、显示模块。AD转换模块:这部分电路要自己设计,总之就是将电压输入AD转换芯片输出数字信号。输出端接单片机IO(如果)口。将得到的电压值加入算法得到所需要的电阻值或电容值。按键处理模块:书上基本都有。显示模块:这部分就是LED动态显示的问题了,随便一本单片机书里面都有例题。
PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号 操作码助记符 操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。
【格式说明】f:文件寄存器的地址。d:目标地址,当d=1(或d=F、或省略)时,目标为文件寄存器f;当d=0(或d=W)时,目标为WERG寄存器。a:存储区选择位。当a=1时,使用BSR寄存器选择存储区;当a=0(或省略)时,使用“系统默认访问存储区”。
其它任何数都可以呀,只是这个数并没有具体的作用,***用这条指令只是通过地址总线和WR信号来输出启动A/D转换的控制信号,而数据总线(A中的内容)输出什么都没有作用。
一般用法都会通过ADC控制寄存器把VREF+设定为=VDD,把VREF-设定为=VSS,通过公式可知为了提高精度可以压缩Vref+与Vref-之间的差值,但需要添加电压基准专用芯片。转化结束后会把ADIF置1,如果开启中断就会产生中断,就可以读取结果寄存器中的值了,结合寄存器中的值通过公式能计算出这次转换的电压值是多少。
PIC单片机程序
1、在你的C文件里引用EEPROM函数的头文件,eeprom_routines.h 然后在程序中使用 void eeprom_write(unsigned char addr, unsigned char value);unsigned char eeprom_read(unsigned char addr);这两个函数了。这两个函数一个读一个写。
2、直接用软件延时,如用以下的DELAY()延时子程序,如要延时5ms,直接调用DELAY(5)就好了,但这种是纯软件的延时。
3、static volatile unsigned TMR1 0x0E;0x0E 是寄存器地址。表示这个TMR1是寄存器0x0E的值。具体这个寄存器是做什么用的,需要看你芯片的datasheet,比如 16F874A 16F877A 这个都是计数寄存器的地址。2 PopQueue应该是一个弹出队列的函数。
4、直接用软件延时,如用以下的DELAY()延时 子程序 ,如要延时5ms,直接调用DELAY(5)就好了,但这种是纯软件的延时。
pic单片机的程序
PIC单片机的开发软件MPLAB没有集成C语言编译器。需要另外安装。如果你用的是PICPIC1PIC16等这些系列的单片机,就要去Microchip的网站下HT-PICC for PIC12/16的C编译器。如果是PIC18的话,就要下MCC18,如果是PIC24和dsPIC系列的,就要用C30编译器。还有,所用的PIC单片机不同系列,C程序编写方式也不同。
static volatile unsigned TMR1 0x0E;0x0E 是寄存器地址。表示这个TMR1是寄存器0x0E的值。具体这个寄存器是做什么用的,需要看你芯片的datasheet,比如 16F874A 16F877A 这个都是计数寄存器的地址。2 PopQueue应该是一个弹出队列的函数。
在你的C文件里引用EEPROM函数的头文件,eeprom_routines.h 然后在程序中使用 void eeprom_write(unsigned char addr, unsigned char value);unsigned char eeprom_read(unsigned char addr);这两个函数了。这两个函数一个读一个写。
//===延时(n)ms,在4MHz晶振下!!void DELAY(uint n){uint j;uchar k;for (j=0;jn;j++)for (k=246;k0;k--) NOP();} 用定时器延时,要通过计算延时的时间来确定延时的常数(分频比和定时器初值)。
LED_RUN = ~(i & 0x01)0;解析如下:(i & 0x01),无论i为多少,结果为0x00(i为偶数),或者ox01(i为奇数)~(i & 0x01),将括号内的计算结果取反,则结果为0xff,或者0xfe ~(i & 0x01)0,将取反后的结果右移0位,也就是不移动。
在pic中如何用C语言编写程序?
//通过按键校时:K10--小时,K11--分钟,K12--秒(归零),K13-星期,BR1--年,RB2--月,RB3--日。
在你的C文件里引用EEPROM函数的头文件,eeprom_routines.h 然后在程序中使用 void eeprom_write(unsigned char addr, unsigned char value);unsigned char eeprom_read(unsigned char addr);这两个函数了。这两个函数一个读一个写。
两种方法,一个是编译软件直接设置好,然后烧录会自动加入,另外程序中可以用关键字设置,这些关键字不是C定义的,而是编译器另外定义的。
关于单片机pic编程教程和pic单片机***教学的介绍到此就结束了,感谢你花时间阅读本站内容,更多关于pic单片机***教学、单片机pic编程教程的信息别忘了在本站搜索。