如何选用pic单片机?pic单片机或运算符如何使用

发布时间:2026/7/18 2:08:59

如何选用pic单片机?pic单片机或运算符如何使用 pic单片机对于大家早已不再是琢磨不透的大山随着pic单片机的使用大家对pic单片机的认识逐步增加。为进一步增进大家对pic单片机的了解本文将基于两点对pic单片机予以阐述1.如何挑选合适的pic单片机2.pic单片机或运算符运用。如果你对本文内容具有一定兴趣不妨继续往下阅读哦。一、pic单片机挑选刚开始使用pic单片机的开发人员建议使用PIC16F系列的芯片该芯片已经存在了十多年并且仍然很受欢迎。因此该家族拥有Internet上最大的代码库这意味着许多基本代码已经编写并且可以轻松下载。尤其是PIC16F877在网上有大量的代码和原理图可以为学生、老师以及众多的专业设计师用于许多“入门”课程教学。但是这款MCU由于比较老的关系教学足矣但不建议在新的单片机方案中使用。而且就成本上来说新的单片机方案开发可替代的国产单片机也有不少。事实上PIC16F系列很多单片机仍可与PIC16F887一起使用PIC16F887的引脚布局和外设选项几乎相同。可使用PIC16F887运行相同的代码最多只做少量修改而且软件开发工具比价便宜。此外PIC16F887具有256字节EEPROM数据存储器、自编程、ICD、2比较器、11路10位模拟数字(A/D)转换器仍然可以用于汽车、工业、家电或消费类应用中的A/D应用。二、pic单片机或运算应用pic单片机的大多数寄存器包括RAM数据存储器的每个存储单元都能实现移位、清位、位测试等系列复杂操作功能。然而协调它们运行的(应用最广泛的基本级、中级)精简指令集中却没有对寄存器的某“位”进行“取反”运作的现成指令而在实际应用中对某些“位”进行取反运作是很需要的。如下图所示。单片机PIC16C622的端口RB作为输出端口的8个引脚分别控制着8个不同的电器设备。按动按钮AN一下继电器J吸合再按一下J释放即按动AN一下端口RB3引脚的输出状态改变一下而RB口的其它7个引脚输出保持原有状态不变。在这种情况下最好的方法是按动一下AN对PORTB(3)“取反一次”——这对于MCS-51系列单片机来讲是极容易的。只要写一条(如CPL P3?3)位取反指令就可以了。而PIC16C622只有对字节取反指令却没有对位取反的直接指令。小编运用了“W和f相异或”的指令也轻易地解决了位取反问题。实例MOVLW 0x08;将常数0x08送至WXORWF 61 ;W和F6相异或结果存F6这样就实现了对F6(3)即RB3脚的“取反”运作。假如当时寄存器F6的状态为“B01101001”则经过上述指令运作后有异或前 W 00001000F6 ?01101001异或后 F6 01100001结果寄存器F6的内容为“B01100001”。可见除了F6(3)由“1”取反为“0”外其它位保持不变实现了预期的目的。这种方法可以对寄存器其中的1位、2位……几位同时“取反”——只要对工作寄存器W送常数时常数的相应“位”上为逻辑“1”就可以了。还有像两个数据比较一类程序的编写通常人们是用“减法”指令来完成的。运用“异或运算”指令同样可以解决问题而且更为简洁(它只影响状态寄存器中的零标志位“Z”对其它概不影响)。如建立时钟程序当秒计数寄存器计数至60秒时应向分计数寄存器“进1”若设秒计数寄存器为F20分计数寄存器是F21则定时器中断子程序为INTSUB1…INCF 201 ;秒计数寄存器F20 ;“增1”MOVLW 0x3C ;把常数D‘60’置入WXORWF 200 ;寄存器F20计数是;否等于60秒BTFSS STATUS2 ;若F20的计数等于 ;60(零标志位Z1)GOTO INTSUB2 ;则跳INCF 211 ;分计数寄存器F21;“增1”…INTSUB2 RETFIE ;中断返回从上述例子中可以看到异或运算指令XORWF跟pic中的其它指令一样只要灵活运用其功能是非常强大的。

相关新闻