TÀI LIỆU - Lập trình C bằng CCS cho vi điều khiển Pic16F877a (Thang8831)
NỘI DUNG:
I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
CCS C for PIC16F877A
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A 24/ / 06/ / 2008
Thang8831
http://www.picvietnam.com
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….24
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
CCS C for PIC16F877A
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A 24/ / 06/ / 2008
Thang8831
http://www.picvietnam.com
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….24
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….248
LINK DOWNLOAD
NỘI DUNG:
I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
CCS C for PIC16F877A
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A 24/ / 06/ / 2008
Thang8831
http://www.picvietnam.com
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….24
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33I . T ổng quan về CCS………………………………………………………10
1.1. Vì sao ta sử dung CCS ?
1.2. Gi ới thi ệu về CCS ?
1.3. Một số ví dụ cho l ập trình CCS……………………………………… …….10
II.Chúng ta cùng nhau tìm hiểu lần lượt các phần sau………….11
1. I/O_Delay
1.2. I nput_output………………………………………………………….. .....11
1.3. Nháy LED PortB7…………………………………………………………..14
1.4. Nháy Led nhi ều chế độ……………………………………………………..15
1.5. Đi ều khi ển led sáng dồn…………………………………………………….18
1.6. I/O + Delay _ Delay 1s RB0 …………………………………………………18
1.7. Nháy Led RB0…………………………………………………………..... ....19
1.8. Delay 1s portB……………………………………………………………….21
1.9. Delay_Timer0 ……………………………………………………………......22
2. ADC……………………………………………………………………………25
A . Sơ đồ:
B.Code
B.1. ADC reading voltage…………………………………………………….......25
B.2. LM335_LCD…………………………………………………………… ……26
B.3. LM335_F877A_LCD1602……………………………………………………29
B.4. ADC_186……………………………………………………………………...33
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
CCS C for PIC16F877A
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A 24/ / 06/ / 2008
Thang8831
http://www.picvietnam.com
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….24
3. DAC……………………………………………………………………………..36
3.1. DAC_1446……………………………………………………………………..36
4. Timer…………………………………………………………………………….37
4.1. Timer0…………………………………………………………………………38
4.2. Timer1…………………………………………………………………………39
4.3. Timer2…………………………………………………………………………39
4.4. frequenc ymeter………………………………………………………………. .40
5. INTERRUPT………………………………………………………………..…43
5.1. Ngắt Timer0………………………………………………………………….. .44
5.2. Ngắt ngoài …………………………………………………………………….48
5.3. Ngắt ngoài trên RB4 -RB7 ……………………………………………………51
5.4. Gi ải mã bàn phím ............................................................................................ .56
5.5. Chương trình gửi ký tự ra 2x16 LCD dùng CCS C ………………………..59
5.7. Ví dụ nhỏ về ngắt ngoài ………………………………………………………61
5.8. Ngắt ngoài và đèn 7 đo ạn …………………………………………………….62
5.9. Chương trình hi ển thị phím số ra đèn 7 đoạn (không dùng interrupt) …...63
5.10. Chương trình hi ển thị phím số ra đèn 7 đoạn (DÙNG INTERRUPT) ….64
5.11. Thay đổi tốc độ đèn led dung ng ắt………………………………………….65
6. Chương trình ví dụ sau mô tả cách dùng PWM do CCS cung c ấp...….72
7. Tìm hiểu về LCD .............................................................. ................................76
7.1. 8bit interface…………………………………………………………………..77
7.2. 4bit interface…………………………………………………………………..78
7.3. LCD_lib_4bit
- 3 -7.4. LCD lib 8bits …………………………………………………………………...80
7.5. Hi ển thị LCD 8bit interface…………………………………………………..81
7.6. Hi ển thị LCD 4bit interface ………………………………………………….86
7.7. LCD_8bit interface, có ki ểm tra cờ bận. ……………………………………86
7.8. LCD and Keypad drive……………………………………………………….89
7.9.LM335_F877A_LCD1602 ……………………………………………………106
7.10. LM35_F877A_LCD1602…………………………………………………...107
7.11. LM335_F877A_LCD1602 ………………………………………………….110
7.12. lcd_bargraph………………………………………………………………..113
7.13. Chương trình g ửi ký tự ra 2x16 LCD dùng CCS C………………………113
8. LED ma trận……………………………………………………………..……118
8.1. font_ascii
8.2. font_ascii2……………………………………………………………………..120
8.3. led matrix_Ngat ngoai_COM………………………………………………..122
8.4. led matrix ket noi RS232 ……………………………………………………..128
8.5. led matrix (595 va 154) ket noi rs232 ………………………………………..132
8.6. led matrix ver 1.2 ……………………………………………………………..136
8.7. 16f877a_8x16_2mau……………………………………………………...…...141
9. Động cơ……………………………………………………………………….. ..148
9.1. DC Motor……………………
9.1.1. code
9.1.2. Position_Control …………………………………………………………….151
9.1.3. check_encoder……………………………………………………………….175
9.2. DK Step Motor………………………………………………………………...177
9.2.1. Code
9.2.2. Step_motor_F877A
9.2.3. Chương trình đi ều khi ển động cơ bước …………………………………...181
9.2.4. Đi ều khi ển động cơ bước………………………………………………... ….183
10. Capture……………………………………………………………..………….187
10.1. Code cho CCS
10.2. Sử dụng capture newcode ……………………………………………………188
10.3.Capture_LCD_5MH………………………………………………………….190
10.4. Sử dụng capture_LCD……………………………………………………….193
10.5. Sử dụng capture………………………………………………………………195
11. SPI……………………………………………………………………………....196
12. Các chuẩn giao tiếp……………………………………………………….….197
12.1. Chuẩn giao ti ếp I2C
12.1.1. Master_Slave……………………………………………………………….204
12.1.1.1. I2Cmaster………………………………………………………………...204
12.1.1.2. I2Cslave…………………………………………………………………...205
12.1.2. lcd1_lib
12.1.3. lcd2_lib……………………………………………………………………...208
12.2. Giao ti ếp RS232………………………………………………………………210
Serial Port - l ập trình giao ti ếp nối ti ếp…………………………………………..210
12.2.1. Giao tiep COM_LCD………………………………………………………222
12.2.2. USART -RS232……………………………………………………………...224
CCS C for PIC16F877A
- 4 -12.2.3. RS232TUT.H………………………………………………………………..225
12.2.4. RS232TUT…………………………………………………………………..225
12.2.5. RS232TUTDlg………………………………………………………………227
12.2.6. RS232TUTDlg.CPP ………………………………………………………...228
12.2.7. StdAfx.H…………………………………………………………………….235
12.2.8. mscomm.H………………………………………………………………….
12.2.9. mscomm.CPP ……………………………………………………………….237
12.2.10. G iao tiep pc va pic6f877 qua cong rs2 32………………………………...244
13. Ghi đọc RAM ngoài……………………………………………………….…246
13.1. Sơ đồ………………………………………………………………………….
13.2. Code…………………………………………………………………………...246
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640………………….248
LINK DOWNLOAD
Không có nhận xét nào: