Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
2,28 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐIỆN TỬ CHƯƠNG Lập trình C cho 8051 (Phần 1) Bùi Minh Thành Bộ môn Kỹ thuật Điện tử - ĐHBK Tp HCM Nội dung Cơ ngôn ngữ C Các lệnh rẽ nhánh vòng lặp Sử dụng trỏ mảng C Các hàm chương trình Chèn assembly code C Mơ hình nhớ Keil C51 Bộ môn Kỹ Thuật Điện Tử - ĐHBK Nội dung Cơ ngơn ngữ C Các lệnh rẽ nhánh vịng lặp Sử dụng trỏ mảng C Các hàm chương trình Chèn assembly code C Mơ hình nhớ Keil C51 Bộ mơn Kỹ Thuật Điện Tử - ĐHBK Giớiàthiệu • Càl g gữàgầ g gữàasse g gữà ấpà ao – Lệ hàt hàto àt ê it – Co àt ỏà đị hàđịaà hỉàgi l hấtàt o gàtấtà ảà àtiếp • Phầ àlớ à iàđiềuàkhiể àđềuà àCà o pile • Việ àph tàt iể àứ gàdụ gàd gàCàsẽà hà h gà thuậ àlợiàhơ àasse l • Càl g gữàlậpàt hà ấuàt kh gàphảiàl àhướ gà đốiàtượ g • Mỗiàt ụà àthểàđượ àđ gàg iàt o gà ộtàh • Chươ gàt hà h hàđượ àđ Bộ môn Kỹ Thuật Điện Tử - ĐHBK gàg iàt o gàh C Assembly • Advantages – High-level, structured programming language – Compiler relieves programmer from some of the hardware details – Easier to write large, complex software – Programs more readable • Disadvantages – Generally larger machine code – Less control and ability to interact with hardware – Unclear number of cycles to something Bộ môn Kỹ Thuật Điện Tử - ĐHBK Cấuàt ộtà hươ gàt hàt o gàC • C uàlệ hàt o gàCàkếtà th ằ gàdấuà ; • Càph iệtà hữàhoầ hữà thườ g • Khià iếtà hươ gàt hà ầ h àýà iếtà h àth h Bộ môn Kỹ Thuật Điện Tử - ĐHBK C àloạià iế àt o gàC Dạng biến Char Unsigned char Enum Short Unsigned short Int Unsigned int Long Unsigned long Ngoài keil C hỗ trợ loại biến để truy xuất ghi có chức đặc biệt: Số bit 8 16 16 16 16 16 32 32 Số byte 1 2 2 4 Dạng biến Bit Sbit Sfr Sfr16 Bộ môn Kỹ Thuật Điện Tử - ĐHBK Miền giá trị -128 đến 127 đến 255 -32.768 đến 32.767 -32.768 đến 32.767 đến 65.535 -32.768 đến 32.767 đến 65.535 -2.147.483.648 đến 2.147.483.647 đến 4.294.697.295 Số bit Số byte 1 16 Miền giá trị đến đến đến 255 đến 65.535 C iế ởà ộ gàt o gàKeilàC • 8051 extension types – bit • 8051 bit addressable memory • 20h to 2Fh – sbit • A bit inside an SFR (e.g P1.0) – sfr • Entire byte of an SFR – sfr16 • 16-bit SFRs (e.g DPTR) • These are special types for accessing 1-bit, 8-bit, and 16-bit special function registers • Declaration – sbit, sfr, and sfr16 • Declare outside of main() program • Essentially a friendly EQU for an SFR or SFR bit – bit • Declare anywhere a normal variable can be declared Bộ môn Kỹ Thuật Điện Tử - ĐHBK V àdụ Bộ môn Kỹ Thuật Điện Tử - ĐHBK Bả gàhằ gàkýàtự Bộ môn Kỹ Thuật Điện Tử - ĐHBK 10 Bit-wise Operators in C (cont’) Bộ môn Kỹ Thuật Điện Tử - ĐHBK 61 Bit-wise Operators in C (cont’) Bộ môn Kỹ Thuật Điện Tử - ĐHBK 62 Bit-wise Operators in C (cont’) Bộ môn Kỹ Thuật Điện Tử - ĐHBK 63 DATA CONVERSION Bộ môn Kỹ Thuật Điện Tử - ĐHBK 64 Packed BCD to ASCII Conversion Bộ môn Kỹ Thuật Điện Tử - ĐHBK 65 ASCII to Packed BCD Conversion Bộ môn Kỹ Thuật Điện Tử - ĐHBK 66 Binary (hex) to Decimal and ASCII Conversion Bộ môn Kỹ Thuật Điện Tử - ĐHBK 67 ACCESSING CODE ROM Bộ môn Kỹ Thuật Điện Tử - ĐHBK 68 RAM Data Space Usage by 8051 C Compiler Bộ môn Kỹ Thuật Điện Tử - ĐHBK 69 RAM Data Space Usage by 8051 CàCo pile o t’ Bộ môn Kỹ Thuật Điện Tử - ĐHBK 70 RAM Data Space Usage by 8051 CàCo pile o t’ Bộ môn Kỹ Thuật Điện Tử - ĐHBK 71 Accessing code rom – Example Bộ môn Kỹ Thuật Điện Tử - ĐHBK 72 Accessing code rom – Example Bộ môn Kỹ Thuật Điện Tử - ĐHBK 73 Accessing code rom – Example o t’ Bộ môn Kỹ Thuật Điện Tử - ĐHBK 74 T iàliệuàtha àkhảo • HồàT u gàMỹ,àVià ửàlý,àNh uấtà ả àĐạiàhọ àQuố àGiầ Tp HCM - 2003 • I Scott MacKenzie , The 8051 Microcontroller, 2nd Edition, Prentice-Hall, 1995 • Derek Molloy, EE402 - Lecture note • “lidề iàgiả gàthầ àHồàT u gàMỹ • Thomas W.Schultz, C and the 8051 – Second Edition • Dogan Ibrahim, Microcontroller Projects in C for the 8051, Newnes – 2000 • V hiềuàt iàliệuàt ê g Bộ môn Kỹ Thuật Điện Tử - ĐHBK 75 ... something Bộ môn Kỹ Thuật Điện Tử - ĐHBK Cấuàt ộtà h? ?ơ gàt h? ?t o gàC • C uàlệ h? ?t o gàCàkếtà th ằ g? ?d? ?? ; • Càph iệtà h? ??àhoầ h? ??à thườ g • Khià iếtà h? ?ơ gàt h? ? ầ h àýà iếtà h àth h Bộ môn Kỹ Thuật... unsigned char *pointer0; – D? ??uàhoaàthịàph aàt ướ à ghĩaàl ộiàdu gà h? ??aàt o gà o t ỏàl ộtàđịaà h? ??à h? ??àkh gàphảiàl àphầ ? ?d? ??àliệuàđểàsử? ?d? ?? gà tính tốn.àKi? ?d? ??àliệ ủầ iế àpoi te t ỏàđế àl unsigned char... d? ??ng trỏ mảng C Các h? ?m chương trình Chèn assembly code C Mơ h? ?nh nhớ Keil C51 Bộ môn Kỹ Thuật Điện Tử - ĐHBK 30 H • C ? ?h à h? ?ơ gàt h? ? o àthườ gàsẽà àgi àt ịàt ảà ề: V ? ?d? ??: unsigned char tinh_tong(unsigned