1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。
;**************DelayMS**************
DelayMS ; 延时x毫秒,x由变量w寄存器设定
movwf L1 ;
Loop1
movlw .39 ;
movwf L2 ;
Loop2
movlw .31 ;
movwf L3 ;
Loop3
nop ;
decfsz L3, f ;
goto Loop3 ;
decfsz L2, f ;
goto Loop2 ;
decfsz L1, f ;
goto Loop1 ;
return ;
;------------------------------------------------------------------------------
2、编写子程序Delay1S,实现1秒钟的精确延时。
list p=16f877A ; 标明所用的处理器类型
#include ; 调用头文件
;***** 变量声明*******************************************************
L1 EQU 0x70 ;延时函数循环变量
L2 EQU 0x71
L3 EQU 0x72
;**********************************************************************
org 0x0000 ; 复位入口地址
;--------------------------------Main的代码-------------------------------------
main
banksel TRISB;
bcf TRISB, RB0;
banksel PORTB;
Loop
bsf PORTB, RB0;
movlw .100;
call Delay1S;
bcf PORTB, RB0;
movlw .100;
call Delay1S;
goto Loop ;
;-----------------------------子函数-------------------------
;**************Delay1S**************
Delay1S ; 延时x毫秒,x由变量w寄存器设定
movwf L1 ;
Loop1
movlw .200 ;
movwf L2 ;
Loop2
movlw .62 ;
movwf L3 ;
Loop3
nop ;
decfsz L3, f ;
goto Loop3 ;
decfsz L2, f ;
goto Loop2 ;
decfsz L1, f ;
goto Loop1 ;
return ;
;----------------------------------------------------------------------
END ; 程序结束
关键字:PIC单片机 精确延时
引用地址:
PIC单片机实现x ms/1s钟精确延时
推荐阅读最新更新时间:2024-03-16 16:01
PIC单片机通讯例程
1. 单片机 PIC1编程(发送部分) LIST P=16F877 #INCLUDE P16F876.INC CB LOC K 0X24 ;保留三个字节作为显示用 COUNT ;作计数器或暂存器用 ENDC ORG 0X0000 ;程序复位入口 NOP START GOTO MAIN ORG 0X20 MAIN MOVLW 0X30 ;以下将RAM内容初始化 MOVWF FSR ;从30H单元开始 MOVLW 0X30 ;将值30H赋给单元30H MOVWF COUNT INTRAM MOVF COUNT,0 ;将30H~7FH赋给单元30H~7FH MOVWF INDF INCF COUNT,1 INCF FSR,1 BTFSS
[单片机]
基于PIC单片机控制的RLC智能测量仪设计
使用电子元器件时,首先需要了解其参数,这就要求能够对元器件的参数进行精确测量。采用传统的仪表进行测量时,首先要从电路板上焊开器件,再根据元件的类型,手动选择量程档位进行测量,这样不仅麻烦而且破坏了电路板的美观。经过理论分析和实验研究,采用正交采样算法,并由单片机控制实现在线测量、智能识别、量程自动转换等多种功能,可大大提高测量仪的测量速度和精度,扩大测量范围。因此这种RLC测量仪既可改善系统测量的性能,又保持了印刷电路的美观,较传统的测量仪还具有高度的智能化和功能的集成化,在未来的应用中将具有广阔的前景。 1 硬件电路设计 此测量仪硬件设计思路如图1所示。 由于PIC单片机只能正确采集0~5 V之间
[单片机]
PIC单片机SPI通信的设计
#include #define uchar unsigned char #define uint unsigned int #define cs RC2 #define dout RC4 #define nop() asm(“nop”) __CONFIG(0x3B31); const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar data_temp; void delay(uint x); void init(); void didi(uchar num); void
[单片机]
PIC单片机有什么特点和优势?
PIC系列单片机有什么优势? 自从我95年接触PIC单片机以来,便一直热衷于这种单片机的开发与应用。有不少朋友问我:PIC到底有什么优势?也许你也会有这样的疑问,所以我在这里略谈几点自己的看法。 1) PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不同的。比如,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC系列从低到高有几十个型号,可以满足各种需要。其中,PIC12C508单片机仅有8个引脚,是世界
[单片机]
pic单片机 DS18B20采样 LCD1602显示
#include 18b20.h #include main.h //--------------产生复位脉冲--------------------// void tx_reset() { ADCON1=0X06; TR ISA 5=0; DQ=1; delay_us2(10,5); //65us while(!DQ); //判断总线是否忙 DQ=0; delay_us2(10,23); //730us } //----------------等待应答脉冲----------------// void tx_wait () { TRISA5=1; //设为输入方式后,DQ被
[单片机]
PIC单片机点亮一个灯实验
你只懂C51,你就OUT了,现在的公司还要你懂AVR,PIC等单片机所以我现在开始学习pic 怪简单的,太小儿科了!这是我写的第一个pic单片机程序目的就是要点亮一个灯, #include pic.h //#define uchar __CONFIG(0x3B31); void main() { // TRISD=0xfe;//11111110 // PORTD=0x01;//00000001 // TRISD2=0; TRISA2=0;//RA2设置为输出 RA2=0;//第2个发光管亮 while(1); }
[单片机]
基于PIC单片机及图像处理技术设计的智能台球机器人
设计摘要 台球源于英国,它是一项在国际上广泛流行的高雅室内体育运动。随着各种运动的兴起发展,台球以其内涵高雅、放松身心的特点越来越受大家欢迎。依靠单片机技术的日益成熟,基于单片机的小型化高精度控制过程的广泛应用,色度学、先进光电成像技术、计算机技术和图像处理技术的飞速发展和电机驱动技术、传感器技术以及控制技术的不断发展,我们计划设计可以与人对打的台球智能机器人,使人们可以在即使一个人的情况之下也可以享受台球带来的娱乐、休闲。 我们这次设计的智能台球机器是以PIC单片机为核心的控制系统,结合了图像处理技术,PIC单片机控制电机系统,以及机械机构设计技术等方面的知识,利用了各种芯片来实现对台球系统的图像采集处理技术,同时,使用各种
[单片机]
Keil C51精确延时程序设计
C语言具有较强的数据处理能力、语言功能齐全、使用灵活方便、开发效率高,被广泛应用于在单片机系统开发应用中。在单片机幕统开发的过程中,经常需要使用到延时程序,但C语言代码执行时间。的可预见性和实时性较差,在开发一些具有严格通信时序要求的系统时,往往需要反复调试延时代码,给开发者带来了较大困难。比如使用DS18B20进行温度测控时,必须按照其单总线通信协议,否则无法读取温度数据。针对上述问题,结合Keil C51开发工具和Proteus仿真软件,介绍在Keil C51开发系统中,利用C语言编写的延时程序设计及其运行的时间的计算方法。 1 常用延时程序的设计方法 1.1 利用定时器/计数器延时 利用C51单片机内部2个16位定时
[单片机]