Tìm Hiểu Về Kit Thực Hành Vi Điều Khiển Đa Năng Mmc - 100

51
Báo Cáo Thực Tập Tốt Nghiệp – Nguyễn Văn Tuấn Lớp CNVTK8A LỜI CẢM ƠN Em xin chân thành cảm ơn các thầy cô giáo trong trường Đạ Thông Tin Truyn Thông! Đại học Thái Nguy"n # ThS.Phạm Thành Nam !'ho( CNĐT ) TT #* t+n t,nh ch- %ảo và #.nh h 2m hoàn thành # tài này3 Cu4i c5ng6 2m xin chân thành cảm ơn gi( #,nh và %ạn %76 c thành vi"n 1h9ng th:c hành vi #iu ;hi<n và vi x= &>6 thầy gi Đinh Quý Long, Nguyễn Thế Dng #* &uôn tạo #iu ;iện thu+n &?i6 #@ng vi"n và g Bu4t thời gi(n học t+1 c8ng như trong uá tr,nh t,m hi<u và n Trng ! Thái Nguyên, tháng 3 năm 2014 "inh Vi#n th$c hiện Nguyễn Văn Tuấn

description

Đề tài tìm hiểu về MMC-100 và xây dựng các chương trình ứng dụng trên modul MMC-100

Transcript of Tìm Hiểu Về Kit Thực Hành Vi Điều Khiển Đa Năng Mmc - 100

Bo Co Thc Tp Tt Nghip Nguyn Vn Tun Lp CNVTK8ALI CM NEm xin chn thnh cm n cc thy c gio trong trng i hc Cng Ngh Thng Tin v Truyn Thng- i hc Thi Nguyn v c bit l thy gio ThS.Phm Thnh Nam-Khoa CNT & TT tn tnh ch bo v nh hng gip em hon thnh ti ny.Cui cng, em xin chn thnh cm n gia nh v bn b, cng nh cc thnh vin phng thc hnh vi iu khin v vi x l, thy gio inh Qu Long, Nguyn Th Dng lun to iu kin thun li, ng vin v gip em trong sut thi gian hc tp cng nh trong qu trnh tm hiu v nghin cu.

Thi Nguyn, thng 3 nm 2014Sinh Vin thc hinNguyn Vn Tun

MC LCLI CM N1MC LC2DANH SCH CC HNH V4DANH SCH CC BNG BIU5LI NI U6CHNG 1: TNG QUAN V 805171.1 Gii thiu chung71.2 S gii thut71.2.1 Gii thiu v h MSC-5181.2.2 S khi ca AT89S5281.2.3 S chn ca AT89S5291.2.4 Chc nng cc chn ca AT89S52101.2.5 S khi iu khin AT89S52 trn modul MMC-100131.3Gii thiu ngn ng C cho 8051131.3.1 Kiu d liu141.3.2 Mng161.3.3 Con tr171.3.4 Kiu d liu cu trc181.3.5 Php ton181.3.6 Cu trc chng trnh C211.3.7 Cc lnh c bn trong C24CHNG 2: TM HIU V KIT THC HNH VI IU KHIN A NNG MMC - 100272.1 Thach anh282.2 Tu gm282.3 Tm hiu IC ADC0804282.4 LCD 20x232CHNG 3: THC HNH CHUYN I ADC353.1 Mc ch353.2 Nguyn l chung353.3 Cc bc Thc hnh373.4 Kt qu thc hnh38KT LUN40PH LC41A Cc phn mm s dng.41B Chng trnh42TI LIU THAM KHO49NHN XT CA GING VIN50

DANH SCH CC HNH VHnh 1. 1 IC AT89S527Hnh 1. 2 S khi9Hnh 1. 3 S chn AT89S529Hnh 1. 4 Khi iu khin s dng vi iu khin AT89S5213

Hnh 2. 1 Kit Thc hnh vi iu khin a nng MMC-10027Hnh 2. 2 Thch anh28Hnh 2. 3 T gm28Hnh 2. 4 Hnh dng thc t ADC080429Hnh 2. 5 S chn ADC080429Hnh 2. 6 S ghp ni LCD 20x2 trn modul MMC-10032

