Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
341 KB
Nội dung
B1:Lập trìnhđiềukhiểnđèn LED1 vàLED2quacácnútnhấntrêngiaodiệnmáy tính: Phương pháp: trên PC: tạo giaodiện có 2 nútnhấn led1, led2. khi ta nhấnnútled1 thì truyền ký tự ‘A’ xuống vđk Khi nhấnnútled2 thì truyền kt ‘B’. Trên VĐK: khi nhận kt ‘A’ => đk led1 sáng. khi nhận kt ‘B’ => đk led2 sáng. Ngôn ngữ lập trình: Trên PC: VC++ Trên Vđk: keilc hoặc assembly. Các bước làm: Trên PC: B1: tạo giaodiện ứng dụng MFC có 2 nútnhấn led1, led2. Chọn giaodiện theo kiểu dialog Chọn thư viện đính kèm Thêm cácnútnhấn vào giaodiện Đặt tên cho nút nhấn: B2: thêm MSCOMM(dùng để điềukhiển cổng com) vào project/Add to project/components and control: Xuất hiện dialog: Chọn Microsoft communication Click Ok Kéo biểu tượng điện thoại lên giaodiện B3:Khai báo biến 1. m_mscomm (thuộc lớp Cmscomm) dùng thiết lập cổng com. Nhấn Ctrl +W Click vào IDC_MSCOMM1 và click vào Add Variable 2. m_trans (dùng để truyền dữ liệu) biến này thuộc lớp DLg click vào tab class bên trái(left bottom): Right click on ClhvtDlg: click add member variable Xuất hiện hộp thoại Nhập kiểu dữ liệu(CString) và tên biến(m_trans) B4: Viết hàm 1. hàm void Setting() dùng thiết lập cổng COM. Chèn tên hàm này vào hàm khởi tạo DLg(giao diện). Gõ kiểu hàm là void tên hàm là Setting() Click ok=> ra được vị trí của hàm Gõ lệnh vào(hoặc copy nội dung sau vào) // if port is already opened then close port. if( m_mscomm.GetPortOpen()) m_mscomm.SetPortOpen(false); m_mscomm.SetCommPort(1); // chon cong com m_mscomm.SetHandshaking(0); // thiet lap che do bat tay CString strBitRate = "9600"; CString strParity = "None"; CString strDataBit = "8"; CString strStopBit = "1"; CString strSetting; strSetting.Format("%s,%c,%s,%s",strBitRate,strParity[1],strDataBit,strStopBit); m_mscomm.SetSettings(strSetting);//"9600,N,8,1"); m_mscomm.SetRThreshold(1); // chon nguong nhan biet co truyen du lieu // set for input direction m_mscomm.SetInputLen(1); m_mscomm.SetInBufferSize(1024); m_mscomm.SetInputMode(0); //chon che do kieu ma ASCII hay binary m_mscomm.SetOutBufferSize(1024); m_mscomm.SetPortOpen(true); // mo cong com Chèn hàm Setting() vào phần khởi tạo: Double click vào hàm khởi tạo này: BOOL CLhvtDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About ." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } => gõ Setting() vào dưới dòng sau: // TODO: Add extra initialization here Setting(); B5: Viết lệnh cho cácnútnhấnLED1vàLED2 Double click on LED1 button: void CLhvtDlg::OnLed1() { m_trans='A'; m_mscomm.SetOutput((COleVariant)m_trans); } Double click on LED2 button: => void CLhvtDlg::OnLed2() { m_trans='B'; m_mscomm.SetOutput((COleVariant)m_trans); } Đã xong=>chạy CT Trên Proteus: Vẽ mạch VĐK kết nối 2 led. Vẽ mạch VĐk kết nối cổng COM. Trên keilc=>Viết CT: Khởi động keilc :=> vào project/new Chọn vđk Viết file led.c Click on file/ new Gõ lệnh hoặc copy: #include <REGX51.H> #include <stdio.h> //========================= #define led1 P0_0 [...]... MÁY): Giả sử chọn cổng COM1 (nếu chọn cổng COM khác thì phải vào VC++ chỉnh lại tên cổng com trong hàm Setting()) Chọn COM1 kết nối COM4 => Chạy PROTEUS: Vẽ mạch NẠP chương trình cho vđk: Chọn file hex đã dịch trên keilc Chạy PROTEUS VÀ CT TRÊN VC++ THƯỞNG THỨC Bai2: Viết CT nhấnnút chớp tắt(gửi ký tự C)=> LED1vàLED2 sẽ chớp tắt 500ms Nhấnnút stop (tương ứng ký tự S) thì 2 led tắt ... ma DEC cua chu A led1= 0; led2= 1; } if (SBUF==66){ //66 la ma DEC cua chu B led1= 1; led2= 0; } } } Lưu lại: Thêm file dkleddon.c vào project Thiết lập thông số cho vđk: chọn thạch anh 12 Mhz chọn tab output; chọn tùy chọn tạo file hex Click build để tạo file hex: Kết thúc keil c THIẾT LẬP KẾT NỐI PC PROTEUS DÙNG COM ẢO: LƯU Ý: CHỌN CỔNG COM X KHÔNG CÓ TÊN SAU ĐÂY(TÙY THUỘC VÀO MỖI MÁY): Giả sử chọn...#define led2 P0_1 //========================= unsigned char ch,abc; //========================== void SetupSerial() { SCON = 0x52; /* Che do 1: 8-bit UART, cho phep truyen */ TMOD = 0x20; /* timer 1 che do 2: . B1 :Lập trình điều khiển đèn LED1 và LED2 qua các nút nhấn trên giao diện máy tính: Phương pháp: trên PC: tạo giao diện có 2 nút nhấn led1, led2. khi ta nhấn. ngữ lập trình: Trên PC: VC++ Trên Vđk: keilc hoặc assembly. Các bước làm: Trên PC: B1: tạo giao diện ứng dụng MFC có 2 nút nhấn led1, led2. Chọn giao diện