PIC16F690单片机初学者C语音编程参考

2019-11-07来源: 51hei关键字:PIC16F690  单片机  C语音编程

下面是其中一个单片机源程序如下:

/* 

* File:   newmain.c

* Author: YF006

*

* Created on 2018年7月11日, 上午8:20

*/


#include "hardware.h"


  // CONFIG

#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)

#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)

#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)

#pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)

#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)

#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)

#pragma config BOREN = ON       // Brown-out Reset Selection bits (BOR enabled)

#pragma config IESO = ON        // Internal External Switchover bit (Internal External Switchover mode is enabled)

#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)


unsigned int dutych=0;



void interrupt Timer2_ISR(void)//这个不对

{

    if(TMR2IF)

    {

        //LED8=!LED8;

        TMR2IF = 0;

    }

}


int main() {


    hardint();//系统初始化

    ledint();//LED初始化

    keyint();

    pwmint();


    while(1)

    {

        if(KEY==0)

        {

            delay_for(50);

            if(KEY==0)

            {

               delay_for(10); 

               dutych++;  

            }

        }

        if(dutych>5)

        {

            dutych=0;

        }

        

        

        if(dutych==0)

        {

            DC1B1=0;

            DC1B0=0;

            CCPR1L=0X00;

            

            LED1=0;

            LED2=0;

            LED3=0;

            LED4=0;

            LED5=0;

        }        

        if(dutych==1)

        {

            DC1B1=1;

            DC1B0=1;

            CCPR1L=0X0F;

            

            LED1=1;

            LED2=0;

            LED3=0;

            LED4=0;

            LED5=0;

        }

        if(dutych==2)

        {

            DC1B1=0;

            DC1B0=1;

            CCPR1L=0X1F; 

            

            LED1=0;

            LED2=1;

            LED3=0;

            LED4=0;

            LED5=0;           

        }

        if(dutych==3)

        {

            DC1B1=1;

            DC1B0=1;

            CCPR1L=0X2E;

            

            LED1=0;

            LED2=0;

            LED3=1;

            LED4=0;

            LED5=0;            

        }

        if(dutych==4)

        {

            DC1B1=1;

            DC1B0=0;

            CCPR1L=0X3E;


            LED1=0;

            LED2=0;

            LED3=0;

            LED4=1;

            LED5=0;           

        }        

        if(dutych==5)

        {

            DC1B1=0;

            DC1B0=0;

            CCPR1L=0X4E;

            

            LED1=0;

            LED2=0;

            LED3=0;

……………………



关键字:PIC16F690  单片机  C语音编程 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic479244.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:(海尔)东软单片机 HR7P153 SOP-16数码管显示程序
下一篇:TM1640与PIC12F629单片机的结合

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC16F877A单片机的PWM输出程序
模块为PWM 工作方式,且其工作循环PR2=0XFF;       //设置PWM 的工作周期TRISC=0XFB;      //设置CCP1 引脚为输出方式while(1){  k++;  CCPR1L=k;  delay();  if(k>253)k=1;} }////////////////////////////////////////////////////////////////////////////////////////////下面的是AVR单片机ATMEGA16的PWM信号输出程序GCC编译
发表于 2019-11-20
PIC16F877矩阵键盘的识别
关于矩阵键盘的识别方法在51矩阵键盘识别中已经说过,现在要说的是PIC单片机与51单片机的区别,主要是PIC单片机的口子的输入输出需要TRISn寄存器设置,具体如下:扫描法:#include<pic.h>#define uchar unsigned char#define uint unsigned intuchar num;const ucharSSEG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay1ms(uint z){uint x;uchar y;for(x=z;x>
发表于 2019-11-16
PIC16F877矩阵键盘的识别
pic16f887 TMR0计时器讲解及准确定时程序
;        5 ANDWF OPTION_REG,W ;CLEAR THEM AFTERWARDS BY INSTRUCTION 6 ;“LOGICAL AND”         7 IORLW b’00000011’ ;PRESCALER RATE IS 1:16    8 MOVWF OPTION_REG暂存器设定说明:为了恰当地使用 TMR0,必须:1、要选择模式:● 计时器模式是借由 OPTION_REG 暂存器的 T0CS 来选择。 (T0CS: 0=timer, 1=counter
发表于 2019-11-16
pic16f887 TMR0计时器讲解及准确定时程序
用PIC16F1824的内部DAC做正弦波发生器测试
正弦波合成采用最简单的定时器扫描码表,内部的DAC只有5位,所以波形一般,如果加个RC滤波下估计还可以!除了IC外还有一个复位开关,下面有个去藕电容,其它就是接插件和万能板了。
发表于 2019-11-16
用PIC16F1824的内部DAC做正弦波发生器测试
pic16f887单片机用AD590高精度测温的电路和程序
一、 前言AD590 为Analog Devices 公司出品的一种双端温度转换电流源的单晶IC。图为AD590内部的线路结构,及其二种常用的包装。二、原理与暂存器设定说明原理:AD 590是一个良好的温度-电流转换的感测元件,具有良好的线性关系,其转换率为1μA/°K。&#1048708;图(左边)所示为AD 590转换电路,其输出转换率有100mV/°C(Vo15)输出。由于AD 590之转换率为1μA/°K。因运算放大器具有极高的输入阻抗,极小的输入电流的特性,使得AD 590电流完全流过R2与R3,故U1 的输出电压为1μA/°K.(R2+R3),当调整R2使得R2+R3=10KΩ时,U1 的输出电压为10mV/°K
发表于 2019-11-15
pic16f887单片机用AD590高精度测温的电路和程序
PIC18f4520单片机驱动H1632的C语言程序
#include<p18f4520.h>#include <delays.h>//#pragma config OSC = HS //配置内部振荡器Fosc/4 RA7,IO口RA7//#pragma config PWRT =OFF//#pragma config BOREN = OFF//#pragma config WDT = OFF//#pragma config MCLRE = ON//#pragma config PBADEN = OFF//#pragma config LVP = OFF#define CLK PORTCbits.RC3 #define DAT
发表于 2019-11-15
PIC18f4520单片机驱动H1632的C语言程序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved