Top Banner

of 41

Thiết Kế Máy Tính Bỏ Túi Dùng Vi Điều Khiển AT89C51

Jun 02, 2018

Download

Documents

thaingochieu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    1/41

    Trang chTh vin ringTi liu ng lnTi liu xemTi khonTr gip

    Tt cBiu mu - Vn bnCng Ngh Thng TinGii Tr - Th GinGio Dc - o ToK ton

    Khoa Hc T NhinKhoa Hc X HiKinh Doanh - Tip ThKinh T - Qun LK Nng MmK Thut - Cng NghLun vnNgoi NgNng - Lm - NgTi Chnh - Ngn HngTh loi khcVn Bn LutVn Ho - Ngh ThutVn hcY T - Sc Kho

    kiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieukiem tai lieu

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    2/41

    TRNG I HC BCH KHOA H NIVIN IN N 1 tiThit k my tnh b ti s dng vi x l 89C51GVHD : Thy Nguyn Tun NinhSVTH : Nguyn Cao Nguyn 20101947

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    3/41

    Nguyn Danh Tn 20102128Lu Nh Tnh 20102321Ng nh V 201025771

    Li ni uNgy nay cng vi s tin b ca khoa hc k thut, c bit l ngnh vi iu khin.i sng x hi ngy cng pht trin cao da trn nhng ng dng ca khoa hc vo isng. V vy m nhng cng ngh in t mang tnh t ng ngy cng c ng dngrng ri. Trong s c s ng gp khng nh ca k thut vi iu khin. Cc b viiu khin ang c ng dng rng ri v thm nhp ngy cng nhiu trong cc lnhvc k thut v i sng x hi. Hu ht l cc thit b c iu khin t ng t cc

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    4/41

    thit b vn phng cho n cc thit b trong gia nh u dung cc b vi iu khin nhmem li s tin nghi cho con ngi trong thi i cng nghip ha, hin i ha.Ngoi ra cng vi s pht trin ca cc ngnh kinh t, gio dc, y hc, lm tng slng cng vic tnh ton v x l s liu v phi tip cn nhng con s ln v l mkhng th tnh ton bng tay c. Chnh v vy chng em la chn ti cho n 1 l: Thit k my tnh b ti s dng vi x l 89C51 ny.Tuy c gng thc hin n trong s nghim tc v trch nhim nht, nhng do khnng nghin cu cng nh kin thc cc thnh vin cn nhiu hn ch nn khng thtrnh khi nhng li v thiu st. Rt mong nhn c nhng kin ng gp tch cc tthy Nguyn Tun Ninh !2

    MC LCTrangTrang ba .1Li ni u ..2Phn 1: GII THIU ..4Phn 2 : C S L THUYT5I Cc linh kin s dng trong mch ...5

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    5/41

    ang ti xung...ang ti xung...ang ti xung...

    II c im, cu to, chc nng ca cc linh kin ....5Phn 3 : THIT K V M PHNG .....21I S khi ..21II M phng ..22III Code chng trnh ...23Phn 4 : KT QU V HNG PHT TRIN ...39Cc ti liu tham kho .403

    Phn IGII THIUI. Mc tiu ti- Nng cao hiu qu tnh ton s liu- Tng tc tnh ton v x l s liu- Thy c tm quan trong ca vic ng dng vi iu khin vo cc lnh vckhc nhau trong cuc sng

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    6/41

    4

    89C51 c tt c 40 chn c chc nng nh cc ng xut nhp. Trong c 24 chnc tc dng kp (c ngha 1 chn c 2 chc nng), mi ng c th hot ng nhng xut nhp hoc nh ng iu khin hoc l thnh phn ca cc bus d liu vbus a ch.8

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    7/41

    1. GND ( chn 20) : chn ni t 0V.2. Port 0 l port c 2 chc nng cc chn 32 39 ca 8951. Trong cc thit k cnh khng dng b nh m rng n c chc nng nh cc ng IO. i vi ccthit k c ln c b nh m rng, n c kt hp gia bus a chv busdliu..3. Port 1 l port IO trn cc chn 1-8. Cc chn c k hiu P1.0, P1.1, P1.2, cth dng cho giao tip vi cc thit b ngoi nu cn. Port 1 khng c chc nng

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    8/41

    khc, v vy chng ch c dng cho giao tip vi cc thit b bn ngoi.4. Port 2 l 1 port c tc dng kp trn cc chn 21 - 28 c dng nh cc ngxut nhp hoc l byte cao ca bus a ch i vi cc thit b dng b nh mrng.5. Port 3 l port c tc dng kp trn cc chn 10 - 17. Cc chn ca port ny cnhiu chc nng, cc cng dng chuyn i c lin h vi cc c tnh c bitca 8951 nh bng sau:Bit Tn Chc nng chuyn iP 3.0P 3.1P 3.2P 3.3RxDTxDINT0Ng vo d liu ni tipNg xut d liu ni tipNg vo ngt cng th 09

    P 3.4P 3.5P 3.6P 3.7INT1TOT1

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    9/41

    ang ti xung...ang ti xung...ang ti xung...ang ti xung...

    WRRDNg vo ngt cng th 1Ng vo ca TIMER/COUNTER th 0Ng vo ca TIMER/COUNTER th 1Tn hiu ghi d liu ln b nh ngoiTn hiu c b nh d liu ngoi6. PSEN ( Program store enable ): PSEN l tn hiu ng ra chn 29 c tc dng chophp c b nh chng trnh m rng thng c ni n chn 0E\ (ou tputenable) ca Eprom cho php c cc byte m lnh. PSEN mc thp trong thigian Microcontroller 8951 ly lnh. Cc m lnh ca chng trnh c c tEprom qua bus d liu v c cht vo thanh ghi lnh bn trong 8951 gii mlnh. Khi 8951 thi hnh chng trnh trong ROM ni PSEN s mc logic 1.7. ALE ( Address latch enable ) : Khi 8951 truy xut b nh bn ngoi, port 0 cchc nng l bus a ch v bus d liu do phi tch cc ng d liu v ach. Tn hiu ra ALE chn th 30 dng lm tn hiu iu khin gii a hp ccng a chv d liu khi kt ni chng vi IC cht. Tn hiu ra chn ALE lmt xung trong khong thi gian port 0 ng vai tr l a ch thp nn cht ach hon ton t ng. Cc xung tn hiu ALE c tc bng 1/6 ln tn s daong trn chip v c th c dng lm tn hiu clock cho cc phn khc ca hthng. Chn ALE c dng lm ng vo xung lp trnh cho Eprom trong 8951.10

    8. EA ( External access) : Tn hiu vo EA\ chn 31 thng c mc ln mc 1hoc mc 0. Nu mc 1, 8951 thi hnh chng trnh t ROM ni trong khonga ch thp 8 Kbyte. Nu mc 0, 8951 s thi hnh chng trnh t b nh mrng. Chn EA c ly lm chn cp ngun 21V khi lp trnh cho Eprom trong8951.9. RST ( Reset ) : Ng vo RST chn 9 l ng vo Reset ca 8951. Khi ng vo tnhiu ny a ln cao t nht l 2 chu k my, cc thanh ghi bn trong c np

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    1 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    10/41

    nhng gi tr thch hp khi ng h thng. Khi cp in mch t ng Reset.10. X1, X2 : B dao ng c tch hp bn trong 8951, khi s dng 8951 ngithit k ch cn kt ni thm thch anh v cc t nh hnh v trong s . Tn sthch anh thng s dng cho 8951 l 12Mhz.11. Vcc : chn ngun ni ln 5V .b. T chc b nhB nh bn trong chip bao gm ROM, RAM v EPROM. RAM trn chip baogm vng RAM a chc nng, vng RAM vi tng bit c nh a ch, cc dythanh ghi (bank) v cc thanh ghi chc nng c bit. C 2 c tnh ng lu :+ Cc thanh ghi v cc port I/O c nh a ch theo kiu nh x b nh v ctruy xut nh mt v tr nh trong b nh.+ Vng track thng ch trong RAM trn chip thay v trong RAM ngoi nh11

    vi VCC=5V ca mch iu khin3 VEE iu chnh tng phn ca LCD.4 RSChn chn thanh ghi (Register select). Ni chn RS vi logic0 (GND) hoc logic 1 (VCC) chn thanh ghi.+ Logic 0: Bus DB0-DB7 s ni vi thanh ghi lnh IR caLCD ( ch ghi - write) hoc ni vi b m a ch ca

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    11/41

    LCD ( ch c - read)+ Logic 1: Bus DB0-DB7 s ni vi thanh ghi d liu DRbn trong LCD.5 R/WChn chn ch c/ghi (Read/Write). Ni chn R/W vilogic 0 LCD hot ng ch ghi, hoc ni vi logic1 LCD ch c.6 EChn cho php (Enable). Sau khi cc tn hiu c t ln busDB0-DB7, cc lnh ch c chp nhn khi c 1 xung chophp ca chn E.+ ch ghi: D liu bus s c LCD chuyn vo(chpnhn) thanh ghi bn trong n khi pht hin mt xung (high-to-low transition) ca tn hiu chn E.+ ch c: D liu s c LCD xut ra DB0-DB7 khipht hin cnh ln (low-to-high transition) chn E v cLCD gi bus n khi no chn E xung mc thp.7 - 14 DB0 -DB7Tm ng ca bus d liu dng trao i thng tin viMPU. C 2 ch s dng 8 ng bus ny :16

    + Ch 8 bit : D liu c truyn trn c 8 ng, vi bitMSB l bit DB7.+ Ch 4 bit : D liu c truyn trn 4 ng t DB4 tiDB7, bit MSB l DB715 ANgun dng cho n nn16 K

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    12/41

    GND cho n nn17

    Bng 1 : Chc nng cc chn ca LCDCh : Chn 15 v chn 16: ghi l A v K. N l anot v katot ca mt conled dng sng LCD trong bng ti, chng ta c th k ni , nu s dng ni chn15 vi tr 220 or 330 m ln VCC , chn 16 ni t.b. Cc thnh phn chc nng- C Busy (BF - Busy flag): Nu BF = 1, LCD ang trong qu trnh thc thi mtlnh. Khi , cc lnh gi tip theo s b b qua. BF c c ti chn D7 khi RS

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    13/41

    = 0 v R/W = 1. Do , trc khi thc hin mt lnh, cn kim tra BF trc, nuBF = 0 th mi gi lnh.DD- Vng RAM hin th DDRAM : (Display Data RAM)y l vng RAM dng hin th, ngha l ng vi mt a ch ca RAMl mt k t trn mn hnh v khi bn ghi vo vng RAM ny mt m 8 bit, LCD18

    s hin th ti v tr tng ng trn mn hnh mt k t c m 8 bit m bn cungcp. Hnh sau y s trnh by r hn mi lin h ny :Hnh 4 : Mi lin h gia a ch ca DDRAM v v tr hin th ca LCDVng RAM ny c 80x8 bit nh, ngha l cha c 80 k t m 8bit.Nhng vng RAM cn li khng dng cho hin th c th dng nh vng RAMa mc ch.Lu l truy cp vo DDRAM, ta phi cung cp a ch cho AC theo m HEX

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    14/41

    - B m a ch AC : (Address Counter)Sau khi ghi vo (c t) RAM, b m AC t ng tng ln (gim i) 1 nv v ni dung ca AC c xut ra cho MPU thng qua DB0-DB6 khi c thit lpRS=0 v R/W=1 (xem bng tm tt RS - R/W).Lu : Thi gian cp nht AC khng c tnh vo thi gian thc thi lnh m ccp nht sau khi c BF ln mc cao (not busy), cho nn khi lp trnh hin th, bnphi delay mt khong tADD khong 4uS-5uS (ngay sau khi BF=1) trc khi np19

    d liu mi.Hnh 4 : Gin xung cp nht AC- CGROM (Character Genaration ROM):Cha cc m hnh k t s hin th trn LCD, bao gm 192 k t 5x7 theobng m ASCII (ngha l khi DDRAM cha gi tr 41H tng ng vi m ASCIIca k t 'A' th trn LCD s hin 'A'), trong d ch c cc m t 00H-0Fh skhng ly theo m ASCII m ly theo cc k t nh ngha trong CGRAM.

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    15/41

    - Vng RAM cha k t ha CGRAM : (Character Generator RAM)Nh trn bng m k t, nh sn xut dnh vng c a ch byte cao l 0000 ngi dng c th to cc mu k t ha ring. Tuy nhin dung lng vng nyrt hn ch: Ta ch c th to 8 k t loi 5x8 im nh, hoc 4 k t loi 5x10 imnh.- Cc ch truyn d liu:LCD 16x2 c 2 ch truyn d liu : ch 8 bit ( dng c D0-D7 ) v ch 4bit ( khng dng D3 - D0, ch dng D7-D4 ). Trong trng hp dng ch 4 bit,d liu 8 bit s c truyn 2 ln: truyn 4 bit cao ri tip tc truyn 4 bit thp. Saukhi thc hin truyn xong 8bit, BF mi chuyn ln 1.20

    - Bng m lnh trong LCD 162 :21

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    16/41

    3. Bn phm keypad small calculatorHnh 4: C cu bn phm keypad small calculator4.Cc linh kin khc- Mch to dao ng thch anh 12MHz:22

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    17/41

    Cp ngun 5V cho vi iu khin (Vcc: 5V chn 40; GND: 0V chn 20). Trong C1,C2= 30pF10pF (thng c s dng vi C1,C2 l t 33pF) dng n nhdao ng cho thch anh.Phn 3:THIT K V M PHNGI. S KHI23

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    18/41

    II. MCH M PHNG- y l mch m phng nguyn l cu to my tnh b ti s dng chip AT89C51,bn phm v LCD16x2 trn phn mm Proteus 7.824

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    19/41

    III. CODE CHNG TRNH25

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    20/41

    1. Cc th vin s dng trong chng trnha. Th vin LCD 16x2 ch 8 bit/*==================Thu vien LCD16x2==============================- Cac chan:+ Vss : Mass+ Vcc : Nguon 5V+ Vee : Cap nguon dieu khien tuong phan

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    21/41

    + RS : Chon thanh ghi(register select).1- thanh ghi data0- Thanh ghi lenh+ RW : read/write(1/0)+ EN : Cho phep(enable)- Ma lenh LCD:+ 01h Xoa man hinh hien thi+ 02h Tro ve dau dong+ 04h Giam con tro(dich con tro sang trai)+ 06h Tang con tro(dich con tro sang phai)+ 05h Dich hien thi sang phai+ 07h Dich hien thi sang trai26

    + 08h Tat con tro, tat hien thi+ 0ah Tat hien thi, bat con tro+ 0ch Bat hien thi, tat con tro+ 0eh Bat hien thi, nhap nhay con tro+ 0fh Tat con tro, nhap nhay con tro+ 10h Dich vi tri con tro sang trai+ 14h Dich vi tri con tro sang phai

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    22/41

    + 18h Dich toan bo hien thi sang trai+ 1ch Dich toan bo hien thi sang phai+ 80h Ep con tro ve dau dong thu nhat+ 0c0 Ep con tro ve dau dong thu 2+ 38h Hai dong va ma tran 5x7==============================================================*///==================== Main library =================================#ifndef __LCD_16x2__//===============Khai bao bien=====================================sfr LCD_data = 0xA0;sbit RS = P3^0 ;27

    sbit RW = P3^1 ;sbit EN = P3^2 ;//=================== DELAY ==================void delay_LCD(unsigned int time){while(time--);}

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    23/41

    //================ Write command =================================void write_command(unsigned char str){RW = 0 ; //Chon writeRS = 0 ; //Chon thanh ghi lenhLCD_data = str; //Gui lenhEN = 0 ; //Tao xung canh len(enable)EN = 1 ;EN = 0 ;delay_LCD(5000); //wait busy LCD}28

    //================= Write data 1char ===============================void write_data(unsigned char str){RW = 0 ; //Chon writeRS = 1 ; //Chon thanh ghi dataLCD_data = str; //Gui lenhEN = 0 ; //Tao xung canh len(enable)

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    24/41

    Thit k my tnh b ti dng vi iu khin AT89C51 - Trang 30

    EN = 1 ;EN = 0 ;delay_LCD(5000); //wait busy LCD}//================= Khoi tao LCD ==================================void LCD_khoitao(void){write_command(0x38); //2 dong va font 5x7write_command(0x0e); // bat man hinh va con trowrite_command(0x01); // xoa man hinh}29

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    25/41

    #endifb. Qut bn phm/*==============================================================GIAO TIEP PHIM BAM CACULATOR(4x4)-Phuong phap : Quet phim-Nam : Scan_keypad.h==============================================================*/#ifndef __SCAN_KEYPAD_SMALL_H__#define __SCAN_KEYPAD_SMALL_H__//============ Bien toan cuc ======================================sfr keypad = 0x90 ; //Port 1sbit H1 = 0x90 ; //Hang1sbit H2 = 0x91 ; //Hang2sbit H3 = 0x92 ; //Hang3sbit H4 = 0x93 ; //Hang4sbit C1 = 0x94 ; //Cot 1sbit C2 = 0x95 ; //Cot 2sbit C3 = 0x96 ; //Cot 3sbit C4 = 0x97 ; //Cot 430

    unsigned int phim_bam = 0 ;//============= Main =============================================void delay_keypad ( unsigned int time ){while( time -- );}int scan_keypad ( void )

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    26/41

    {phim_bam = 0 ;keypad = 0xf0 ; //Quet cotwhile(keypad == 0xf0) ; //wait phim bamdelay_keypad ( 1000 ); //Chong nay phimif( C1 == 0 ) phim_bam = 0 ;if( C2 == 0 ) phim_bam = 1 ;if( C3 == 0 ) phim_bam = 2 ;if( C4 == 0 ) phim_bam = 3 ;keypad = 0xff; //Xoa port trc khi quetkeypad = 0x0f; //Quet hang31

    if( H1 == 0 ) phim_bam += 0 ;if( H2 == 0 ) phim_bam += 4 ;if( H3 == 0 ) phim_bam += 8 ;if( H4 == 0 ) phim_bam += 12 ;while ( keypad != 0x0f ) ; //wait nha phim bamswitch ( phim_bam ){

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    27/41

    case 0 : return '7';case 1 : return '8';case 2 : return '9';case 3 : return ':';case 4 : return '4';case 5 : return '5';case 6 : return '6';case 7 : return 'x';case 8 : return '1';case 9 : return '2';case 10: return '3';case 11: return '-';case 12: return ' ';32

    case 13: return '0';case 14: return '=';case 15: return '+';}}#endifc. Chng trnh chnh

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    28/41

    /*=============================================================PROGRAM CACULATOR SMALL- Muc dich : Thiet ke may tinh cam tay thuc hien duoc cac phep tinh co ban+ Cong+ Tru+ Nhan+ Chia- Su dung ban phim voi 16 phim(4x4)- Hien thi tren man hinh LCD 16x2==============================================================*///Khai bao tien xu ly#include 33

    #include #include "LCD16x2_8bit.h"#include "Scan_keypad_small.h"//============ CHUONG TRINH CON ===============//=======Chuyen 1 xau so o dang asscii sang hex ========long ASSCII_DEC(unsigned char *str, unsigned char do_dai){

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    29/41

    unsigned char i = 0 ,j = 0 ;long temp = 0 , kq = 0; //ket quafor( i = 0 ; i < ( do_dai ) ; i ++ ){temp = (str [ i ] - 0x30) ; //Chuyen asscii ->hexfor ( j = 0 ; j < ( do_dai - i -1 ) ; j ++ ){temp *= 10 ;}kq += temp ;}return kq;34

    }//======== Chuyen so hex -> asscii ====================================char* DEC_ASSCII ( long number , unsigned char do_dai ) //so can chuyen va so chu so{unsigned char str[10] = "" ; //ket quaunsigned int i = 0 , temp = 0, kiem_tra=0;for ( i = 0 ; i < do_dai ; i ++ )

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    30/41

    {temp = number % 10 ; //Lay phan dunumber /= 10 ;str [ do_dai - i - 1 ] = temp + 0x30 ;}return &str [ 0 ] ;}//============== Thuc hien cac phep toan ==================long result_math ( long number_1 , long number_2 , unsigned char phep_toan )//phep toan : +,-,*,/{35

    long kq = 0 ;if ( phep_toan == '+' ) return number_1 + number_2 ; //Phep congif ( phep_toan == '-' )if( number_1 > number_2 ) return number_1 - number_2 ; // Phep truelse return number_2 - number_1 ;if ( phep_toan == 'x' ) return number_1 * number_2 ; // Phep nhanif ( phep_toan == ':' ) return (number_1 *1000)/number_2 ; //Phep chia

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    31/41

    }//================== MAIN PROGRAM =================void main(){//Khai bao bienunsigned char str [] = "Nhom_2" ;unsigned char str_loi[] = "Loi Nhap" ;unsigned char i = 0 , temp = 0 ;unsigned char str_1 [ 10 ] = "" ; //Number 1 dang assciiunsigned char str_2 [ 10 ] = "" ; // Number 2 dang assciiunsigned char *kq_c; //Ket qua kieu charunsigned char phep_toan; //Phep toan +,-,x,/unsigned char xoa_man_hinh = 1 ;36

    unsigned char accept = 1 ; //cho phep luu vao 1->str_1, 0->str_2unsigned char dem_1 = 0 , dem_2 = 0 , dem_dau = 0;//Dem so chu so cua so thu nhat va hailong number_1 = 0 , number_2 = 0 ; //Luu 2 so lieu dang hexlong kq_n = 0 ;//Ket qua kieu number//Main program

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    32/41

    LCD_khoitao () ;for ( i = 0 ; i < strlen ( str ) ; i ++ ){write_data ( str [ i ] ) ;}START :while ( ( temp = scan_keypad ( ) ) != '='){if ( xoa_man_hinh == 1 ) write_command ( 0x01 ) ; //Xoa man hinh khi bat dau nhapxoa_man_hinh = 0 ;//Neu bam phim ON/C-> xoa man hinh ,khoi tao lai cac bien va continue37

    if ( temp == ' ' ){write_command ( 0x01 ) ; //Xoa man hinhwrite_data ( '0' ) ;write_command ( 0x80 ) ;kq_n = 0 ;xoa_man_hinh = 1 ;

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    33/41

    dem_1 = 0 ;dem_2 = 0 ;dem_dau = 0 ;number_1 = 0 ;number_2 = 0 ;accept = 1 ;continue ;}//Luu so lieu nhap tu ban phimif ( temp == '-' || temp == '+' || temp == 'x' || temp == ':' ){phep_toan = temp ;38

    accept = 0 //Neu co phep tinh thi luu vao so thu 2 neu ko thi so thunhatwrite_data ( temp ) ; //in phep tinh ra man hinhwrite_command ( 0xc0 ) ; //Dua con tro xuong dau dong 2dem_dau = dem_dau + 1;continue ;}if ( accept == 0)

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    34/41

    { if ( dem_2 1 || (accept == 0 && dem_2 == 0 && dem_dau == 1) || ( phep_toan ==':' && number_2 == 0) || (( phep_toan == 'x' || phep_toan==':')&& dem_1==0)||

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    35/41

    (phep_toan== 'x' && ( strlen(str_1) + strlen (str_2))>9))// cac loi nhapfor ( i = 0 ; i < strlen ( str_loi ) ; i ++ ){write_data ( str_loi [ i ] ) ;}elsefor ( i = 0 ; i < 10 ; i ++ ){if ( kq_c [ i ] != 0x30 ) accept = 1 ; //cho phep inif ( phep_toan == '-' && number_1 < number_2 && i == 0 ) write_data ( '-' ) ;// Ket qua la so amif ( accept == 1 ) write_data ( kq_c [ i ] ) ;40

    if ( phep_toan == ':' && accept == 0 && i >= 6 ) write_data ( '0' ) ;//Neu number 1 < number 2if ( phep_toan == ':' && i == 6) write_data ( '.' ) ;//Neu la phep chia them dau '.' de phan cach phan thap phanif ( i == 9 && accept == 0 ) write_data ( '0' ) ;//Neu ket qua = 0 thi in so '0' ra man hinh}

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    36/41

    xoa_man_hinh = 1 ;dem_1 = 0 ;dem_2 = 0 ;dem_dau = 0;str_1[10]= 0;str_2[10]= 0;temp = 0;phep_toan = 0;number_1 = 0 ;number_2 = 0 ;accept = 1 ;goto START ;while(1);41

    }//=========================== The end ============================Phn 4 :42

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    37/41

    KT QU V HNG PHT TRINI. KT QUTrnh tm hiu v nghin cu hon thnh n gip nhm em cng c li kinthc c hc v m rng thm nhiu kin thc mi, ng thi c dp tm hiu khn phn mm Proteus 7.8 v rt ra c nhiu kinh nghim b ch. Di s hngdn ca Thy Nguyn Tun Ninh gip nhm em hon thnh ti : Thit k mytnh b ti s dng vi x l 89C51 mt cch hon chnh.

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    38/41

    II. HN CH V HNG PHT TRIN Hn chPhm vi tnh ton cn thpCha to ra sn phm tht Hng pht trinTnh ton vi nhiu php tnh trong mt ln nhpTnh ton vi php nh kt qu43

    CC TI LIU THAM KHO1. H Vi iu Khin Tng Vn n2. Ngn ng C cho 8051 electronicctu.net3. ng dng da trn MCS-51- Phm Hng Kim Khnh4. Giao tip LCD 16x2 dientuvietnam.net44

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    39/41

    Nu xem trc tuyn b li, bn c th ti v my xem.

    Phn mm tnh ct thp thi cngby namwru0 ln xem

    45

    Facebook social plugin

    Also post on Faceboo k Posting as Thi Ngc Hiu (Change)

    Add a comment...

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    40/41

    cap thoat nuocby Xun Thng Nguyn0 ln xem

    n cng ngh k thut mi trngby dragonvika48 ln xem

    CNG NGH X L NC THIby dragonvika19 ln xem

    CNG NGH USBFby dragonvika5 ln xem

    n mn hc qu trnh v thit b t...

    by sakalinh48 ln xem

    Gio trnh quang hcby minhsonndl2 ln xem

    Danh mc tiu chun xy dng Vit Nam...by thanhbinh69976 ln xem

    Sa cha my thi cng trong xy dngby Dinh Huynh4 ln xem

    huong dan auto cadby namzonevn0 ln xem

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t

    41 16/9/20

  • 8/10/2019 Thit K My Tnh B Ti Dng Vi iu Khin AT89C51

    41/41

    Trang ch.Tr gip.Gp .Tha thun s dng.Lin kt.Lin h 2012 kiemtailieu.com - Ton b ti liu c ng gp trn tinh thn chia s ca cc thnh vin.Website ang hot ng th nghim, ch giy php hot ng ca B Thng tin v Truyn thng.

    3.2kLikeLike

    M TI LIU | Thit k my tnh b ti dng vi iu khin AT89C51 http://kiemtailieu.com/ky-thuat-cong-nghe/tai-lieu/thiet-ke-may-t