⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testboard.lst

📁 PIC MCU开发用的一个小工具,用于对某些外设芯片子程序的调试,有2个按键2x20的字符LCD,3个I/O,1个UART,非常好用,包含SCHPCB 以及初始化C代码.
💻 LST
📖 第 1 页 / 共 2 页
字号:
     1:         #include <pic.h>

     2:         #include <pic16630.h>

     3: 

     4: /**************端口定义**************

     5: ************************************/

     6:         #define cdc_clk         RA0             //用户IO端口0

     7:         #define cdc_clk_T       TRISA0          

     8:         #define port1           RA1             //用户IO端口1

     9:         #define cdc_dat         RA2             //用户IO端口2

    10:         #define cdc_dat_T       TRISA2

    11:         #define port3           RA3             //用户输入端口

    12:         #define incsel          RA4             //按键DEC

    13:         #define decent          RA5             //按键INC

    14:         #define dis_clk         RC0             //显示数据输出时钟

    15:         #define dis_data        RC1             //显示数据输出端口

    16:         #define dis_rs          RC2             //显示命令/数据选择

    17:         #define dis_en          RC3             //显示使能控制

    18:         #define txd                     RC4             //URAT发送端

    19:         #define rxd                     RC5             //URAT接收端

    20:         #define buzz            RC5             //蜂鸣器

    21: 

    22: /********特殊寄存器初始化参数********

    23: ************************************/

    24:         #define TRISA_CODE              0X3f

    25: /*      TRISA

    26:                 5       4       3       2       1       0

    27:                 I       I       I       I       I       I

    28:                 |       |       |       |       |       |->用户端口0

    29:                 |       |       |       |       |----->用户端口1

    30:                 |       |       |       |--------->用户端口2

    31:                 |       |       |------------->用户输入端口2

    32:                 |       |----------------->按键输入1

    33:                 |--------------------->按键输入2

    34: */

    35:         #define IOCA_CODE               0X00

    36:         #define TRISC_CODE              0X00

    37: /*      TRISC

    38:                 5       4       3       2       1       0

    39:                 O       O       0       0       0       0

    40:                 |       |       |       |       |       |->显示时钟输出

    41:                 |       |       |       |       |----->显示数据输出

    42:                 |       |       |       |--------->命令/数字选择

    43:                 |       |       |------------->LCD EN使能

    44:                 |       |----------------->TXD

    45:                 |--------------------->BUZZ(RXD)

    46: */

    47:         #define WPUA_CODE               0X35    //A口弱上拉

    48:         #define ANSEL_CODE              0X00    //A/D模拟/数字端口选择

    49: /*      ANSEL

    50:                 7       6       5       4       3       2       1       0

    51:                 |       |       |       |       |       |       |       |->RA0

    52:                 |       |       |       |       |       |       |----->RA1

    53:                 |       |       |       |       |       |--------->RA2

    54:                 |       |       |       |       |------------->RA4

    55:                 |       |       |       |----------------->RC0

    56:                 |       |       |--------------------->RC1

    57:                 |       |------------------------->RC2

    58:                 |----------------------------->RC3

    59: */

    60:         #define OPTION_CODE             0X07

    61: /*      OPTION

    62:                 7       6       5       4       3       2       1       0

    63:                 |       |       |       |       |       |       |       |->\

    64:                 |       |       |       |       |       |       |------->T0前分频选择

    65:                 |       |       |       |       |       |--------->/

    66:                 |       |       |       |       |------------->预分频使用选择(为0时T0使用)

    67:                 |       |       |       |----------------->T0记数边沿选择(0为上边沿触发)

    68:                 |       |       |--------------------->T0计数来源选择(为1RA2输入)

    69:                 |       |------------------------->INT中断边沿选择(0为下降沿触发)

    70:                 |----------------------------->A口弱上拉控制(为0打开)

    71: */

    72:         #define PIE1_CODE               0x00

    73: /*      PIE1

    74:                 7       6       5       4       3       2       1       0

    75:                 |       |       |       |       |       |       |       |->TMR1IE定时器1中断控制

    76:                 |       |       |       |       |       |       |----->

    77:                 |       |       |       |       |       |--------->

    78:                 |       |       |       |       |------------->CMIE比较器中断控制

    79:                 |       |       |       |----------------->

    80:                 |       |       |--------------------->

    81:                 |       |------------------------->ADIE模数变换中断控制

    82:                 |----------------------------->EEIE内部EEROM中断控制

    83: */

    84:         #define ADCON1_CODE             0x00

    85: //AD变换工作时钟选择,选择标准以转换时间>1.6uS为准,基准时钟是主振荡频率

    86:         #define VRCON_CODE              0x00

    87: //比较器控制

    88:         #define PORTA_CODE              0X00            

    89:         #define PORTC_CODE              0X00

    90:         #define INTCON_CODE             0X40

    91: /*      INTCON

    92:                 7       6       5       4       3       2       1       0

    93:                 |       |       |       |       |       |       |       |->A口中断标志

    94:                 |       |       |       |       |       |       |----->INT中断标志

    95:                 |       |       |       |       |       |--------->T0中断标志

    96:                 |       |       |       |       |------------->A口变化中断允许

    97:                 |       |       |       |----------------->INT中断允许

    98:                 |       |       |--------------------->T0中断允许

    99:                 |       |------------------------->外部中断总控制

   100:                 |----------------------------->中断总控制

   101: */

   102:         #define T1CON_CODE              0X00

   103: /*      T1CON

   104: 7       6       5       4       3       2       1       0

   105: |       |       |       |       |       |       |       |->

   106: |       |       |       |       |       |       |----->T1外部计数门控位(0开计数,1外部控制为0时计数)

   107: |       |       |       |       |       |--------->\

   108: |       |       |       |       |--------------->前分频选择

   109: |       |       |       |----------------->LP外部时钟选择(1使能外部时钟)

   110: |       |       |--------------------->外部时钟同步选择(0同步输入)

   111: |       |------------------------->时钟来源选择(0为内部时钟,1为RA5输入)

   112: |----------------------------->计数控制位(1开始计数)

   113: */

   114:         #define ADCON0_CODE             0x00

   115: /*      ADCON0

   116: 7       6       5       4       3       2       1       0

   117: |       |       |       |       |       |       |       |->数据格式选择(为0数据靠高端)

   118: |       |       |       |       |       |       |----->基准电压选择(为1由RA1提供)

   119: |       |       |       |       |       |--------->

   120: |       |       |       |       |------------->\

   121: |       |       |       |------------------->通道选择

   122: |       |       |--------------------->/

   123: |       |------------------------->AD变换启动位(为1启动,硬件清零)

   124: |----------------------------->AD模块电源控制(为1开启)

   125: */

   126:         #define CMCON_CODE              0X07

   127: //关闭比较器功能

   128: 

   129: /***************变量定义*************

   130: ************************************/

   131:         static volatile unsigned char discpsw0; //碟机状态

   132:         static volatile unsigned char discpsw1;

   133:         static volatile unsigned char discpsw2;

   134:         static volatile unsigned char discpsw3;

   135:         static volatile unsigned char discpsw4;

   136:         static volatile unsigned char discpsw5;

   137:         static volatile unsigned char discpsw6;

   138:         static volatile unsigned char discpsw7;

   139:         static volatile unsigned char softpsw;

   140: /*      softpsw

   141: 7       6       5       4       3       2       1       0

   142: |       |       |       |       |       |       |       |->数据读取标志(为1正在读取)

   143: |       |       |       |       |       |       |----->数据准备好标志(为1准备好)

   144: |       |       |       |       |       |--------->显示标志

   145: |       |       |       |       |------------->

   146: |       |       |       |----------------->

   147: |       |       |--------------------->

   148: |       |------------------------->

   149: |----------------------------->

   150: */

   151:         static volatile unsigned char nowdisc;

   152:         static volatile unsigned char nowtrackH;

   153:         static volatile unsigned char nowtrackL;

   154:         static volatile unsigned char nowminH;

   155:         static volatile unsigned char nowminL;

   156:         static volatile unsigned char nowsecH;

   157:         static volatile unsigned char nowsecL;

   158: /******************************************

   159: 特殊寄存器设置函数;sfr_setup

   160:   作用:初始化内部特殊寄存器;

   161:   入口:无;

   162:   出口:无;

   163: *******************************************/

   164:         void sfr_setup(void)

   165:         {

   166: //BANK1

   167:         TRISA=TRISA_CODE;

   168:         TRISC=TRISC_CODE;

   169:         OPTION=OPTION_CODE;

   170:         PIE1=PIE1_CODE;

   171:         ANSEL=ANSEL_CODE;

   172:         ADCON1=ADCON1_CODE;

   173:         IOCA=IOCA_CODE;

   174:         WPUA=WPUA_CODE;

   175: //BANK0

   176:         PORTA=PORTA_CODE;               

   177:         PORTC=PORTC_CODE;

   178:         INTCON=INTCON_CODE;

   179:         T1CON=T1CON_CODE;

   180:         ADCON0=ADCON0_CODE;

   181:         CMCON=CMCON_CODE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -