PIC单片机应用开发典型模块_第四章程序

2019-03-16 22:12

(1)多功能波形信号发生模块 程序应用

#INCLUDE RTCC EQU 01H PC EQU 02H PCLATH TEMP0TIME TEMP0CONST TEMO0DOT TEMP0OUT TEMP1TIME TEMP1CONST TEMP1 DOT TEMP1OUT TEMP2TIME TEMP2CONST TEMP2 DOT TEMP2OUT OPTION_R WBU SBU RCC

EQU

EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU

0AH 20H 21H 22H 23H 30H 31H 32H 33H 40H 41H 42H 43H 81H 2FH 2EH 0FAH

;方波次数 ;方波常数 ;方波点数 ;方波输出值 ;锯齿波次数 ;锯齿波常数 ;锯齿波点数 ;锯齿波输出值 ;三角波次数 ;三角波常数 ;三角波点数 ;三角波输出值 ;W暂存 ;STATUS暂存 ;最大频率常数

;------------------------------------------------------------------------------------------------------

ORG 0 SYS_RESET

GOTO START

;------------------------------------------------------------------------------------------------------ ORG 4 ;中断程序 MOVWF SWAPF SWAPF MOVWF CALL SWAPF MOVWF SWAPF RETFIE

;------------------------------------------------------------------------------------------------------ ORG 40H NOP START

CALL INT

CALL INTPORT CALL INTTMO

WBU WB0, 0 STATUS, 0 SBU SERV_INT SBU, 0 STATUS WBU, 0

LOOP ;延时

NOP NOP

GOTO LOOP

;------------------------------------------------------------------------------------------------------ INT CLRF

TEMP0DOT TEMP1DOT TEMP2DOT TEMP0OUT TEMP1OUT TEMP2OUT 03H

TEMP0TIME TEMP0CONST TEMP2TIME TEMP2CONST 06H

TEMP1TIME TEMP1CONST

CLRF CLRF CLRF CLRF CLRF MOVLW MOVWF MOVWF MOVWF MOVWF MOVLW MOVWF MOVWF RETURN

;------------------------------------------------------------------------------------------------------ INTPORT ;端口初始化 BCF BCF BCF CLRF CLRF BSF BSF MOVLW MOVWF

STATUS, 0 STATUS, 1 STATUS, 5 PORTC PORTD PORTE,1 STATUS, 5 00H TRISD

MOVLW OF4H MOVWF TRISC

MOVWF BCF

TRISE STATUS, 5

;定义RE1为输出,其他为输入

RETURN

;------------------------------------------------------------------------------------------------------ INTTM0 ;定时器初始化 BSF

STATUS, 5 80H

OPTION_ R STATUS, 5

MOVLW

MOVWF BCF

MOVLW MOVLW 0A0H RCC

;开放定时器中断

;RCC=最大频率延时常数

MOVWF RTCC RETURN;

;------------------------------------------------------------------------------------------------------ SERY_ INT ;中断服务程序 BTFSC GOTO CLRF BSF RETURN

INTCON,2 SERVRTCC INTCON INTCON, 5

SERVRTCC

MOVLW RCC MOVWF BCF

RTCC

INTCON,2

CALL OUTPUT RETFIE

;------------------------------------------------------------------------------------------------------ OUTPUT ;输出波形 BCF STATUS,5 FBO DECFSZ TEMP0TIME,1 GOTO J BO CALL FANGBO JBO DECFSZ TEMP1TIME,1 GOTO SJ BO CALL JUCBO

SJBO DECFSZ TEMP2 TIME,1 RETURN CALL

SJIAOBO

;方波

;锯齿波

;三角波

RETURN

;------------------------------------------------------------------------------------------------------ FANGBO BCF BCF BCF

PORTS, 1

;MR为低

PORTC, 0 PORTC, 1 ;选择输出通道, 0通道为方波 TEMP0DOT,1 TEMP0CONST, 0 TEMP0TIME TEMP0DOT,7 GAO

INCF MOVF MOVWF BTFSC GOTO

GOTO DI

GAO MOVLW OFFH MOVWF PORTD

BSF PORTE, 1

RETURN

DI M0VLW 00H MOVWF PORTD BSF PORTE, 1 RETURN

;------------------------------------------------------------------------------------------------------ JUCBO BCF BCF MOVF MOVWF

PORTE, 1

PORTC,0 TEMP1TIME

;选择输出通道, 1通道为锯齿波

TEMP1CONST,0

INCFSZ TEMP1DOT, 1 GOTO JUBO1 MOVF MOVWF

TEMP1OUT, 0 PORTD

INCF TEMP1OUT, 1 RETURN

JUBO1 MOVLW 00H MOVWF RETURN

;------------------------------------------------------------------------------------------------------ SJIAOBO BCF PORTE, 1 BCF PORTC, 1 ;选择输出通道, 2通道为三角波 MOVF MOVWF

TEMP2CONST, 0 TEMP2TIME TEMPlOUT

INCFSZ TEMP2DOT, 1 GOTO SJBO2 CALL SJBO0 SJB02 MOVF TEMP2OUT, 0 MOVWF PORTD BSF MOVLW BTFSS GOTO ADDWF RETURN SJBO1 SUBWF RETURN SJBO0 CLRF RETURN END

TEMP2OUT PORTE, 1 02H

TEMP2DOT,7 SJBO1 TEMP2OUT, 1

TEMP2OUT,1

(2)PWM信号发生模块 程序应用

#include

/*CCP1模块的PWM工作方式初始化子程序*/ void INIT_CCP1() {

PR2=0XFF; CCPR1L=0X7F; CCP1CON=0X3C; INTCON=0X00; TRISC=0XFB; }

/*主程序*/ main() {

INIT_CCP1();

/*CCP1模块的PWM工作方式初始化*/

/*前分频比为16,打开TMR2,同时输出PWM信号*/

T2CON=0X03; }

(3)正弦信号发生模块 程序应用

#include

//本程序将通过PIC16F877的I2C方式驱动D/A 转换器MAX518,使其D/A0 通道输出 //一个连续的正弦波形

const char table[ ] = {0X80,0X86,0X8D, 0X93,0X99,0X9F,0XA5,0XAB,

0XB1,0XB7,0XBC,0XC2,0XC7,0XCC,0XD1,0XD6,0XDA,0XDF,0XE3,0XE7,0XEA,0XEE,0XF1,0XF4,0XF6,0XF8,0XFA,0XFC,0XFD,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFD,0XFB,0XF9,0XF7,0XF5,0XF2,0XEF,0XEC,0XE9,0XE5,0XE1,0XDD,0XD8,0XD4,0XCF,0XCA,0XC5,0XBF,0XBA,0XB4,0XAE,0XA8,0XA2,0X9C,0X96,0X90,0X89,0X83,0X80,0X79,0X72,0X6C,0X66,0X60,0X5A,0X55,0X4E,0X48,0X43,0X3D,0X38,0X33,0X2E,0X29,0X25,0X20,0X1C,0X18,0X15,0X11,0X0E,0X0B,0X09,0X07,0X05,0X03,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X02,0X04,0X06,0X08,0X0A,0X0D,0X10,0X13,0X16,0X1A,0X1E,0X22,0X27,0X2B,0X30,0X35,0X3A,0X40,0X45,0X4C,0X51,0X57,0X5D,0X63,0X69,0X6F,0X76,0X7C}; //以上的数组用于存放正弦表,在定义数组时,前面应该加上 const, //使数组存放于ROM 中,而不至于占用太多的RAM unsigned char i; unsigned char j; unsigned char n; //I2C 初始化子程序 void i2cint() {

SSPCON = 0X08; TRISC3 =1;

//初始化SSPCON 寄存器 //设置SCL 为输入口 /*设置PWM周期*/

/*设置工作循环的高8bit为01111111*/

/*设置CCP1为PWM工作方式,且工作循环的低bit2为11*/ /*禁止总中断和外围中断*/ /*设置RC2/CCP1为输出*/


PIC单片机应用开发典型模块_第四章程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011年12月常用会计科目表解释

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: