10 4.104 8051 9 Acquy adc pic All datasheet ALTIUM Altium Designer AM-FM Arduino ARM ARM là gì Ấn Tượng Bản tin công nghệ Bản tin Thiết Bị Số Barobo bất động sản biến Binary Bit board lpc2378 Bộ chuyển đổi ADC Bộ Đếm Bộ điều khiển cửa cuốn Bộ Định Thời Buy Khóa Số Điện Tử Buy Mạch đếm sản phẩm Buy Mạch giao thông Buy Mạch nạp Buy Matrix Byte C cho AVR các hàm vào ra các loại lõi arm các mạch DAC cơ bản các ngắt trong pic Cách đọc điện trở Cách Đọc Giá Trị Điện Trở Cách đọc giá trị tụ điện Cách hàn linh kiện dán cách làm mạch khóa số cách tạo linh kiện dán cad/cam Cài Đặt cài đặt proteus 8 cảm biến Cấu Kiện Logic Khả Trình cấu tạo cấu trúc arm cấu trúc lệnh CCS Chân chân Transistor Chip Khả Trình chuyển đổi Chuyển đổi số tương tự Chuyển Đổi Tương Tự/Số - ADC Chuyển động số chương trình City Clip Điện Tử Code 8051 - ASM Code 8051 - C Code 8051-C code ASM code ASM mẫu 8086 Code AVR - C code C Code Lập Trình Code led sao băng code maupic code mẫu 8051 Code Mẫu 8086 Code Mẫu cho ARM - LPC1343 code mẫu pic Code PIC - C codemaupic Counter Cổng Vào Ra Cơ Bản Cuộn Cảm Cửa cuốn DA DAC Debug Decimal Delay8051 Dev-C++ Diode DIY Dò đường Do It Yourself doanh nghiệp Download DTMF Mobile đảo chiều động cơ Điện Trở Điện Tử Điện Tử Cơ Bản điều chế độ rộng xung điều chế xung PWM điều khiển bằng điện thoại Điều khiển cửa cuốn Điều khiển cửa cuốn bằng điện thoại điều khiển động cơ đo điện áp đo nhiệt độ đo nhiệt độ hiển thị lên lcd trên 8051 Đo Nhiệt Độ LM35 + LCD Đo Nhiệt Độ LM35 + Led 7 thanh đọc màu điện trở đồ chơi động cơ chân không Động cơ nhiên liệu Động cơ robo đồng hồ thời gian thực Ebook Đại Học ebook điện tử Ebook đồ án Ebook Tin Học Encoder Encoder là gì Full Giải Thuật Giải thuật PID Giáo Dục giao tiếp i2c pic 16f877a giao tiếp i2c pic16f877a với ic ds1307 giao tiếp máy tính qua rs232 Giao Tiếp Máy Tính VB6 giao tiếp rs232 giao tiếp spi giữa 2 pic giao tiếp spi trong pic Giáo Trình Điện Tử Giới thiệu 8051 Giới thiệu cơ bản GPIO Graphic Design hàm Hàn linh kiện dán Hexadecimal Hệ Hexa Hệ Nhị Phân Hệ Thập Lục Phân Hệ Thập Phân hiển thị lên lcd 16x2 Hoạt Động Học Học 8051 qua các ví dụ đơn giản Học ALtium Designer học AVR Học Corel Draw X3 Học Eagle HỌC LẬP TRÌNH 16F877A Học Lập Trình 8051 Học Lập Trình C Học Orcad Học Protues hoc-lam-robot-do-duong-qua-video Hồng ngoại hướng dẫn hướng dẫn Altium Designer hướng dẫn đo đồng hồ VOM hướng dẫn keil - C lập trình 8051 hướng dẫn làm led sao băng hướng dẫn làm led trái tim hướng dẫn lập trình ARM Hướng Dẫn Lập Trình ARM - LPC1343 hướng dẫn lập trình ARM-LPC2378 hướng dẫn lập trình CCS hướng dẫn lập trình PIC Hướng Dẫn Led Trái Tim hướng dẫn module sim548c hướng dẫn sử dụng keil hướng dẫn sử dụng proteus 8 Hyper Terminal hercules 3.2.4 I/O IC 555 IC 7447 IC 74HC151 IC 74HC154 IC 74HC245 IC 74HC595 IC 74LS138 IC DS1307 IC đồng hồ thời gian thực IC LM324 IC LM342 IC LM7805 IC số IC số opamp LM324 IC Thông Dụng IC555 Interrupt Keil 4 Full keil arm Keil C Keil uVision3 kế toán kiểm toán khái niệm Khái Niệm Cơ Bản Kho Vật Liệu khóa điện tử khóa số dùng 8051 khóa số dùng 89s52 Khóa Số Điện Tử khuếch đại kiểm tra Kinh doanh maketing kinh tế quản lí Kỹ Thuật Kỹ Thuật Vi Xử Lý làm mạch điện lý thú Làm quen AVR Lap Trinh Dieu Khien Robot Lập Trình lập trình 8051 Lập Trình AVR Lập Trình C lập trình c++ Lập Trình Led Quảng Cáo Lập Trình Nhúng Lập trình pic Lập trình Robot Lập Trình Vi Điều Khiển Lập Trình Với AVR Studio LCD 16x2 Lcd16x2 Led Clock Led Quay led sao băng led trai tim Led Trái Tim Lịch sử ra đời Linh Kiện Cơ Bản linh kiện điện tử Loa LPC 2378 LSB lý thú Mã AVR - C Mạch 7seg Mạch Amply.Mạch Loa Mạch Autorobo Mạch bảo vệ Mạch Cảm Biến mạch cảm ứng sờ tay Mạch Cầu H Mạch cube Mạch Đếm Sản Phẩm Mạch điện cơ bản Mạch điện hay Mạch Điện Ứng Dụng Mạch Điều khiển động cơ Mạch Động Cơ Mạch đồng hồ Mạch đồng hồ 4 led Mạch giao thông Mạch IC số Mạch in mạch khóa số mạch khuếch đại thuật toán mạch led chúc mừng năm mới mạch led đẹp Mạch Led đơn Mạch Led Quảng Cáo mach led trai tim mạch led trái tim Mạch Led Vumeter mạch lý thú Mạch Ma trận Phím Mạch Matrix Mạch nạp Mạch nguồn Mạch Nút Bấm mạch sóng rf mạch tăng áp Mạch thu phát Mạch tổ hợp MSI Mạch trái tim Mạch Vi điều khiển Microbicho module module GSM/GPS Module Sim548 Module Sim548 giao tiếp với vi điều khiển PIC Module Sim548C Mosfet Motor Mô Phỏng Phần Cứng Mô Tả Phần Cứng MSB mua led sao băng News Ngắt Ngắt Trong LPC23xx ngân hàng Ngôn Ngữ Ngôn Ngữ C Ngôn Ngữ Tự Học Lập Trình C Ngôn Ngữ VHDL Nguyên Lý nguyên lý ic 555 Nguyên Tắc nháy led Nhập môn C Nhỏ Gọn Nibble opamp People Phần Mềm phần mềm altium Designer Phần mềm điện tử Phần Mềm Điện Tử Phần Mềm Điện Tử Hay Phần Mềm Hay Phần Mềm Led Quảng Cáo phần mềm proteus 8 Phần mềm vi tính Phần Mền Phương pháp hàn linh kiện dán PIC pic16f877a Print Design Proteus Proteus 7.8 SP2 FULL PWM quà tặng bạn gái quà tặng độc đáo quản trị doanh nghiệp quản trị kinh doanh quét led 7 đoạn Relay robocon Robot ROBOT DÒ ĐƯỜNG rút gọn mạch logic tổ hợp Sach Dien Tu Sản Phẩm Thú Vị Sản Phẩm Thương Mại Sáng tạo Short Smart Home SMD sơ đồ nguyên lý spi Sports Sử Dụng Sử Dụng Đồng Hồ sử dụng đồng hồ VOM sử dụng ngắt trong pic sự khác nhau Sức mạnh số Tải tài chính tài chính doanh nghiệp tài chính ngân hàng Tài Khoản Chia Sẻ Tài Liệu Tài Liệu 8051 tài liệu avr Tài liệu Điện Tử Tài Liệu Pic Tài liệu robocon tài liệu về ngân hàng Tài Liệu Vi Điều Khiển tailieuvn Tạo cổng Com ảo Tạo cổng nối tiếp ảo tạo dự án trong keil arm Tạo Project trong Vi Xử Lý ARM tạo thư viện altium designer tạo xung vuông Tạp chí Tạp Chí Hay tăng áp Tập lệnh AT Team Support TEAMPLATE PROTEUS Test thị trường tài chính Thiết Bị Thú Vị Thiết kế robot Thiết lập Fuse Bits Thiết Lập Pin Thuật Toán Thuật Toán Điều Khiển PID Thuật Toán Quine MCCluskey Thư viện Protues Thực Hành Thyristor Timer Timer/Counter Tin Học Chia Sẻ Tổ Chức Bộ Nhớ tổng quan về proteus 8 Transistor Tranzito Tranzitor Trao đổi học tập Travel Trình Biên Dịch Trình Dịch Trong Suốt Truyền Thông Nối Tiếp Không Đồng Bộ- UART truyền thông nối tiếp RS232 Tụ điện TUT - 8051 - ASM TUT - 8051 - KeilC tự hành Tự Học C Tự Học Lập Trình C Tý hon UART Update USB Ứng Dụng Led Quảng Cáo ứng dụng mạch khuếch đại thuật toán vẽ mạch in vẽ mạch nguyên lý VHDL Vi Điều Khiển Vi điều khiển - Ứng dụng vi điều khiển PIC Vi mạch số Vi Xử Lý Vi Xử Lý 8051 Vi Xử Lý 8086 Vi Xử Lý ARM Vi Xử Lý PIC Video Video Mach Điện Virtual Serial Port Driver VOM vxl Web Design xác định góc quay động cơ xử lý chuỗi

Lập trình C cho VXL - Cơ bản





I.Giới thiệu

C là một ngôn ngữ khá mạnh và rất nhiều ngưòi dùng .Nếu nói số lệnh cơ bản của C thì không nhiều

Nhưng đối với lập trình cho vxl , chúng ta chi cần biết số lượng lệnh không nhiều .

Đầu tiên bạn phải làm quen với:

Các kiểu toán tử ở C

Các kiểu dữ liệu

Cẩu trúc cơ bản của một chương trình

Các cấu trúc điều khiển (chính các tập lệnh )

Cấu trúc điều kiện : if và else

Các cấu trúc lặp

Vòng lặp while

Vòng lặp do while

Vòng lặp for

Lệnh break.

Cấu trúc lựa chọn: switch. case

Biết sử dụng các hàm và chương trình con .

II.Cơ bản C

1. Các chỉ thị trước xử lý của Keil C

// chu thich

/********** chu thich******************

****************************************

*************************************** */

Đây là dòng chú thích. Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là chút thích mà

chúng không có bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng có thể

được các lập trình viên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương

trình. Trong trường hợp này, dòng chú thích là một giải thích ngắn gọn những gì mà chương

trình chúng ta làm. Còn trong dấu (/* */) bạn có thể chú thích bao nhiêu dòng tuỳ thích ,



#include <AT89X52.H>

hoặc

#include "AT89X52.H"

trình biên dịch sẽ gọi file thư viện của 89 ra (cơ bản là 51 cũng như 52)

#define bien_thay_the bien

VD:

#define Congtac P0_6

port0.6 được đặt tên là congtac , khi ta gọi tên này trình biên dịch Keil sẽ tự chuyển tới bit quản lý

P0_6

Note :cách viết P0_6 phụ thuộc vào từng trình biên dịch , có chương trình thì lại viết là P0.6 , còn

keil C viết như cách đầu

#define m_left_tien P1_5

#define m_left_lui P1_4

#define m_left_forward m_left_tien=0;m_left_lui=1;

các bạn chú ý đây là một cách sử dụng marco trong C

khi mình gọi m_left_forward thì chân P1_5 = 0 và P1_4=1

Các viết này gần như cho chúng ta một chương trình con , tuy nhiên không nên quá lạm dụng nó

Một ưu điểm nổi bật của C là các bạn có thể tạo ra các bộ thư viện .

Ví dụ sau là tạo thư viện thuvien.h (đuôi .h bạn có thể tạo bằng cách save as .. *.h ở Keil C ).

#ifndef _thuvien_H

#define _thuvien_H

....//mã chương trình

#endif

2. Các toán tử :

->Toán tử gán (=).

Example:

b = 5;

a = 2 + b;

a = 2 + (b = 5);

a = b = c = 5;

->Các toán tử số học ( +, -, *, /, % )

+ cộng

- trừ

* nhân

/ chia

% lấy phần dư (trong phép chia)

->Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

value += increase; tương đương với value = value + increase;

a -= 5; tương đương với a = a - 5;

a /= b; tương đương với a = a / b;

price *= units + 1; tương đương với price = price * (units + 1);

Tăng và giảm ++ - -

a++; <=> a+=1; <=> a=a+1;