Hnh 3. 1 S khi35Hnh 3. 2 S nguyn l b chuyn i ADC35Hnh 3. 3 Lu thut ton37Hnh 3. 4 S ni dy thc hnh chuyn i ADC.38Hnh 3. 5 Mt s kt qu thc hnh39

Ph Lc 1 Giao din ca Keil C41Ph Lc 2 Giao din ca trnh m phng Proteus42

DANH SCH CC BNG BIUBng 1. 1 Chc nng cc chn ca AT89S5210Bng 1. 2 Chc nng cc chn ca Port 311Bng 1. 3 Cc kiu d liu trong C14Bng 1. 4 Phn vng b nh15Bng 1. 5 Cc kiu d liu trong C16Bng 1. 6 Con tr trong C17Bng 1. 7 Cc php ton s hc18Bng 1. 8 Cc php ton logic19Bng 1. 9 Cc php ton so snh19Bng 1. 10 Php ton thao tc Bit20Bng 1. 11 Php ton kt hp20

Bng 2. 1 Quan h in p ca Vref/2 vi Vin31Bng 2. 2 Chc nng cc chn ca LCD 20x233Bng 2. 3 Mc logic ca cc chn d liu trn LCD34 Bng 3. 1 Mi quan h gia in p u vo v tn hiu u ra ca ADC080436

LI NI UNgy nay k thut vi iu khin tr nn quen thuc trong cc ngnh k thut v trong dn dng. Cc b vi iu khin c kh nng x l nhiu hot ng phc tp m ch cn mt chip vi mch nh, n thay th cc t iu khin ln v phc tp bng nhng mch in gn nh, d dng thao tc s dng.Vi iu khin khng nhng gp phn vo k thut iu khin m cn gp phn to ln vo vic pht trin thng tin. Chnh v cc l do trn, vic tm hiu, kho st vi iu khin l iu m cc sinh vin ngnh in T - Vin Thng phi ht sc quan tm. p ng nhu cu thc hnh ca sinh vin cc kha Khoa Cng Ngh in T v Truyn Thng lin tc mua sm cc trang thit b mi cho cc phng thc hnh. Vic tm hiu v cc modul thc hnh vit ti liu hng dn thc hnh nhm to iu kin cho sinh vin cc kha tip theo d dng tip cn v pht trin cc cng ngh hin i d dng hn.Xut pht t thc tin ny em i n quyt nh chn ti: Tm hiu, kho st, xy dng bi thc hnh chuyn i ADC trn modul MMC-100 vi 8051 nhm xy dng cc chng trnh ng dng trn modul MMC-100 v lm ti liu hng dn thc hnh cho cc sinh vin kha sau.Ni dung ti gm 3 chng:Chng 1: Tng quan v 8051.Chng 2: Tm hiu v kit thc hnh vi iu khin a nng MMC-100.Chng 3: Thc hnh chuyn i ADC.Trong qu trnh thc hin ti vn cn nhiu thiu st, mong nhn c nhiu kin ng gp t thy c v cc bn.

Em chn thnh cm n!Thi Nguyn, thng 3 nm 2014Sinh Vin thc hinNguyn Vn Tun

CHNG 1: TNG QUAN V 8051 chng ny tc gi gii thiu v h vi iu khin 8051, s cu trc, chc nng cc chn. Gii thiu v ngn ng lp trnh C cho h vi iu khin 8051.1.1 Gii thiu chung

Hnh 1. 1 IC AT89S52AT89S52 l phin bn 8051 c ROM trn chip l b nh Flash. Phin bn ny rt thch hp cho cc ng dng nhanh v b nh Flash c th c xa trong vi giy. D nhin l dng AT89S52 cn phi c thit b lp trnh PROM h tr b nh Flash nhng khng cn n thit b xa ROM v b nh Flash c xa bng thit b lp trnh PROM.1.2 S gii thutMc d cc thnh vin ca h 8051 u c cc kiu ng v khc nhau, chng hn nh hai hng chn DIP, dng v dp vung QFP, v dng chp khng c chn LLC th chng u c 40 chn cho cc chc nng khc nhau nh vo, ra I/O, c RD, ghi WR,a ch, d liu v ngt. Cn phi lu rng mt s hng cung cp mt phin bn 8051 c 20 chn vi s cng vo ra t hn cho cc ng dng yu cu thp hn. Tuy nhin v hu ht cc nh pht trin chnh s dng chp ng v 40 chn vi 2 hng chn DIP nn ta ch tp trung m t phin bn ny.1.2.1 Gii thiu v h MSC-51 MCS-51 l h IC vi iu khin do hng Intel sn xut. Cc IC tiu biu cho h l 8051 v 8031. Cc sn phm MSC-51 thch hp cho nhng ng dng iu khin. Vic x l trn Byte v cc ton s hc cu trc d liu nh c thc hin bng nhiu ch truy xut d liu nhanh trn RAM ni.AT89S52 cung cp nhng c tnh chun nh sau : 4 KB b nh ch c c th xa v lp trnh nhanh (EPROM), 128 Byte RAM, 32 ng I/O, 2 TIMER/COUNTER 16 Bit, vecto ngt c cu trc 2 mc ngt, 1 mch dao ng to xung Clock v dao ng ON-CHIP. Thm vo , AT89S52 c thit k vi logic tnh cho hot ng n mc khng tn s v h tr hai phn mm c th la chn nhng ch tit kin cng sut, ch ch (IDLE MODE) s dng CPU trong khi vn cho php RAM, timer/counter, port ni tip v h thng ngt tip tc hot ng. Ch gim cng sut s lu ni dung RAM nhng s treo b dao ng lm kh nng hot ng ca tt c nhng chc nng khc cho n khi Reset h thng. 1.2.2 S khi ca AT89S52

Hnh 1. 2 S khi1.2.3 S chn ca AT89S52

Hnh 1. 3 S chn AT89S521.2.4 Chc nng cc chn ca AT89S52AT89S52 c tt c 40 chn c chc nng nh cc ng xut nhp. trong c 24 chn c tc dng kp (c ngha 1 chn c 2 chc nng), mi dng c th hot ng nh ng xut nhp hoc nh ng iu khin hoc l thnh phn ca cc bus d liu v bus a ch.Bng 1. 1 Chc nng cc chn ca AT89S52

Cc port:Port 0: Port 0 l port c hai chc nng cc chn 32-39 ca AT89S52. trong cc thit k c nh khng dng b nh m rng, n c chc nng nh cc ng IO. i vi cc thit k c ln c b nh m rng, n c kt hp gia bus a ch v bus d liu.Port 1: Port 1 l port IO trn cc chn 1-8. cc chn c k hiu p1.0, p1.1, p1.2, c th dng cho giao tip vi cc thit b ngoi nu cn. port 1 khng c chc nng khc, v vy chng ch c dng cho giao tip vi cc thit b bn ngoi.Port 2: Port 2 l 1 port c tc dng kp trn cc chn 21-28 c dng nh cc ng xut nhp hoc l byte cao ca bus a ch i vi cc thit b dng b nh m rng.Port 3: Port 3 l port c tc dng kp trn cc chn 10-17. Cc chn ca port ny c nhiu chc nng, cc cng dng chuyn i c lin h vi cc c tnh c bit ca AT89S52 nh bng sau:Bng 1. 2 Chc nng cc chn ca Port 3BitTenChc nng chuyn i

P3.0RXTNg vo d liu ni tip

P3.1TXDNg ra d liu ni tip

P3.2INT0Ng vo ngt cng o

P3.3INT1Ng vo ngt cng 1

P3.4T0Ng vo Time/Counter th 0

P3.5T1Ng vo Time/Counter th

P3.6WRTn hiu ghi d liu ln b nh ngoi

P3.7RDTn hiu c d liu t bn ngoi

Cc ng tn hiu iu khin:Ng tn hiu PSEN:PSEN l tn hiu ng ra chn 29 c tc dng cho php c b nh chng trnh m rng thng c ni n chn OE ca Eprom cho php c cc byte m rng .PSEN mc thp trong thi gian Microcontroller AT89S52 ly lnh. Cc m lnh ca chng trnh c c t Eprom qua bus d liu v c cht t thanh ghi lnh bn trong AT89S52 gii m lnh. Khi AT89S52 thi hnh chng trnh trong ROM ni PSEN s mc logic1.Ng tn hiu iu khin ALE(Address latch Enable):Khi AT89S52 truy xut b nh bn ngoi, port 0 c chc nng l bus a ch v bus d liu do phi tch cc ng d liu v a ch. Tn hiu ra ALE chn th 30 dng lm tn hiu iu khin gii a hp cc ng a ch v d liu khi kt ni chng vi IC cht.Tn hiu ra chn ALE l mt xung trong khong thi gian port 0 ng vai tr l a ch thp nn cht a ch hon ton t ng.B dao ng c tch hp bn trong AT89S52, khi s dng AT89S52 ngi thit k ch cn kt ni thm thch anh v cc t nh hnh v trong s . Tn s thch anh thng s dng cho AT89S52 l 12Mhz.Chn 40 (vcc) c ni ln ngun.cc xung tn hiu ALE c tc bng 1/6 ln tn s dao ng trn chp v c th c dng lm tn hiu clock cho cc phn khc ca h thng. chn ALE c dng lm ng vo xung lp trnh cho Eprom trong AT89S52.Ng tn hiu EA\(External Access):Tn hiu vo EA\ chn 31 thng c mt ln mc 1 hoc mc 0. nu mc 1, AT89S52 thi hnh chng trnh t ROM ni trong khong a ch thp 8KB. Nu mc 0, AT89S52 s thi hnh chng trnh t b nh m rng. chn EA\ c ly lm chn cp ngun 21V khi lp trnh cho Eprom trong AT89S52.Ng tn hiu RST (Reset):Ng vo RST chn 9 l ng vo reset ca AT89S52. khi ng vo tn hiu ny a ln cao t nht l 2 chu k my, cc thanh ghi bn trong c np nhng gi tr thch hp khi ng h thng. khi cp in mch t ng Reset.1.2.5 S khi iu khin AT89S52 trn modul MMC-100

Hnh 1. 4 Khi iu khin s dng vi iu khin AT89S521.3Gii thiu ngn ng C cho 8051Trong k thut lp trnh vi iu khin ni chung, ngn ng lp trnh c s dng thng chia lm 2 loi: Ngn ng bc thp v Ngn ng bc cao.Ngn ng bc cao l cc ngn ng gn vi ngn ng con ngi hn, do vic lp trnh bng cc ngn ng ny tr nn d dng v n gin hn. C th k n mt s ngn ng lp trnh bc cao nh C, Basic, Pascal trong d C l ngn ng thng dng hn c trong k thut vi iu khin. V bn cht, s dng cc ngn ng ny thay cho ngn ng bc thp l gim ti cho lp trnh vin trong vic nghin cu cc tp lnh v xy dng cc cu trc gii thut. Chng trnh vit bng ngn ng bc cao cng s c mt phn mm trn my tnh gi l trnh bin dch (Compiler) chuyn sang dng hp ng trc khi chuyn sang m my.Khi s dng ngn ng C ngi lp trnh khng cn hiu su sc v cu trc ca b vi iu khin. C ngha l vi mt ngi cha quen vi mt vi iu khin cho trc s xy dng c chng trnh mt cch nhanh chng hn, do khng phi mt thi gian tm hiu kin trc ca vi iu khin . V vic s dng li cc chng trnh xy dng trc cng d dng hn, c th s dng ton b hoc sa cha mt phn.1.3.1 Kiu d liu Kiu d liu trong CBng 1. 3 Cc kiu d liu trong CKiuS ByteKhong gi tr

Char1-128 => +127

Unsigned char10 =>255

Int2-32768 => +32767

Unsigned int20 => 65535

Long4-2147483648 => +2147483647

Unsigned long40 => 4294967295

Float4

* Khai bo bin:C php:Kiu_d_liu Vng_nh Tn_bin _at_ ia_ch;V d: Unsigned char data x;Khi khai bo bin c th gn lun cho bin gi tr ban u.V d: Thay v: unsigned char x; x = 0; Ta ch cn: unsigned char x = 0;C th khai bo nhiu bin cng mt kiu mt lc.V d: Unsigned int x,y,z,t;Ch nh vng nh: t khoVng_nhcho php ngi dng c th ch ra vng nh s dng lu tr cc bin s dng trong chng trnh. Cc vng nh c th s dng l:CODE, DATA, DATAB, IDATA, PDATA, XDTA. Khi khng khai bo vng nh trnh dch Keil C s mc nh l vng nh DATA.Bng 1. 4 Phn vng b nhVng nh ngha

CODEB nh m ngun chng trnh

DATAB nh d liu gm 128 Byte thp ca RAM trong vi iu khin

BDATAB nh d liu c th nh a ch bit, nm trong vng nh DATA

IDATAB nh d liu gm 128 Byte cao ca RAM trong vi iu khin ch c mt s dng vi iu khin sau ny

PDATAB nh d liu ngoi gm 256 Byte, c truy cp bi a ch t trn P0

XDATAB nh d liu ngoi c dung lng c th ln n 64 KB, c truy cp bi a ch t trn P0 v P2

* nh ngha li kiuC php:Typedef Kiu_d_liu Tn_bin;Tn_binsau ny s c s dng nh mt kiu d liu mi v c th dng khai bo cc bin khc.V d:Typedef int m5[5];Dng tn m5 khai bo hai bin tn a v b c kiu d liu l mng 1 chiu 5 phn t: m5 a,b; Kiu d liu trong Keil CBng 1. 5 Cc kiu d liu trong CKiuS bit

Bit1

Sbit1

Sfr8

Sfr1616

bit: dng khai bo cc bin c gi tr 0 hoc mt hay cc bin logic trn vng RAM ca vi iu khin. Khi khai bo bin kiu bit trnh dc Keil C s mc nh vng nh s dng l BDATA.sbit,sfr,sfr16: dng nh ngha cc cho cc thanh ghi chc nng hoc cc cng trn vi iu khin dng truy nhp cc on d liu 1 bit, 8 bit, 16 bit.1.3.2 MngMng l mt tp hp nhiu phn t cng mt kiu gi tr v chung mt tn. Cc phn t ca mng phn bit vi nhau bi ch s hay s th t ca phn t trong dy phn t. Mi phn t c vai tr nh mt bin v lu tr c mt gi tr c lp vi cc phn t khc ca mng.Mng c th l mng mt chiu hoc mng nhiu chiu.Khai bo:C php:Tn_kiu Vng_nh Tn_mng[s_phn_t_mng]; Khi b trng s phn t mng ta s c mng c s phn t bt k.V d: Unsigned int data a[5],b[2] [3];Vi khai bo trn ta s c: mng a l mng mt chiu 5 phn t. Mng b l mng hai chiu, tng s phn t l 6.Ch s ca mng bt u t s 0. Mng c bao nhiu chiu phi cung cp y by nhiu ch s. V du: Phn t mng 2 chiu:b[0] [1]l ngKhi vit: b[0]l sai1.3.3 Con trKhi ta khai bo mt bin, bin s c cp pht mt khong nh bao gm mt s byte nht nh dng lu tr gi tr. a ch u tin ca khong nh chnh l a ch ca bin c khai bo.Con tr l mt bin dng cha a ch m khng cha gi tr, hay gi tr ca con tr chnh l a ch khong nh m n tr ti.Vi cc vng nh c th con tr ti vng nh chim dung lng ph thuc vo ln ca vng nh . Con tr tng qut khi khng xc nh trc vng nh s c dung lng ln nht v vy tt nht nn s dng con tr c th.Bng 1. 6 Con tr trong CLoi con trKch thc

Con tr tng qut3 byte

Con tr XDATA2 byte

Con tr CODE2 byte

Con tr DATA1 byte

Con tr IDATA1 byte

Con tr PDATA1 byte

Khai bo bin con tr:C php:Kiu_D_liu Vng_nh *Tn_bin;V d: int *int_ptr; long data *long_ptr;Khi khng ch r vng nh con tr s c coi l con tr tng qut.1.3.4 Kiu d liu cu trcKiu d liu cu trc l mt tp hp cc bin, cc mng v c cc kiu cu trc khc c biu th bi mt tn duy nht. kiu d liu cu trc dng lu tr cc gi tr, thng tin c lin quan n nhau.nh ngha v khai bo bin cu trc:nh ngha: Typedef struct { Khai bo cc bin thnh phn; } Tn_kiu_cu_trc;Khai bo:Tn_kiu_cu_trc Vng_nh Tn_bin;V d: Typedef struct {char day;char month;int year; } Date_type;Date_type date,date_arr[5];

1.3.5 Php ton Php gn k hiu:=.- C php:Bin_1 = Bin_2; Trong Bin_2c th lgi tr xc nhcng c th lbin.Php ton s hcBng 1. 7 Cc php ton s hcPhp ton nghaV d

+Php cngX = a+b;

-Php trX = a-b;

*Php nhnX = a*b;

/Php chia ly phn nguynX = a/b;(a=9, b=2 X=4)

%Php chia ly phn dX = a%b;(a=9, b=2 X=1)

Php ton LogicBng 1. 8 Cc php ton logicChc nngPhp ton

AND&&

OR||

NOT!

Cc php ton so snhBng 1. 9 Cc php ton so snhPhp ton nghaV d

>So snh ln hna>b4>5 s tr ra gi tr 0

>=So snh ln hn hoc bnga>=b6>=2 s tr ra gi tr 1

d liu li ra tng. khi Vin = 4.98V d liu li ra t gi tr cc i l 255.Khi Vin gim => d liu li ra gim.Khi Vin =0V d liu li ra =0.

Hnh 3. 5 Mt s kt qu thc hnhKT LUNTm hiu v Kit thc hnh MMC-100 l vn cn thit nhm xy dng ti liu hng dn thc hnh v mt s chng trnh mu lm gio trnh cho vic ging dy hng dn thwucj hnh cho sinh vin cc kha hc tip theo. Vi ti: Tm hiu, kho st, xy dng bi thc hnh chuyn i ADC trn modul MMC-100 vi 8051 tc gi tp trung nghin cu v trnh by v cc vn sau: Nghin cu v IC AT89S52. Nghin cu v Kit thc hnh MMC100, b chuyn i ADC0804. Xy dng chng trnh, m phng, thc hnh chuyn i ADC trn Kit thc hnh MMC-100, Xy dng cc bc thc hnh.Ni dung trnh by trong bo co ny l ti liu hng dn thc hnh trn modul MMC-100 cho cc sinh vin kha tip theo nhm gip cc em nhanh chng nm bt c cc k thut v cng ngh c s dng v pht trin xy dng cc modul thc hin c cc chc nng khc.

PH LCA Cc phn mm s dng. Trnh son tho Keil CLink download: http://www.keil.com/c51/a51kit.asp

Ph Lc 1 Giao din ca Keil C Trnh m phng: ProteusLink Download: http://diendanbaclieu.net/diendan/showthread.php?32987-Download-Proteus-7-10-full-Crack-SP2

Ph Lc 2 Giao din ca trnh m phng ProteusB Chng trnhFile mail.c#include #define F_CPU(7372800UL / 12)#include #include "delay.h"#include "lcd.h"#define _200ms(F_CPU / 12 * 0.2)

void main(void){char buffer[20]; // Port initializationP1 = 0xff; P2 = 0xff; lcd_init(20);

while(1){sprintf(buffer, "TUAN-ADC-P1: %u ", (unsigned int)P2);lcd_gotoxy(0, 0);lcd_putstring(buffer);delay_loop(_200ms); }}

File LCD.h#ifndef _LCD_INCLUDED_#define _LCD_INCLUDED_#define _1ms(F_CPU / 12 / 12 * 0.001)#define _5ms(F_CPU / 12 / 12 * 0.005)#define _100ms(F_CPU / 12 / 12 * 0.1)#define RS P1_4#define RW P1_5#define E P1_6#define DB4 P1_0#define DB5 P1_1#define DB6 P1_2#define DB7 P1_3#define BLP1_7static unsigned char lcd_x = 0, lcd_y = 0, lcd_max = 0;//Set E on and off for sending Datavoid lcd_e(void){ E = 1; delay_loop(_1ms); E = 0;}// Write two 4 bitvoid write2nib(unsigned char chr){ // Write high byteDB4 = ((chr & 0x10) >> 0x04);DB5 = ((chr & 0x20) >> 0x05);DB6 = ((chr & 0x40) >> 0x06);DB7 = ((chr & 0x80) >> 0x07); lcd_e(); // Write low byteDB4 = ((chr & 0x01) >> 0x00);DB5 = ((chr & 0x02) >> 0x01);DB6 = ((chr & 0x04) >> 0x02);DB7 = ((chr & 0x08) >> 0x03); lcd_e();}// Write command to lcdvoid lcd_write_cmd(unsigned char cmd){ delay_loop(_5ms);// Set RS and RW low for writing commandRS = 0;RW = 0; write2nib(cmd);}

