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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: 三端可调正电压稳压器LM317应用测试
//-----------------------------------------------------------------
//  说明: 本例运行时,通过两个按键可实现1.5V~9.0V的直流电压步进调节,
//        步进值为0.5V,输出电压值将同时显示在7406驱动的数码管上.
//
//-----------------------------------------------------------------
#include <pic.h> 
#define INT8U  unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 1000000UL

#define K1 RD6
#define K2 RD7
//0-9的数码管段码,最后3位是黑屏及"dC"的段码,索引为10,11,12
const INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xA1,0xC6};

//待显示数据
INT8U Disp_Buff[] = {11,12,10,0,0,0};
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
void main() 
{ 
    INT8U volt = 0, Disp_Volt = 0, PreKey = 0xFF;
    TRISB = TRISC = 0x00;                   //RB,RC端口均设为输出
    PORTB = PORTC = 0xFF;                   //初始时关闭数码管
    TRISD = 0xF0;                           //高四位输入,低四位输出
    PORTD = 0xFF;
    PSA = 0;                                //前分频分配给TMR0
    PS2 = 0; PS1 = PS0 = 1;                 //16分频(OPTION低3位为011)
    TMR0 = (INT8U)(256 - _XTAL_FREQ/4/16*0.004); //4ms定时初值    
    T0IF = 0;                               //清TMR0中断标志
    T0CS = 0;                               //TMR0工作于定时器方式
    T0IE = 1;                               //允许TMR0溢出中断
    GIE = 1;                                //开全局中断
    while (1)
    {
        if ((PORTD & 0B11000000) != PreKey)
        {
            

        }
    }
} 

//-----------------------------------------------------------------
// TMR0定时器溢出中断控制数码管显示
//-----------------------------------------------------------------
void interrupt TMR0_Refresh_DSY( )
{
    static INT8U i = 0; 
    if (T0IF)
    {
        

    }
}

⌨️ 快捷键说明

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