tính chất tiền tố hoặc hậu tố (++a) # (a++) 

VD:

B=3;

B=3;A=++B;

// A is 4, B is 4

B=3;

A=B++;

// A is 3, B is 4

-> Các toán tử quan hệ ( ==, !=, >, <, >=, <= )

== Bằng

!= Khác

> Lớn hơn

< Nhỏ hơn

> = Lớn hơn hoặc bằng

< = Nhỏ hơn hoặc bằng

VD:

Lập trình C cho VXL - Cơ bản

(7 == 5) sẽ trả giá trị false

(6 >= 6) sẽ trả giá trị true

tất nhiên thay vì sử dụng các số, chúng ta có thể sử dụng bất cứ biểu thức nào. Cho a=2, b=3 và

c=6

(a*b >= c) sẽ trả giá trị true.

(b+4 < a*c) sẽ trả giá trị false

Chú ý rằng = (một dấu bằng) lf hoàn toàn khác với ==

(hai dấu bằng). (==) nhằm so sánh còn (=)gán giá trị của biểu thức bên phải cho biến ở bên trái .

-> Các toán tử logic ( !, &&, || ).

! NOT

&& AND

|| OR

VD:

!(5 == 5) trả về false vì biểu thức bên phải (5 == 5) có giá trị true.

!(6 <= 4) trả về true vì (6 <= 4)có giá trị false.

!true trả về false.

!false trả về true.

( (5 == 5) && (3 > 6) ) trả về false ( true && false ).

