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
M_tả

No comments: