Mô phỏng mạch Logic số

21 882 9
Mô phỏng mạch Logic số

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mô phỏng mạch Logic số

Trờng đại học Bách khoa hà nộiKhoa điện tử viễn thông hµ néi 6/20002 Trờng đại học Bách khoa hà nộiKhoa điện tử viễn thôngBàI Tập LớnĐề tàiMô Phỏng Mạch Logic sốMô Phỏng Mạch Logic số Giáo viên hớng dẫnVũ Song Tùng Thực hiện chơng trìnhĐặng Hiếu NhơnNguyễn Hoàng NgaNguyễn Thị Ngọc ThuỷNguyễn Xuân ThuỳNguyễn Thị Thu HàNgô Đức Thờng3 Hµ Néi - 6/20004 I.Đặt vấn đề:Máy tính hiện nay là một công cụ rất mạnh để giải quyết những bài toán về kĩ thuật đòi hỏi khả năng tính toán cao.Với khả năng đồ hoạ của mình máy tính cho phép không chỉ thể hiện u điểm của mình ở khả năng tihns toán nhanh mà nó còn cho phép chúng ta biểu thị các đối t-ợng các hoạt động, các sự kiện một cách sinh động bằng hình ảnh.Đây là nguyên nhân vì sao hiện nay cùng với sự phát triển nhanh về tốc độ ,su hớng làm phần mềm về đồ hoạ phỏng ,hoặc những phần mềm đồ hoạ 3D phát triển rất mạnh.Để bắt kịp với sự phát triển của thế giới chúngta cần phải khai thác một cách triệt để khả năng của máy tính.Với sự hớng dẫn của thầy giáo Vũ Song Tùng chúng tôi thiết kế phần mềm phỏng Mạch Logic số vơí mục đích: Khai thác khả năng về đồ hoạ của máy tính Bớc đầu làm quen với lập trình hớng đối tợng Tăng dần khả năng lập trình với việc giải quyết các vấn đề nảy sinh trong kĩ thuật lập trình phỏng(cha phải theo thời gian thực) Chúng tôi chọn ngôn ngữ C++ để thực hiện chơng trình của mình bởi vì hiện nay C++ đang đợc dạy trong các trờng đại học và khả năng lập trình hớng đối tợng của nó rất mạnh rất thích hợp với các bài toán về đối tợng. Tuy nhiên do thời gian có hạn nên một số ý tởng của tác giả cũng nh một số kĩ thuật lập trình cha đợc đa vào.Vì thế chơng trình còn nhiều vấn đề cha đợc hoàn thiện.Phần mềm này chỉ thích hợp với khuôn khổ một bài tập lớn.Chơng trình chỉ dừng ở mức hớng đối tợng một nửa,cho nên rất thích hợp với những ngời mới học lập trình h-ớng đối tợng.Chơng trình đợc trình bày một cách dõ dàng ,dễ đọc dễ hiểu,có thể là tài liệu tham khảo của những ngời mới học lập trình hớng đối tợng.Cuối cùng thay mặt cả nhóm xin chân thành cám ơn thầy :Vũ Song Tùng đã nhiệt tình giúp đỡ chúng em hoàn thành chơng trình này. Nhóm trởng: Đặng Hiếu NhơnII.Cơ sở lý thuyết: Các phần tử logic cơ bản là AND,OR,NOT,XOR,NAND,NOR.Các cổng logic hoạt động theo một bảng gọi là bảng chân lí(True Table).Tong ứng với 6 cổng logic ta có 6 bảng chân lí sau:1.Cổng AND:Kí hiệu:Bảng chân lý:x y z0 0 00 1 01 0 01 1 15 2.Cæng OR:KÝ hiÖu:B¶ng ch©n lý:x y z0 0 00 1 11 0 11 1 13.Cæng NOT:KÝ hiÖu:B¶ng ch©n lÝ:x x0 11 04.Cæng NAND:KÝ hiÖu:B¶ng ch©n lÝ:x y z0 0 10 1 11 0 11 1 05.Cæng NOR:KÝ hiÖu:6 Bảng chân lí:x y z0 0 10 1 11 0 11 1 06.Cổng XOR:Kí hiệu: Bảng chân lí:x y z0 0 10 1 11 0 11 1 0III.Thiết kế chơng trình:3.1.Các đối tợng:Ta chia các đối tợng ra làm 2 loại: Đối tợng nguyên tố : đối tợng này là nhỏ nhất không thể chia nhỏ đợc nữa Đối tợng nhóm(Group): đối tợng này gồm nhiều đối tợng con ghép lại.Chơng trình đợc thiết kế theo kiểu giao diện của Windows bao gồm hệ thống Menu(Bảng chọn), ToolBar(Thanh công cụ), Các nút bấm (Button), Hộp thoại (MessageBox), Hộp nhập liệu (InputBox), các đối tợng lựa chọn(Option), Các đối tợng ảnh(Image).Hoạt động của mỗi mạch logic đợc thiết kế ở những của sổ riêng gọi là các FORM.Thể hiện hoạt động theo thời gian ta dùng đối tợng Osilo,Bảng chân lý ta dùng đối tợng TrueTable,để thay đổi các đầu vào ta dùng các nút chuyển mạch(SwitchButton)3.2.Các hàm và các đối tợng:Các hàm và các đối tợng đợc khai báo trong file logic.h nh sau:#ifndef_LOGIC_H_7 #define _LOGIC_H_#include <dos.h>#include <string.h>#include <graphics.h>#include <conio.h>#include<iostream.h>#ifndef bytetypedef unsigned char byte;#endif#ifndef wordtypedef unsigned int word;#endif#ifndef dwordtypedef unsigned long dword;#endif#ifndef booltypedef int bool;#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif#define LEFT_MOUSE_PRESS 0xff01#define RIGHT_MOUSE_PRESS 0xff02#define LEFT_MOUSE_REL 0xff11#define RIGHT_MOUSE_REL 0xff12#define MOUSE_MOVE 0xff00#define MS_GET_STATUS 3#define MS_GET_MOVE 11#define MS_HID_BOX 16#define ABOUT 10#define HELP 11#define EXIT 12#define SHOWICON 22#define HIDEICON 23#define SHOWTOOLBAR 20#define HIDETOOLBAR 21#define AND 18 #define OR 2#define NAND 3#define NOR 4#define XOR 5#define NOT 6#endifIV.ý nghĩa các hàm và các tham số:4.1.Các hàm về đồ hoạ:extern int TextHeight(); Trả về chiều cao của phông chữ sử dụngextern int TextWidth(char ch); Trả về độ rộng của kí tự chextern int Strlen(char *s); Trả về độ dài sâu s theo pixelextern void ShowString(int x,int y,const char* s,byte color); Vẽ sâu s tai vị trí (x,y) có màu là colorextern void ShowChar(int x,int y,byte ch,byte color); Vẽ kí tự có mã ch tại vị trí (x,y) màu là colorextern void Load_fnt(); Đọc phông tiếng việt đa vào bộ nhớ extern void Load_Bmp(int l,int t,char *fname); Đọc một file ảnh từ tệp có tên *fname ,sau đó đa ra man hình ở vị trí(l,t)extern void ShowText(int l,int t,int w,int h,char *s,int c); Vẽ một sâu kí tự s ở giữa hình chữ nhật có góc trái trên(l,t) độ rộng w,cao h có màu c extern void DrawBar(int l,int t,int w,int h,int type);Vẽ hình chữ nhật có góc tría trên(l,t),rộng w,cao h,với kiểu là type extern void Drawcaption(int l,int t,int w,int h,char *s); Vẽ tiêu đề trong một hình chữ nhật extern void Dohoa();Khởi tạo đồ hoạ extern void Linec(int x1,int y1,int x2,int y2,byte c);Vẽ đờng thẳng với màu cextern void Lineh3d(int x1,int x2,int y,int st);Vẽ đờng thẳng 3d theo chiều ngang kiểu st(nổi hay chìm) extern void Linev3d(int y1,int y2,int x,char st);Vẽ đờng thẳng 3d theo chiều dọc kiểu st(nổi hay chìm)extern void Bound(int x1,int y1,int x2,int y2,char tborder);Vẽ đờng viền hình chữ nhật có kiểu tborderextern void Bbar(int x1,int y1,int x2,int y2,byte c);Điền màu c vào một hình chữ nhậtextern void Rectangle(int x1,int y1,int x2,int y2,byte c);9 Vẽ hình chữ nhật với màu c void WaitforVR();Chờ tín hiệu đồng bộ4.2.Các hàm về Mouse:extern bool Msmoved();Kiểm tra xem chuột có di chuyển khôngextern void Msmove(word x, word y);Di chuyển chuột đến vị trí(x,y)extern void Ms_shape(word x);extern void mouse(word *ax, word *bx, word *cx, word *dx);extern bool Mscheck(void);extern bool Msinit(void);extern word Msreset(void);extern void Mslimit(word left,word top,word right,word bottom);extern void Msshow(void);extern void Mshide(void);extern void Mshidebox(word left,word top,word right,word bottom);extern word MsXpos(void);extern word MsYpos(void);extern void Msgetpos(int *,int *);extern bool Msinbox(word left,word top,word right,word bottom);extern int Msbpress(word b);extern int Msbreles(word b);extern int Msbstate(void);extern int Mslastmove(bool dir);extern void SetPointerShape(word Horiz,word Vert);extern int Msleftpress();extern void MsSpeed();extern int Msrightpress();4.3.Các đối tợng nguyên tố:class BITMAP{ private: word left,top;//G public: BITMAP(int l,int t){left=l,top=t;}; void ReadBMP (char *FileName );/*Đọc một file ảnh bitmap};class CloseButton{public: int left,top,width,height;10 [...]...hµ néi 6/2000 2 Trờng đại học Bách khoa hà nội Khoa điện tử viễn thông BàI Tập Lớn Đề tài Mô Phỏng Mạch Logic sốPhỏng Mạch Logic số Giáo viên hớng dẫn Vũ Song Tùng Thực hiện chơng trình Đặng Hiếu Nhơn Nguyễn Hoàng Nga Nguyễn Thị Ngọc Thuỷ Nguyễn Xuân Thuỳ Nguyễn Thị Thu Hà Ngô Đức Thờng 3 #define _LOGIC_ H_ #include <dos.h> #include <string.h> #include <graphics.h> #include... cùng với sự phát triển nhanh về tốc độ ,su hớng làm phần mềm về đồ hoạ phỏng ,hoặc những phần mềm đồ hoạ 3D phát triển rất mạnh. Để bắt kịp với sự phát triển của thế giới chúngta cần phải khai thác một cách triệt để khả năng của máy tính. Với sự hớng dẫn của thầy giáo Vũ Song Tùng chúng tôi thiết kế phần mềm phỏng Mạch Logic số vơí mục đích: ã Khai thác khả năng về đồ hoạ của máy tính ã Bớc đầu... đối tợng ảnh(Image). Hoạt động của mỗi mạch logic đợc thiết kế ở những của sổ riêng gọi là các FORM.Thể hiện hoạt động theo thời gian ta dùng đối tợng Osilo,Bảng chân lý ta dùng đối tợng TrueTable,để thay đổi các đầu vào ta dùng các nút chuyển mạch( SwitchButton) 3.2.Các hàm và các đối tợng: Các hàm và các đối tợng đợc khai b¸o trong file logic. h nh sau: #ifndef _LOGIC_ H_ 7 Trờng đại học Bách khoa hà... nảy sinh trong kĩ thuật lập trình phỏng( cha phải theo thời gian thực) Chúng tôi chọn ngôn ngữ C++ để thực hiện chơng trình của mình bởi vì hiện nay C++ đang đợc dạy trong các trờng đại học và khả năng lập trình hớng đối tợng của nó rất mạnh rất thích hợp với các bài toán về đối tợng. Tuy nhiên do thời gian có hạn nên một số ý tởng của tác giả cũng nh một số kĩ thuật lập trình cha đợc đa vào.Vì... :Vũ Song Tùng đà nhiệt tình giúp đỡ chúng em hoàn thành chơng trình này. Nhóm trởng: Đặng Hiếu Nhơn II.Cơ sở lý thuyết: Các phần tử logic cơ bản là AND,OR,NOT,XOR,NAND,NOR.Các cổng logic hoạt động theo một bảng gọi là bảng ch©n lÝ(True Table).Tong øng víi 6 cỉng logic ta cã 6 bảng chân lí sau: 1.Cổng AND: Kí hiệu: Bảng chân lý: x y z 0 0 0 0 1 0 1 0 0 1 1 1 5 ... sau: #ifndef _LOGIC_ H_ 7 Trờng đại học Bách khoa hà nội Khoa điện tử viễn th«ng ~App() { delete(and);delete(nand);delete(or); delete(nor);delete(xor); }; }; V. Lêi KÕt: Tuy chơng trình đà giải quyết đợc một số vấn đề trong việc xử lý sự kiện của các đối tợng nhng do việc xây dựng cơ sở ban đầu là những đối t- ợng rời rạc không có liên hệ gì với nhau cho nên khi một sự kiện phát sinh ta phải duyệt hết tất . Bách khoa hà nộiKhoa điện tử viễn thôngBàI Tập LớnĐề tàiMô Phỏng Mạch Logic s Mô Phỏng Mạch Logic số Giáo viên hớng dẫnVũ Song Tùng Thực hiện. sự hớng dẫn của thầy giáo Vũ Song Tùng chúng tôi thiết kế phần mềm Mô phỏng Mạch Logic số vơí mục đích: Khai thác khả năng về đồ hoạ của máy tính Bớc đầu

Ngày đăng: 11/09/2012, 08:55

Hình ảnh liên quan

Bảng chân lý: - Mô phỏng mạch Logic số

Bảng ch.

ân lý: Xem tại trang 6 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan