Tạo file cho chương trình...73... Mô tả chức năng Mạch kiểm tra chẵn lẻ 4 bit là một mạch điện tử được sử dụng để xác định tính chẵn hoặc lẻ của một số nhị phân 4 bit.. Mạch này thường s
Trang 1ĐẠI HỌC CẦN THƠTRƯỜNG BÁCH KHOA
KHOA ĐIỆN TỬ-VIỄN THÔNG*******
Trang 21 Tạo project mới 6
2 Tạo file cho chương trình 7
3 Viết code cho file 7
4 Kiểm tra lỗi 9
5 Chạy chương trình 9
6 Kết quả 11
VI KẾT LUẬN 11HẾT
Trang 3I THIẾT KẾ 1 Mô tả chức năng
Mạch kiểm tra chẵn lẻ 4 bit là một mạch điện tử được sử dụng để xác định tính chẵn hoặc lẻ của một số nhị phân 4 bit Mạch này thường sử dụng cáccổng logic để phân tích số lượng bit 1 trong một từ nhị phân và xác định xem tổng số bit 1 là chẵn hay lẻ.
Mạch hoạt động như sau:
Khi một từ nhị phân 4 bit được đưa vào mạch, mạch sẽ phân tích vàđưa ra kết quả là 1 nếu tổng số bit 1 là chẵn (đối với mạch chẵn) hoặc 0 nếu tổng số bit 1 là lẻ (đối với mạch chẵn)
Đối với mạch lẻ, kết quả sẽ ngược lại: 1 nếu tổng số bit 1 là lẻ và 0 nếu tổng số bit 1 là chẵn.
Trang 4IV VIẾT CHƯƠNG TRÌNH
Gồm 2 file: file main.cpp và file Gate.h
#include "Gate.h"int main() { char stopme; //Setting labels
ExOrGate exor1 (" EXOR1 "); ExOrGate exor2 (" EXOR2 "); ExOrGate exor3 (" EXOR3 "); Connector c1 (&exor1, &exor3); Connector c2 (&exor2, &exor3); /*exor1.setNextPin(1);
exor1.setNextPin(0); exor2.setNextPin(1); exor2.setNextPin(1); */
Trang 5
// The output shows order of operators
cout << " Ngo vao 1: "<< exor1.getPinA()<< endl; cout << " Ngo vao 2: "<< exor1.getPinB()<< endl; cout << " Ngo vao 3: "<< exor2.getPinA()<< endl; cout << " Ngo vao 4: "<< exor2.getPinB()<< endl; cout << " Ngo ra EXOR : "<< exor3.getOutput()<< endl; cin >> stopme; //holds open window under some conditions return 0;
#ifndef GATE_H_#define GATE_H_#include <string.h>#include <iostream>using namespace std;class LogicGate {public:
LogicGate(string n){ label = n;
}
string getLabel(){ return label; }
bool getOutput(){
output = performGateLogic(); return output;
}
virtual bool performGateLogic(){
cout << "ERROR! performGateLogic BASE" << endl; return false;
}
virtual void setNextPin(bool source) {
cout << "ERROR! setNextPin BASE" << endl; }
string label; bool output;};
Trang 6class BinaryGate : public LogicGate {public:
BinaryGate(string n) : LogicGate(n) { pinATaken = false;
pinBTaken = false; }
return pinA; }
return pinB; }
virtual void setNextPin(bool source) { if (pinATaken == false) {
pinA = source;
this->pinATaken = true; }
else if (pinBTaken == false) { pinB = source;
this->pinBTaken = true; }
}private:
bool pinA, pinATaken, pinB, pinBTaken;};
class ExOrGate : public BinaryGate {public:
ExOrGate(string n) : BinaryGate(n) {}; virtual bool performGateLogic() { bool a = getPinA();
bool b = getPinB();
Trang 7
if ((a == 1 && b == 0) || (a==0 && b==1) ) { return true;
} else {
return false; }
}};
class Connector{public:
Connector(LogicGate *fgate, LogicGate *tgate) { fromgate = fgate;
togate = tgate;
tgate->setNextPin(fromgate->getOutput()); }
LogicGate *getFrom() { return fromgate; }
LogicGate *getTo() { return togate; }
LogicGate *fromgate, *togate;};
#endif /* GATE_H_ */
Trang 8V CÁC BƯỚC THỰC HIỆN
1 Tạo project mới
Mở CODE COMPOSER STUDIO lên chọn File → New → Project như
hình bên dưới
Trong hộp thoại New Project chọn C/C++ → C++Project →Next
Đặt tên cho Project, tại mục Executable → Empty Project và mục
Toolchains → MinGW GCC nhấn Finish để hoàn tất
Trang 92 Tạo file cho chương trình
Tiến hành tạo File Gate.h Bấm chuột phải vào chọn New → Header
File, đặt tên Gate.h và nhấn Finish.
Tiếp tục tạo File main.cpp Bấm chuột phải vào chọn New → Source
File, đặt tên main.cpp và nhấn Finish.
3
Viết code cho file
Nhập code cho file main.cpp
Nhập code cho file Gate.cpp
Trang 114 Kiểm tra lỗi
Nhấp chuột phải vào lthdt và chọn Build Project kiểm tra chương trình
có lỗi hay không Nếu lỗi hãy chỉnh sửa và tiếp tục kiểm tra đến khi hết lỗi.
5 Chạy chương trình
Trang 12Tại mục C/C++ Application chọn lthdt Debug sau đó tại mục main chọn
Browser ở phần C/C++ Application để lấy địa chỉ chứa file chạy của lthdt.
Chọn file lthdt.exe theo đường dẫn Chọn Open → Run
Trang 136 Kết quả
Nhập ngõ vào nhị phân để kiểm tra ngõ ra chẳn lẻ.
NHẬN XÉT: Mạch chạy đúng theo yêu cầu, kiểm tra được tính chẳn lẻ
của đầu vào (input).