Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
480 KB
Nội dung
Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử PHẦN I: Mở đầu I Đặt vấn đề - Thiết kế mạch hiển thị thời gian theo thời gian hệ thống máy tính II Mục đích thiết kế - Phát huy, ứng dụng kiến thức học vào môi trường thực tế - Qua có thêm nhiều kinh nghiệm giúp ích sau trường hòa nhập với công nghệ tiên tiến xã hội III Nội dung đề tài Đề tài 2.Chức hệ thống - Cập nhật hệ thống máy tính - Thay đổi ngày, hệ thống - Chuyển vầ dạng: + Phút/Giây + Giờ/Phút + Tháng/Ngày + Năm/Tháng - Cập nhật lên tục cho mạch - Mạch hiển thị nội dung yêu cầu PHẦN II : CƠ SỞ LÝ THUYẾT Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử I Sơ đồ khối chức khối AT89S52: Bộ vi điều khiển AT89S52 gồm khối: 1.1 CPU ( Central Processing Unit): - Thanh ghi tích lũy A - Thanh ghi tích lũy phụ B, dùng cho phép nhân phép chia - Đơn vị logic học ( ALU: Arithmetic Logical Unit) - Từ trạng thái chương trình (PSW: Program Status Word) - Bốn băng ghi - Con trỏ ngăn xếp 1.2 Bộ nhớ chương trình (Bộ nhớ ROM) gồm 8Kb Flash 1.3 Bộ nhớ liệu (Bộ nhớ RAM) gồm 256 bytes 1.4 Bộ UART (Universal Ansynchronous Receiver and Transmitter) làm chức truyền nhận nối tiếp, nhờ khối này, AT89S52 giao tiếp với cổng COM máy tính 1.5 Timer/Counter 16 bit thực chức định thời đếm kiện 1.6 WDT (Watch Dog Timer): dùng để hồi phục lại hoạt động CPU bị treo nguyên nhân Gồm có Timer 14 bit, Timer bit, g hi WDTPRG (WDT programable) điều khiển Timer bit ghi chức WDTRST (WDT resister) Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử 2.1 Port (P0.0 – P0.7) Port gồm chân, chức xuất nhập ra, Port Bus đa hợp liệu địa (AD0-AD7), chức sử dụng AT89S52 giao tiếp với thiết bị có kiến trúc Bus 2.2 Port (P1.0 – P1.7) Đối với 8051, chức Port chức xuất nhập, Port khác, Port xuất nhập theo bit theo byte 2.3 Port (P2.0 – P2.7) Port Port công dụng kép: đường xuất nhập byte cao bus địa thiết kế dùng nhớ mở rộng 2.4 Port (P3.0 – P3.7) Mỗi chân Port chức xuất nhập chức riêng cụ thể sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RXD TXD INT0 INT1 T0 T1 WR RD Chức Dữ liệu nhận cho Port nối tiếp Dữ liệu phát cho Port nối tiếp Ngắt bên Ngắt bên Ngõ vào Timer/Counter Ngõ vào Timer/Counter Xung ghi nhớ liệu Xung đọc nhớ liệu 2.5 PSEN (Program Store Enable) : điều khiển đọc nhớ 2.6 ALE (Address Latch Enable) : dùng phép mạch chốt bên 2.7 EA (External Access) : chọn nhớ chương trình Khi mức cao chọn ROM trong, ngược lại mức thấp chọn ROM Các thiết kế sử dụng ngắt AT89s52 có nguồn ngắt: • Ngắt • Ngắt Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử • Ngắt timer • Ngắt timer • Ngắt timer • Ngắt port nối tiếp nguồn ngắt xoá Reset đặt riêng phần mềm bit ghi cho phép ngắt(IE), ghi ưu tiên ngắt (IP) Thanh ghi cho phép ngắt IE Bit IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 Ký hiệu EA ET5 ES ET1 EX1 ET0 EX0 Mô tả( 1cho phép , o cấm) Cho phép cấm toàn Không địng nghĩa Cho phép ngắt từ timer Cho phép ngắt từ port nối tiếp Cho phép ngắt từ timer Cho phép ngắt Cho phép ngắt từ timer Cho phép ngắt Thanh ghi ưu tiên ngắt IP II.IC MAX232 Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử U 13 11 10 R IN R IN R 1O U T R 2O U T T IN T IN T1O U T T2O U T C C C C V V 1 2 + - 12 14 + + - M A X232 Bảng so sánh điện áp mức logic RS232 va TTL ĐỐI TƯỢNG Cổng Com Vi điều khiển MỨC LOGIC 1 MỨC ĐIỆN ÁP TƯƠNG ỨNG -12V đến -3V +3V đến +12V +5V 0V Khắc phục vấn đề này, người ta sử dụng vi mạch MAX232 để chuyển đổi mức điện áp hai chuẩn Vi mạch có chứa hai chuyển đổi mức logic từ TTL sang RS232 va ngược lại III.CÔNG NỐI TIẾP Cổng nối tiếp giao diện phổ biến máy tính, cổng có số tên gọi thông dụng Com, RS232 Sự trao đổi đường dẫn tín hiệu Trên máy tính có vi mach UART (Universal Asynchronous Receiver/ Transmitter) đảm trách việc truyền nhận liệu thông qua cổng nối tiếp UART phổ biến vi mạch 8250cuar hãng Intel phiên cao vi mạch 16450,16660,16750…Vi mạch thường hàn cố định main gần giao diện cổng nối Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử tiếp Việc trao đổi liệu qua cổng nối tiếp thực chất việc truy xuất ghi vi mach Và điều lập trình với cổng Com phải tìm hiểu ghi UART tương ứng máy tính Tên ghi Thanh ghi điều khiển modem Thanh ghi trạng thái modem Thanh ghi điều khiển đường truyền Thanh ghi trang thái đương truyền Thanh ghi đệm đọc / ghi Thanh ghi chứa số chia tốc độ baud (byte thấp) Thanh ghi chứa số chia tốc độ baud (byte cao) Thanh ghi cho phép ngắt Môn Ghép nối máy tính Địa 3F8+4 3F8 +6 3F8 +3 3F8 + 3F8 3F8 3F8+1 3F8+1 Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử PHẦN III : MẠCH VÀ CODE Sơ đồ mạch nguyên lý VCC Q1 A1015 Q2 A1015 Q3 A1015 C4 10uF R1IN T1OUT R2IN T2OUT C2+ C2VS+ C1+ GND MAX232 R1OUT T1IN R2OUT T2IN VCC 12 11 10 C1VS- COM1 13 14 7 C3 10uF IC1 10 C1 VCC 10uF 15 16 C5 RXD TXD SW1 C6 10uF 10 11 12 13 14 15 16 17 18 19 11 R16 10k 10uF X1 Cx1 8 a b c d e f g h b c d e f g 10 h a b c d e f g h a b c d e f g 10 h AT89S52 T2/P1.0 T2 EX/P1.1 P1.2 P1.3 P1.4 MOSI/P1.5 MISO/P1.6 SCK/P1.7 RESET RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL1 XTAL2 XT2 XT1 VCC L1 R4 1k a b c d e f g 10 h IC2 RXD TXD L2 a b c d e f g 10 h R3 1k L3 a b c d e f g h R2 1k a b c d e f g h R1 1k L4 A1015 Q4 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PSEN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 R5 R6 R7 R8 R9 R10 R14 R15 220 220 220 220 220 220 220 220 a b c d e f g h VCC VCC Cx2 C2 GND VCC 104 D1 HD1 R17 VCC 470 Mạch PCB 10 1 2 3 40 2 1 10 2 10 10 1 2 3 2 1 1 1 1 1 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 1 1 2 21 1 10 11 12 13 14 15 16 17 18 19 20 2 10 11 12 13 1 2 11 2 14 15 16 1 2 Môn Ghép nối máy tính 10 Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử Thiết kế giao diện 3.1 Code VB6 Option Explicit Dim x1, x2, x3, x4 As String Dim X, dd4, dd3, dd2, dd1 As Integer Private Sub Command1_Click() ' thoat khoi chuong trinh End End Sub Private Sub Command2_Click() ' thay doi he thong Date = DTPicker1.Value ' thay doi gio he thong Time = DTPicker2.Value Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử End Sub Private Sub Form_Load() ' - COM1 With MSComm1 Settings = "9600,N,8,1" CommPort = RThreshold = SThreshold = InputMode = InputLen = Handshaking = comNone InBufferSize = 1024 OutBufferSize = 1024 If PortOpen = False Then PortOpen = True End If End With End Sub Private Sub Timer1_Timer() 'lay gio he thong Text5 = Format(Now, "ddd dd/mm/yy" & " ^ " & "hh:nn:ss") 'chon che phut/giay If (Option1.Value = True) Then Text6 = (Format(Now, "nn") \ 10) Text7 = (Format(Now, "nn") Mod 10) Text8 = (Format(Now, "ss") \ 10) Text9 = (Format(Now, "ss") Mod 10) End If 'chon che gio/phut If (Option2.Value = True) Then Text6 = (Format(Now, "hh") \ 10) Text7 = (Format(Now, "hh") Mod 10) Text8 = (Format(Now, "nn") \ 10) Text9 = (Format(Now, "nn") Mod 10) Môn Ghép nối máy tính Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử End If 'chon che thang/ngay If (Option3.Value = True) Then Text6 = (Format(Now, "mm") \ 10) Text7 = (Format(Now, "mm") Mod 10) Text8 = (Format(Now, "dd") \ 10) Text9 = (Format(Now, "dd") Mod 10) End If 'chon che nam/thang If (Option4.Value = True) Then Text6 = (Format(Now, "yy") \ 10) Text7 = (Format(Now, "yy") Mod 10) Text8 = (Format(Now, "mm") \ 10) Text9 = (Format(Now, "mm") Mod 10) End If End Sub Private Sub Timer2_Timer() 'bien doi cac text co so can truyen ve kieu so nguyen dd1 = Val(Text6.Text) dd2 = Val(Text7.Text) dd3 = Val(Text8.Text) dd4 = Val(Text9.Text) 'bien doi cac so nguyen ve kieu ky tu x1 = Chr(dd1) x2 = Chr(dd2) x3 = Chr(dd3) x4 = Chr(dd4) 'truyen xuong mach MSComm1.Output = "@" MSComm1.Output = x1 MSComm1.Output = x2 MSComm1.Output = x3 MSComm1.Output = x4 End Sub Môn Ghép nối máy tính 10 Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử Code phần mềm cho 89s52 #include #include #include sbit LED1=P1^1; sbit LED2=P1^0; sbit LED3=P1^3; sbit LED4=P1^2; // quet led hang don vi // quet led hang chuc // quet led hang tram // quet led hang nghin int so4, so3,so2,so1,i,j,tg; unsigned char dem=0; unsigned char M[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // ma led void timer0 (void) interrupt { TH0=0xF8; TL0=0x40; switch(dem) { case 0: LED2=LED3=LED4=1; P0=m[so1]; LED1=0; // break; case 1: LED1=LED3=LED4=1; P0=M[so2]; LED2=0; // LED hang chuc break; case 2: LED1=LED2=LED4=1; P0=M[so3]; LED3=0; // led hang tram break; case 3: LED1=LED2=LED3=1; Môn Ghép nối máy tính 11 Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử P0=M[so4];; LED4=0; // led hang nghin break; } if(++dem==4)dem=0; } void main() { SCON=0x52; TMOD=0x20; TH1=TL1=-3; TR1=1; TH0=0xF8; TL0=0x30; TR0=1; ET0=EA=1; PT0=1; tg =10; while(1) { { tg =_getkey(); } while(tg!='@'); so1=_getkey(); so2=_getkey(); so3=_getkey(); so4=_getkey(); }; } Môn Ghép nối máy tính 12 [...]... LED1=LED2=LED3=1; Môn Ghép nối máy tính 11 Trường Đại Học Công Nghiệp Hà Nội Khoa CNKT Điện Tử P0=M[so4];; LED4=0; // led hang nghin break; } if(++dem==4)dem=0; } void main() { SCON=0x52; TMOD=0x20; TH1=TL1=-3; TR1=1; TH0=0xF8; TL0=0x30; TR0=1; ET0=EA=1; PT0=1; tg =10; while(1) { do { tg =_getkey(); } while(tg!='@'); so1=_getkey(); so2=_getkey(); so3=_getkey(); so4=_getkey(); }; } Môn Ghép nối máy tính 12