BÀI 9: ĐẾM TỪ 0 ĐẾN 99 SỬ DỤNG 2 NÚT NHẤN PIC16F877A XC8
Có thể bạn quan tâm
Chào mừng đến với Câu Lạc Bộ Sáng Tạo - Chia sẻ kinh nghiệm - Kết nối đam mê Đăng nhập Tài khoản: Mật khẩu: Ghi nhớ? Bài viết ![]() | BÀI 9: ĐẾM TỪ 0 ĐẾN 99 SỬ DỤNG 2 NÚT NHẤN PIC16F877A XC8Đăng bởi: lam3ngon - Thời gian: 22-01-2016, 20:51Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 4771 |
Chào các bạn trong bài đăng trước mình đẫ hướng dẫn các bạn đến từ 0 đến 9 và từ 9 về 0 sử dụng 2 nút nhấn 1 nút nhấn tăng và 1 nút nhấn giảm và trong bài này chúng ta cũng làm tương tự nhưng lần này là từ 0 đến 99 nha.
Các bạn chý ý nếu không có thời gian chống dội phím thì khi nhấn giá trị trên LED sẽ không như chúng ta mong muốn có nghĩa là nó sẽ tăng 1 lúc nhiều số hoặc ngược lại hoặc khi nhấn nút sẽ không có tác dụng gì. Và thêm 1 chú ý nữa cũng rất quan trọng khi các bạn sử dụng PORTA là PORT xuất thì không sao nhưng khi sử dụng PORTA là PORT nhập thì phải tắt chế độ ADC của nó đi nếu không các bạn sẽ không điều khiển nút nhấn như ý muốn của mình được ! Và đển tắt chế độ ADC của nó đi thì chúng ta phải cho thanh ghi ADCON1 = 0x07 các bạn tự tra Datasheet của thanh ghì này nha và coi thử tại sau chúng ta lại cho giá trị thanh ghi ADCON1 = 0x07 nha.
- Đây là ảnh mô phỏng protues.

- Đây là code chương trình.
#include <stdio.h>
#include <stdlib.h>
#define _XTAL_FREQ 8000000
#include <xc.h>
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
void displayed(unsigned int digit);
unsigned char const SEGMENT_MAP[10] = {0XBF,0X86,0XDB,0XCF,0XE6,0XED,0XFD,0X87,0XFF,0XEF};
void main(void) {
ADCON1 = 0x07;
TRISB = 0x00; //Set PortB to all outputs
TRISA0 = 1; //Set PortC.0 as input
TRISA1 = 1;
TRISC0 = 0;
TRISC1 = 0;
char digit=0;
while(1)
{
if (!RA0) //Check if switch SW1 is closed
{
__delay_ms(100);
if(!RA0) //Check if switch SW1 is still closed
{
digit++;
if (digit==100)
digit=0;
__delay_ms(10); //wait for 100ms
}
}
else
{
displayed(digit);
}
if (!RA1) //Check if switch SW1 is closed
{
__delay_ms(100); //wait for 100ms
if (!RA1) //Check if switch SW1 is still closed
{
digit--;
if (digit==0)
digit=99;
__delay_ms(10); //Delay 1 second
}
}
else
{
displayed(digit);
}
}
}
void displayed(unsigned int digit)
{
unsigned int one,ten;
ten = (digit)/10;
one = (digit)%10;
RC0 = 0;
PORTB = (SEGMENT_MAP[ten]);
__delay_ms(10);
RC0 = 1;
RC1 = 0;
PORTB = (SEGMENT_MAP[one]);
__delay_ms(10);
RC1 = 1;
}
- Link download project Click here
Xem thêm tại Blog Programming PIC
Nguồn: Programming PIC![]() | Cần giúp nút ấn với hiệu ứng 8051Đăng bởi: phan_anh_17371 - Thời gian: 06-09-2018, 10:53Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 2915 |
![]() | [SHARE] Thư viện chơi nhạc bằng module DFPLayer Mini LibraryĐăng bởi: Vũ Văn Thái - Thời gian: 05-04-2018, 15:15Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 6375 |
![]() | có bạn nào tìm hiểu về stm8 koĐăng bởi: ngocsi - Thời gian: 13-03-2017, 12:16Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3690 |
![]() | Mạch đo tốc độ và quãng đường xe đạp sử dụng cảm biến hall hiển thị lcdĐăng bởi: leacebach - Thời gian: 04-03-2017, 20:57Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 4018 |
![]() | ỨNG DỤNG LM35 PIC16F877A CODE CCSĐăng bởi: lam3ngon - Thời gian: 05-06-2016, 21:35Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 6396 |
- Thảo luận chung
- Hoạt động câu lạc bộ
- Tâm tình dân kỹ thuật
- Lĩnh vực khác
- Lập trình web
- Trao đổi sửa chữa điện tử
- MCU 8051, AVR, PIC
- Phần mềm tin học
- Điện tử công suất
- Điện tử dân dụng
- Điện thanh
- Học lập trình AVR
- Học lập trình 8051
- Lập trình PLC
- Mô phỏng mạch điện
- Thiết kế mạch in PCB
- Cơ khí chế tạo
- Điện tử cơ bản
- Nhập môn điện tử
- Điện tử sáng tạo
- Tìm mua linh kiện
- Tin tức sáng tạo
- Cuộc thi sáng tạo
- Bài viết: 334/334
- Thành viên: 10145
- Đang online: 1
- Khách hôm nay: 16
- Khách hôm qua: 114
- Tổng khách: 17.080.438
Từ khóa » Code Nút Nhấn Ccs
-
BÀI 4 : GIAO TIẾP VỚI NÚT NHẤN PIC16F877A CCS (P2)
-
BÀI 3 : GIAO TIẾP VỚI NÚT NHẤN PIC16F877A CCS (P1)
-
Nút Bấm Trong CCS - PIC Vietnam
-
Lập Trình PIC CCS Bài 3: Giao Tiếp Nút Nhấn Thay đổi Giá ... - YouTube
-
Lập Trình PIC Với CCS Bài 4 Nút Nhấn - Led 7 đoạn - Phần 1
-
BÀI 4-CHƯƠNG TRÌNH GIAO TIẾP NÚT NHẤN PIC16F877A
-
Xin Giúp Code Pic C (ccs) - Dien Tu Viet Nam
-
Ngắt Port B, Điều Khiển Hiệu ứng Led đơn Bằng Nút Nhấn, Lập Trình Pic
-
Bài 4 - VĐK PIC16F887 Và Nút Nhấn - Diễn đàn Cơ điện Tử
-
Lập Trình PIC CCS Bài 3: Giao Tiếp Nút ... - TƯ VẤN SINH VIÊN HCM
-
BÀI 4 : Mô Phỏng PIC16F877A (XC8) Giao Tiếp Với Nút Nhấn
-
Lập Trình Nút Nhấn Với 8051