// Set the LCD display position x = 0..39; y = 0..2void lcd_gotoxy(unsigned char x, unsigned char y){ lcd_write_cmd(0x80 | (x + (y * 64))); lcd_x = x; lcd_y = y;}// Write Data to lcdvoid lcd_putchar(unsigned char Data){ delay_loop(_5ms);// Set RS high and RW low for writing DataRS = 1;RW = 0; write2nib(Data); lcd_x++; if (lcd_x >= lcd_max){ lcd_y++; lcd_gotoxy(0, lcd_y); }}// Write string to lcdvoid lcd_putstring(unsigned char *str){ while(*str){lcd_putchar(*str++);}}// Lcd initialize writevoid lcd_init_write(unsigned char cmd){// Set RS and RW low for writing commandRS = 0;RW = 0; // Write low byteDB4 = ((cmd & 0x01) >> 0x00);DB5 = ((cmd & 0x02) >> 0x01);DB6 = ((cmd & 0x04) >> 0x02);DB7 = ((cmd & 0x08) >> 0x03); lcd_e();}// Lcd initializevoid lcd_init(unsigned char column){ // Function set (Interface is 8 bits long.) delay_loop(_100ms);BL = 1; lcd_init_write(0x03); delay_loop(_5ms); lcd_init_write(0x03); delay_loop(_1ms); lcd_init_write(0x03); delay_loop(_1ms);

// Function set (Set interface to be 4 bits long.) lcd_write_cmd(0x02); // Enable 4 bit operation lcd_write_cmd(0x28); // Function set 4 bit mode and 2 line lcd_write_cmd(0x0c); // Display on, cursor off, blink off lcd_write_cmd(0x06); // Entry mode, set increment lcd_write_cmd(0x80); // Address TRISAM with 0 offset 80h.

// Set Columnlcd_max = column;}#if 0// LCD clearvoid lcd_clear(void){ lcd_write_cmd(0x01); lcd_x = 0; lcd_y = 0; delay_loop(_5ms);}#endif#endif

File delay.h#ifndef __DELAY_H__#define __DELAY_H__// one loop takes 12 instructionsvoid delay_loop(unsigned int num){unsigned int i;for (i = 0; i < num; i++);}#endif

File stdio.h#ifndef __STDIO_H__#define __STDIO_H__

#ifndef EOF #define EOF -1#endif#ifndef NULL #define NULL ((void *) 0)#endif#ifndef _SIZE_T #define _SIZE_T typedef unsigned int size_t;#endif#pragma SAVE#pragma REGPARMSextern char _getkey (void);extern char getchar (void);extern char ungetchar (char);extern char putchar (char);extern int printf (const char *, ...);extern int sprintf (char *, const char *, ...);extern int vprintf (const char *, char *);extern int vsprintf (char *, const char *, char *);extern char *gets (char *, int n);extern int scanf (const char *, ...);extern int sscanf (char *, const char *, ...);extern int puts (const char *);#pragma RESTORE#endif

TI LIU THAM KHO[1] Ti liu hng dn thc tp vi x l v vi iu khin, Khoa Cng Ngh in T v Truyn Thng, i hc Cng Ngh Thng Tin v Truyn Thng Thi Nguyn.[2] Nguyn Mnh Giang, Cu trc - lp trinh - ghp ni v ng dng vi iu khin tp 2 Ghp ni v ng dng vi iu khin 8051/8052, Nh xut bn Gio Dc.[3] http://machdientu.net/dien-tu-co-ban/tim-hieu-ic-adc0804.htm[4] http://www.youtube.com/watch?v=5S5xSyw0uTI[5] http://www.vnmedian.com/2013/12/bai-2-huong-dan-su-dung-keil-c-lap.html

NHN XT CA GING VINTrang 2