?? main.c
字號:
//-----------------------------------------------------------------
// 名稱: 三端可調(diào)正電壓穩(wěn)壓器LM317應(yīng)用測試
//-----------------------------------------------------------------
// 說明: 本例運行時,通過兩個按鍵可實現(xiàn)1.5V~9.0V的直流電壓步進(jìn)調(diào)節(jié),
// 步進(jìn)值為0.5V,輸出電壓值將同時顯示在7406驅(qū)動的數(shù)碼管上.
//
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 1000000UL
#define K1 RD6
#define K2 RD7
//0-9的數(shù)碼管段碼,最后3位是黑屏及"dC"的段碼,索引為10,11,12
const INT8U SEG_CODE[] =
{ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xA1,0xC6};
//待顯示數(shù)據(jù)
INT8U Disp_Buff[] = {11,12,10,0,0,0};
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
void main()
{
INT8U volt = 0, Disp_Volt = 0, PreKey = 0xFF;
TRISB = TRISC = 0x00; //RB,RC端口均設(shè)為輸出
PORTB = PORTC = 0xFF; //初始時關(guān)閉數(shù)碼管
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中斷標(biāo)志
T0CS = 0; //TMR0工作于定時器方式
T0IE = 1; //允許TMR0溢出中斷
GIE = 1; //開全局中斷
while (1)
{
if ((PORTD & 0B11000000) != PreKey)
{
}
}
}
//-----------------------------------------------------------------
// TMR0定時器溢出中斷控制數(shù)碼管顯示
//-----------------------------------------------------------------
void interrupt TMR0_Refresh_DSY( )
{
static INT8U i = 0;
if (T0IF)
{
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -