|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
29-06-2016, 08:48 AM | #36 |
Nhập môn đệ tử
Tham gia ngày: Aug 2014
Bài gửi: 1
: |
Các bác pro giúp mình vấn đề này với, mình viết code cho con 16f887 nhưng không biết sai thuật toán hay khai báo thiếu cái gì mà khi mô phỏng nó không chạy, yêu cầu của bài là viết code cho mạch đếm sản phẩm dùng 1 counter và 3 led hiển thị từ 000-100 sang 101 thì nhảy lại về 000, mfinh dùng phần mềm CCS để viết code mô phỏng bằng Proteus bác nào chuyên về PIC chỉ cho mình chỗ sai dc không.
Code: #INCLUDE <16F887.H> //KHAI BAO THU VIEN PIC 16F887 #FUSES NOWDT,HS,PUT,NOPROTECT,NOLVP //KHAI BAO CAU HINH PIC16F887 #USE DELAY(CLOCK=20M) //KHAI BAO TAN SO BO GIAO DONG = 20MHz CONST UNSIGNED CHAR MA7DOAN[10]={0X00,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X9 0}; //KHAI BAO MANG MA LED 7 DOAN UNSIGNED INT8 TO; //KHAI BAO BIEN T0 O KIEU DU LIEU 8 BIT VOID MAIN() //CHUONG TRINH CHINH { SET_TRIS_B(0X00); SET_TRIS_C(0X00); SET_TRIS_D(0X00); //SET_TRIS_A(0XFF); //SET PORT B, C, D CUA VI SU LY LA CONG XUAT DU LIEU //OUTPUT_B(0XF9); OUTPUT_C(0XA4); OUTPUT_D(0XB0); SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1); //CAI DAT TIMER DUNG BO DEM XUNG NGOAI, DUNG BO CHIA TRUOC VOI TI LE 1:1 SET_TIMER0(0); //DAT GIA TRI KHOI TAO CHO TIMER0 = 0 WHILE(TRUE) //VONG LAP VO HAN NEU DIEU KIEN DUNG TO=GET_TIMER0(); //DAT GIA TRI BIEN T0 = GIA TRI TIMER0 //OUTPUT_B(MA7DOAN[TO/100]); //XUAT MA 7 DOAN HANG TRAM RA PORT B, MA 7 DOAN = GIA TRI T0 CHIA CHO 100 OUTPUT_C(MA7DOAN[TO/10]); // XUAT MA 7 DOAN HANG CHUC RA PORT C, MA 7 DOAN = GIA TRI T0 CHIA CHO 10 OUTPUT_D(MA7DOAN[TO%10]); //XUAT MA 7 DOAN HANG DON VI RA PORT D, MA 7 DOAN = GIA TRI T0 CHIA 10, CHIA TIEP CHO 10 LAY SO DU } |
|
|