……โมเดลที่ 2 นี้คือ จะมีไมโครคอนโทรลเลอร์ FIC16F1939 ต่อเข้ากับ 7 Segment 4 หลัก มีไม่มีสวิตช์ เมื่อกดรันจะโปรแกรมจะเพิ่มค่าลงทีละ 1 ตั้งแต่ 0 - 999 ตามลูป For ที่กำหนดว่าให้เพิ่มค่าครั้งละ i++ ในส่วนของไฟล์ sim หาไม่เจอครับมันนานแล้วนามสกุลจะเป็น .DSN ใครสงสัยว่าจะต่ออะไรยังไงหรือมองภาพไม่ออกคอมเม้นถามได้เลยครับ
#include <htc.h>
__CONFIG(FOSC_INTOSC &
WDTE_OFF &
PWRTE_ON &
MCLRE_ON &
CP_OFF &
CPD_OFF &
BOREN_OFF &
CLKOUTEN_OFF &
IESO_ON &
FCMEN_ON &
WRT_OFF &
//VCAPEN_OFF &
PLLEN_ON &
STVREN_ON &
BORV_HI &
LVP_OFF);
#define _XTAL_FREQ 32000000
#define DSP_7SEG LATD
#define SCAN_DIS1 LATCbits.LATC0
#define SCAN_DIS2 LATCbits.LATC1
#define SCAN_DIS3 LATCbits.LATC2
#define SCAN_DIS4 LATCbits.LATC3
#define ON 1;
#define OFF 0;
char const LED_CHR[17]={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F,
0x77,0x7C,0x39,0x5E,0x79,
0x71,0x80};
unsigned int i,j;
unsigned int data2;
unsigned int buff1,buff2,buff3,buff4,temp;
void main(void)
{
OSCCONbits.SPLLEN = 1;
OSCCONbits.IRCF = 14;
OSCCONbits.SCS = 0;
TRISD=0x00;
TRISC=0x00;
while(1)
{
for(i=0;i<999;i++)
{
data2=i;
buff1=(data2/1000);
temp=(data2%1000);
buff2=(temp/100);
temp=temp%100;
buff3=(temp/10);
buff4=(temp%10);
DSP_7SEG=LED_CHR[buff1];
SCAN_DIS1=OFF;
__delay_ms(1);
SCAN_DIS1=ON;
DSP_7SEG=LED_CHR[buff2];
SCAN_DIS2=OFF;
__delay_ms(1);
SCAN_DIS2=ON;
DSP_7SEG=LED_CHR[buff3];
SCAN_DIS3=OFF;
__delay_ms(1);
SCAN_DIS3=ON;
DSP_7SEG=LED_CHR[buff4];
SCAN_DIS4=OFF;
__delay_ms(1);
SCAN_DIS4=ON;
}
}
}