( (5 == 5)

-> Các toán tử thao tác bit ( &, |, ^, ~, <<, >> ).

& AND Logical AND

| OR Logical OR

^ XOR Logical exclusive OR

~ NOT Đảo ngược bit

<< SHL Dịch bit sang trái

>> SHR Dịch bit sang phải

->Thứ tự ưu tiên của các toán tử

Thứ

tự

Toán tử Mô tả Associativity

1 :: scope Trái

2 () [ ] -> . sizeof Trái

3

++ -- tăng/giảm

Phải

~ Đảo ngược bit

! NOT

& * Toán tử con trỏ

(type) Chuyển đổi kiểu

+ - Dương hoặc âm

4 * / % Toán tử số học Trái

5 + - Toán tử số học Trái

6 << >> Dịch bit Trái

7 < <= > >= Toán tử quan hệ Trái

8 == != Toán tử quan hệ Trái

9 & ^ | Toán tử thao tác bit Trái

10 && || Toán tử logic Trái

11 ?: Toán tử điều kiện Phải

12 = += -= *= /= %=

>>= <<= &= ^= |= Toán tử gán Phải

13 , Dấu phẩy Trái

3. Các kiểu dữ liệu

Các kiểu biến.chuẩn

Type Bits Bytes Range

char 8 1 ‐128 to +127

unsigned char 8 1 0 to 255

enum 16 2 ‐32,768 to +32,767

short 16 2 ‐32,768 to +32,767

unsigned short 16 2 0 to 65,535

Lập trình C cho VXL - Cơ bản VAGAM - giotdang

int 16 2 ‐32,768 to +32,767

unsigned int 16 2 0 to 65,535

long 32 4

‐2,147,483,648 to

+2,147,483,647

unsigned long 32 4 0 to 4,294,697,295

Kiểu dữ liệu trong Keil C

Type Bits Bytes Range

bit 1 0 0 to 1

sbit 1 0 0 to 1

sfr 8 1 0 to 255

sf16 16 2 0 to 65,535

4. Cấu trúc cơ bản của 1 chương trình C

//Các chỉ thị tiền định

#include <lcd.h> //Gọi thư viện có sẵn cách viết khác "*.h"

#define led1 PORTA.0 //dùng định nghĩa các biến

char bien1,bien2; //cac bien can dung

int a,b;

void chuongtrinhcon(unsigned int b) // chuong trinh con

{



}

int ham(void) // chuong trinh con dang ham

{

….

Return(a);

}

void main(void) //chương trình chính

{

int a; // khai bao bien dang so nguyen

chuongtrinhcon();

a = ham();

}

Chương trình con là nơi các bạn viết các chương trình nhỏ , rất tiện cho các đoạn lệnh gặp lại nhiều

lần . Chương trình con có thể có thể gọi ở trong chương trình chính bất kì đâu .

Hàm là chương trình con trả vể cho mình một giá trị.

Cách sử dụng hàm và chương trình con các bạn nên tham khảo thêm quyển kĩ thuật lập trình C để

hiểu rõ hơn .

5. Các lệnh cơ bản của C

Cấu trúc điều kiện: if và else

->if (condition) statement

if (x == 100) x++;

nếu x=100 thì tăng x thêm 1

->if (condition) statement1 else statement2

if (x == 100) x++;

else x- -;

Các cấu trúc lặp

Vòng lặp while .

Dạng của nó như sau:

while (expression) statement

while(1) {};

Tạo vòng lặp mãi mãi , rất hay đùng trong lập trình VXL .Chương trình chính sẽ được viết trong dấu

ngoặc.

Vòng lặp do-while

Dạng thức:

do statement while (condition);

do

{

Lập trình C cho VXL - Cơ bản VAGAM - giotdang

x++; // cho nay cac ban co the viet nhieu cau lenh ,

}

while(x>10)

tăng giá trị của x cho đến khi x > 10

Chức năng của nó là hoàn toàn giống vòng lặp while chỉ trừ có một điều là điều kiện điều khiển vòng

lặp được tính toán sau khi statement được thực hiện, vì vậy statement sẽ được thực hiện ít nhất

một lần ngay cả khi condition không bao giờ được thoả mãn .Như vd trên kể cả x >10 thì nó vẫn

tăng giá trị 1 lần trước khi thoát

nếu x=100 thì tăng x thêm 1 còn không thì giảm x.

Vòng lặp for .

Dạng thức:

for (initialization; condition; increase) statement;

và chức năng chính của nó là lặp lại statement chừng nào condition còn mang giá trị đúng, như

trong vòng lặp while. Nhưng thêm vào đó, for cung cấp chỗ dành cho lệnh khởi tạo và lệnh

tăng. Vì vậy vòng lặp này được thiết kế đặc biệt lặp lại một hành động với một số lần xác định.

Cách thức hoạt động của nó như sau:

1, initialization được thực hiện. Nói chung nó đặt một giá khí ban đầu cho biến điều khiển. Lệnh

này được thực hiện chỉ một lần.

2, condition được kiểm tra, nếu nó là đúng vòng lặp tiếp tục còn nếu không vòng lặp kết thúc và

statement được bỏ qua.

3, statement được thực hiện. Nó có thể là một lệnh đơn hoặc là một khối lệnh được bao trong

một cặp ngoặc nhọn.

4, Cuối cùng, increase được thực hiện để tăng biến điều khiển và vòng lặp quay trở lại bước 2.

Phần khởi tạo và lệnh tăng không bắt buộc phải có. Chúng có thể được bỏ qua nhưng vẫn phải

có dấu chấm phẩy ngăn cách giữa các phần. Vì vậy, chúng ta có thể viết for (;n<10 hoặc for

(;n<10;n++).

Bằng cách sử dụng dấu phẩy, chúng ta có thể dùng nhiều lệnh trong bất kì trường nào trong

vòng for, như là trong phần khởi tạo. Ví dụ chúng ta có thể khởi tạo một lúc nhiều biến trong

vòng lặp:

for ( n=0, i=100 ; n!=i ; n++, i-- )

{

// cái gì ở đây cũng được...

}

Vi dụ điển hình nhất trong lập trình VXL

void delayms(int n)

{

int i,j; // khai bao bien chi trong chuong trinh con

for (i=0;i<n;i++)

for (j=0;j<1500;j++) { } // tham so j tuy thach anh toc do vxl ma cac

//ban thay doi cho phu hop

}

Các lệnh rẽ nhánh và lệnh nhảy

Lệnh break.

Sử dụng break chúng ta có thể thoát khỏi vòng lặp ngay cả khi điều kiện để nó kết thúc chưa được

thoả mãn. Lệnh này có thể được dùng để kết thúc một vòng lặp không xác định hay buộc nó phải

kết thúc giữa chừng thay vì kết thúc một cách bình thường. Ví dụ, chúng ta sẽ dừng việc đếm

ngược trước khi nó kết thúc:

Lệnh continue.

Lệnh continue làm cho chương trình bỏ qua phần còn lại của vòng lặp và nhảy sang lần lặp tiếp

theo. Ví dụ chúng ta sẽ bỏ qua số 5 trong phần đếm ngược:

Lệnh goto.

Lệnh này cho phép nhảy vô điều kiện tới bất kì điểm nào trong chương trình. Nói chung bạn nên

tránh dùng nó trong chương trình C++. Tuy nhiên chúng ta vẫn có một ví dụ dùng lệnh goto để đếm

ngược:

Hàm exit.

Mục đích của exit là kết thúc chương trình và trả về một mã xác định. Dạng thức của nó như sau

void exit (int exit code);

exit code được dùng bởi một số hệ điều hành hoặc có thể được dùng bởi các chương trình gọi.

Theo quy ước, mã trả về 0 có nghĩa là chương trình kết thúc bình thường còn các giá trị khác 0 có

nghĩa là có lỗi.

các lệnh trên mình chủ yếu chỉ dùng lệnh break để thoát khỏi vòng lặp . Các lệnh khác thường rất ít

dược sử dụng

Đây là 1 đoạn code nhỏ mình trích ra từ chương trình của mình

while(1)

{

lcd_gotoxy(5,0);lcd_putsf(" Run Thuan ");

thuan();

if(!enter) { lcd_clear();

lcd_putsf("DA DUNG ");

stop();break;}

}

Cấu trúc lựa chọn: switch.

Cú pháp của lệnh switch hơi đặc biệt một chút. Mục đích của nó là kiểm tra một vài giá trị hằng

cho một biểu thức, tương tự với những gì chúng ta làm ở đầu bài này khi liên kết một vài lệnh if

và else if với nhau. Dạng thức của nó như sau:

Code:

switch (expression) {

case constant1:

block of instructions 1

break;

case constant2:

block of instructions 2

break;

.

.

.

default:

default block of instructions

}

Nó hoạt động theo cách sau: switch tính biểu thức và kiểm tra xem nó có bằng constant1 hay

không, nếu đúng thì nó thực hiện block of instructions 1 cho đến khi tìm thấy từ khoá break, sau

đó nhảy đến phần cuối của cấu trúc lựa chọn switch.

Còn nếu không, switch sẽ kiểm tra xem biểu thức có bằng constant2 hay không. Nếu đúng nó

sẽ thực hiện block of instructions 2 cho đến khi tìm thấy từ khoá break.

Cuối cùng, nếu giá trị biểu thức không bằng bất kì hằng nào được chỉ định ở trên (bạn có thể

chỉ định bao nhiêu câu lệnh case tuỳ thích), chương trình sẽ thực hiện các lệnh trong phần

default: nếu nó tồn tại vì phần này không bắt buộc phải có.

nếu nút enter được bấm thì chương trình sẽ thoát ra khỏi vòng lặp while .

III. C cho 8051

1. Keil Variable Extensions

data địa chỉ trực tiếp MOV A, 07Fh

idata địa chỉ gián tiếp MOV R0, #080h

MOV A, R0

xdata bộ nhớ ngoài MOVX @DPTR

code bộ nhớ chương trình MOVC @A+DPTR

VD

unsigned int data bien = 0; // them data vao khai bao kieu bien

Chú ý rằng , bạn có thể không cần khai báo cụ thể , chỉ cần

unsigned int checksum = 0;

2. Địa chỉ ngắt

Interrupt

Vector

address

Interrupt

number

External 0 0003h 0

Lập trình C cho VXL - Cơ bản VAGAM - giotdang

Timer 0 000Bh 1

External 1 0013h 2

Timer 1 001Bh 3

Serial 0023h 4

org 00h

ljmp main

org 0003h

ljmp ngat0

org 30h

main: // chuong trinh chinh

...

Here: sjmp Here // vong lap vo tan

ngat0:

...

reti

code C

Code:

void main // chuong trinh chinh

{

...

while(1) //vong lap vo tan sau khi thuc hien xong cong viec

}

void ngat0(void) interrupt 0 // chuong trinh ngat

{

...

}

Echipkool - Điện Tử | Tin Học - Chia sẻ kiến thức - Kết nối đam mê điện tử

Đăng nhận xét

Author Name

{picture https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN0PUWA2genMqX3Sm26mBTX_30OJgDenoIi4K6BR-E1vl3nI7LALp0X759QZgzqrMcGBB7jEbdZnubJbp4n2ZZ22KT196CWCg9DLs3MfEivocdmkjZEPEn-A42hyphenhyphen9dmsca0VIDQr_LjqM/s512-Ic42/pham-van-ngoc-anh.jpg}

Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:

{facebook https://www.facebook.com/phamvanngocanh}
{twitter https://twitter.com/nghiphong1993}
{google https://plus.google.com/+dientuchiase/posts}
{youtube https://www.youtube.com/channel/UCeJKhA_goBNFmDw6RKNtmYQ}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.