LỜI CẢM ƠN ! Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu trường Đại Học Công Nghiệp Hà Nội đã cho em một môi trường học tập tốt, cũng như là tạo nhiều điều kiện thuận lợi để em có thể phát huy được khả năng của mình. Em xin chân thành cảm ơn đến quý Thầy/Cô, đặc biệt là quý Thầy/Cô trong khoa Điện tử trường Đại Học Công Nghiệp Hà Nội đã tận tình chỉ dạy và truyền đạt những kiến thức quý báu để em có thể hoàn thành báo cáo này, đồng thời đó cũng là một hành trang đáng quý để em có thể tiếp bước trên con đường sự nghiệp sau này. Em xin bài tỏ lòng biết ơn sâu sắc đối với thầy Hà Quang Thanh là người trực tiếp hướng dẫn và động viên em trong suốt thời gian em thực tập. Hà Nội ngày 20 tháng 04 năm 2012 Sinh viên thực hiện Trương Văn Hải Lời mở đầu Sự phát triển của khoa học kỹ thuật ngày càng góp phần nâng cao năng suất lao động đặc biệt là sự ra đời và phát triển của công nghệ mới nhằm tạo ra sự tự động hoá sự tiện lợi trong xã hội cũng như trong công nghiệp. Với phần ứng dụng của vi điều khiển đã tạo lên một nền công nghiệp tự động hoá phát triển mạnh mẽ và rực rỡ như ngày nay. Được ứng dụng trên các thiết bị điện tử dân dụng, trong công nghiệp sản xuất, hay trên những Robot. Với những ứng dụng to lớn ấy đòi hỏi chúng ta luôn tìm cách phát triển làm chủ công nghệ để ứng dụng vào thực tế mang lại hiệu quả và tính chính xác cao. Với tư cách là những sinh viên, những thế hệ đi sau được kế thừa những thành quả công nghệ tiên tiến, với mong muốn luôn phát triển những thành quả công nghệ đó để góp phần đưa khoa khoa học kỹ thuật vào phục vụ đời sống của con người. Em đã tìm hiểu và thực hiện đề tài “máy phát xung hiển thị số dùng XR-2206”. Nội dung báo cáo gồm : I. Tìm hiểu về các linh kiện II. Thiết kế mạch in III. Lập trình cho vi điều khiển IV. Tổng kết báo cáo Em thực hiện đề tài này, vì thời gian có hạn vẫn còn nhiều thiếu sót mong các thầy cô giáo đóng góp ý kiến để sản phẩm của này được hoàn thiện hơn !
Trang 1LỜI CẢM ƠN !
Đầu tiên em xin gửi lời cảm ơn đến Ban Giám Hiệu trường Đại Học Công Nghiệp Hà Nội đã cho em một môi trường học tập tốt, cũng như là tạo nhiều điều kiện thuận lợi để em có thể phát huy được khả năng của mình.
Em xin chân thành cảm ơn đến quý Thầy/Cô, đặc biệt là quý Thầy/Cô trong khoa Điện tử trường Đại Học Công Nghiệp Hà Nội đã tận tình chỉ dạy và truyền đạt những kiến thức quý báu để em có thể hoàn thành báo cáo này, đồng thời đó cũng là một hành trang đáng quý
để em có thể tiếp bước trên con đường sự nghiệp sau này.
Em xin bài tỏ lòng biết ơn sâu sắc đối với thầy Hà Quang Thanh
là người trực tiếp hướng dẫn và động viên em trong suốt thời gian em thực tập.
Hà Nội ngày 20 tháng 04 năm 2012
Sinh viên thực hiện
Trương Văn Hải
Trang 2Lời mở đầu
Sự phát triển của khoa học kỹ thuật ngày càng góp phần nâng cao năng suất lao động đặc biệt là sự ra đời và phát triển của công nghệ mới nhằm tạo ra sự tự động hoá sự tiện lợi trong xã hội cũng như trong công nghiệp.
Với phần ứng dụng của vi điều khiển đã tạo lên một nền công nghiệp tự động hoá phát triển mạnh mẽ và rực rỡ như ngày nay Được ứng dụng trên các thiết bị điện tử dân dụng, trong công nghiệp sản xuất, hay trên những Robot Với những ứng dụng to lớn ấy đòi hỏi chúng ta luôn tìm cách phát triển làm chủ công nghệ để ứng dụng vào thực tế mang lại hiệu quả và tính chính xác cao.
Với tư cách là những sinh viên, những thế hệ đi sau được kế thừa những thành quả công nghệ tiên tiến, với mong muốn luôn phát triển những thành quả công nghệ đó để góp phần đưa khoa khoa học kỹ thuật vào phục vụ đời sống của con người Em đã tìm hiểu và thực hiện
đề tài “máy phát xung hiển thị số dùng XR-2206”.
Nội dung báo cáo gồm : I Tìm hiểu về các linh kiện
II Thiết kế mạch in III Lập trình cho vi điều khiển
IV Tổng kết báo cáo
Em thực hiện đề tài này, vì thời gian có hạn vẫn còn nhiều thiếu sót mong các thầy cô giáo đóng góp ý kiến để sản phẩm của này được hoàn thiện hơn !
Trang 3NỘI DUNG BÁO CÁO
I Tìm hiểu về các linh kiện
A IC 89S52
1 Giới thiệu chung về 89S52
IC 89S52 là phiên bản 8051 có ROM trên chip ở dạng bộ nhớ Flash Phiên bản này là lý tưởng với những phát triển nhanh vì bộ nhớ Flash có thể xóa trong vài giây Ta gọi IC này là bộ vi điều khiển vì trong chúng chứa ROM, RAM, các cổng nối tiếp và song song 89S52 không được sử dụng trong máy tính nhưng được sử dụng rộng rãi trong công nghiệp và trong sản phẩm máy móc tiêu dùng
Cùng với họ 89S52 có một số vi điều khiển khác Về cơ bản chúng đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ dữ liệu và một số Timer Sự khác nhau đó được mô tả bằng bảng dưới đây:
Bảng 1 Giới thiệu một số IC họ 8051 2.Cấu trúc của IC 89S52:
Trang 4Trung tâm của 89S52 vẫn là vi xử lý trung tâm (CPU) Để kích thích cho toàn bộ hệ thống hoạt động, 89S52 có bộ tạo dao động nội với thạch anh được ghép từ bên ngoài với tần số khoảng từ vài Mhz đến 24 Mhz Liên kết các phần tử với nhau là hệ thống BUS nội, gồm có BUS dữ liệu, BUS địa chỉ và BUS điều khiển 89S52 có 8K ROM, 256 bytes RAM và một số thanh ghi bộ nhớ… Nó giao tiếp với bên ngoài qua 3 cổng song song và một cổng nối tiếp có thể thu, phát dữ liệu nối tiếp với tốc độ lập trình được Hai bộ định thời 16 bit của 89S52 còn có 2 ngắt ngoài cho phép nó đáp ứng
và xử lý điều kiện bên ngoài theo cách ngắt quãng, rất hiệu quả trong các ứng dụng điều khiển Thông qua các chân điều khiển và các cổng song song 89S52 có thể mở rộng bộ nhớ ngoài lên đến 64Kbs dữ liệu
Sau đây là sơ đồ khối vi điều khiển:
Hình 1 Sơ đồ khối Vi điều khiển họ 89S52
3 Sơ lược về các chân IC 89S52:
Trang 5IC 89S52 có 40 chân Có đến 32 chân làm nhiệm vụ xuất nhập, truyền dữ liệu Các chân phục vụ ngắt, các chân Timer, trong đó 24 chân làm 2 nhiệm vụ khác nhau Mỗi chân có thể là đường xuất nhập, đường điều khiển hoặc là một phần của địa chỉ hay dữ liệu Thiết kế thường có bộ nhớ ngoài hay các thiết bị ngoại vi sử dụng những Port để xuất nhập dữ liệu Tám đường trong mỗi Port được sử dụng như một dơn vị giao tiếp song song như máy in, bộ biến đổi tương tự số… Hoặc mỗi đường cũng có thể hoạt động độc lập trong giao tiếp với các thiết bị đơn bit khác như: transistor, LED, switch….
Sau đây là hình dạng sơ đồ của IC 89S52:
Hình 2 Hình dạng sơ đồ IC 89S52
4 Chức năng các chân IC 89S52:
Trang 6Sau đây là phần giới thiệu chức năng các chân , các Port tương ứng, chân PSEN, chân ALE, chân REST…
a Port 0
Port 0 là cổng song song dùng cho 2 mục đích, nó là các chân từ 32 Trong những thiết kế nhỏ nó được dùng trong các cổng xuất nhập bình thường Ở những thiết kế có sử dụng bộ nhớ ngoài, nó vừa là Bus dữ liệu vừa là bytes thấp của Bus địa chỉ Nó còn được dùng chứa những bytes mã khi nạp ROM nội
b Port 1
Port 1 dành cho cổng xuất nhập và chỉ dành cho mục đích này mà thôi Nó dùng để giao tiếp với các thiết bị ngoại vi theo từng bit hoặc bytes Port 1 chiếm các chân từ 1 đến 8
c Port 2
Port 2 (chân 21÷ 28) là Port có 2 chưc năng Ngoài mục đích dành cho xuất nhập thông thường nó còn dùng làm bytes cao cho các địa chỉ bộ nhớ ngoài
d PSEN (cho phép nạp chương trình)
89S52 có 4 chân tín hiệu điều khiển PSENT là tín hiệu điều khiển được xuất ra ở chân 29 Tín hiệu điều khiển này cho phép lập trình ở bộ nhớ ngoài và thường được nối với các chân OE của EPROM để đọc mã lệnh từ
bộ nhớ ngoài vào thanh ghi đệm của 89S52 Nó xuống mức thấp nhất trong khi đọc lệnh Mã lệnh đọc từ EPROM, qua Bus dữ liệu, được chốt vào thanh ghi của 89S52 Khi thi hành chương trình từ ROM nội PSEN được giữ ở mức cao (trạng thái không tác động)
e EA (truy xuất vùng nhớ ngoài)
Trang 7EA là một tín hiệu vào có thể ở mức cao hay thấp Nếu ở mức cao 89S52 thi hành chương trình ở ROM nội, 4K/8K chương trình Nếu ở mức thấp, chương trình chỉ được thi hành ở bộ nhớ ngoài Đối với 80431/ 8231
EA phải được giữ ở mức thấp vì chúng không có ROM nội EA cũng chính
là chân nhận điện áp mức cao để nạp EPROM nội
f ALE ( cho phép chốt địa chỉ)
ALE là tín hiệu được xuất ra ở chân 20, rất quen thuộc với những ai
đã tùng làm việc với vi xử lý 8085, 8086 của Intel 89S52 dùng ALE để phân kênh cho từng Bus địa chỉ và Bus dữ liệu Khi Port 0 được dùng làm Bus dữ liệu và bytes thấp của Bus địa chỉ - ALE là tín hiệu dùng để chốt địa chỉ vào thanh ghi chốt bên ngoài trong nửa đầu của một chu kỳ máy Sau đó Port 0 sẵn sàng để truy xuất dữ liệu trong nửa chu kỳ còn lại
Xung ALE có tần số bằng 1/6 lần tần số bộ dao động nội và có thể dùng như một xung clock cho mục đích nào đó khi hệ thống không làm việc Nếu tần số của 89S52 là 12MHz thì tần số xung ALE là 2MHz Một xung ALE bị mất khi có một lệnh MOVX được thi hành
g Ngõ vào dao động nội
Ngõ vào đao động nội được mô tả như dưới hình hai, có một thạch anh được nối vào chân 19 (XTAL1) và 18 (XTAL2) Có thể mắc thêm tụ để
ổn định dao động Thạch anh 12MHz thường dùng cho họ IC MCs-51, trừ
IC 80C31BH có thể dùng thạch anh lên đến 16MHz Tuy nhiên, không nhất thiết phải dùng thạch anh mà ta có thể dùng mạch dao động TTL tạo xung Clock đưa vào chân XTAL1 và lấy đảo của nó đưa vào XTAL2
h RST (RESET)
Ngõ vào chân RST (chân 9) là chân master reset của 89S52 Khi nó ở mức cao nhất (trong khoảng ít nhất 2 chu kỳ máy ) các thanh ghi nội được nạp với giá trị tương ứng theo thứ tự khởi động hệ thống
Trang 8Nhận dữ liệuPhát dữ liệuNgắt ngoài 0Ngắt ngoài 1Ngõ vào Timer/couter 0Ngõ vào Timer/ couter 1Đọc dữ liệu từ bộ nhớ ngoàiĐọc dữ liệu vào bộ nhớ ngoàiNgõ vào của Timer/ couter
Bảng 2 Giới thiệu một số chân IC họ 8951
5 Các thanh ghi có chức năng đặc biệt
Các thanh ghi nội của 89S52 chiếm một phần của vùng nhớ nội, vì vậy mỗi thanh ghi đều có một địa chỉ Các thanh ghi chức năng (FSRs) trong vùng nhớ cao từ 80H đến FFH Lưu ý có một số bytes trong vùng này không được định nghĩa Chỉ có 21 địa chỉ thanh ghi chức năng được định nghĩa (26 địa chỉ đối với 8052/8032)
Trang 9a Các thanh ghi chương trình
b Thanh ghi B
c Con trỏ ngăn sắp xếp
d Con trỏ dữ liệu
e Các thanh ghi Port
f Các thanh ghi bộ định thời
g Các thanh ghi cổng nối tiếp
Các chân cho phép giao tiếp với bộ nhớ ngoài RD, WR, PSEN, OE…
- Loại hiển thị đồ họa (Grafic LCD) đen trắng hoặc màu, gồm các kích thước 1.47 inch (128x128 điểm ảnh) 1,8 inch (128x160 điểm ảnh), 2 inch (176x220 điểm ảnh), 2,2 inch (240x320 điểm ảnh), 2,4 inch (240x320 điểm ảnh), 3,5 inch (320x240 điểm ảnh), 4,3
Trang 10inch (480x272 điểm ảnh ), 7 inch (800x480 điểm ảnh), 8 inch (800x600 điểm ảnh) Được dùng nhiều trong điện thoại di động, máy ảnh số, camera…
10 DB3 I/O Các bit dữ liệu
11 DB4 I/O Các bit dữ liệu
12 DB5 I/O Các bit dữ liệu
13 DB6 I/O Các bit dữ liệu
Trang 1114 DB7 I/O Các bit dữ liệu
Bảng 3 Các chân của LCD
a Chân Vcc, Vss và Vee
Cấp dương nguồn +5V và đất tương ứng thì Vee được dùng để điều khiển độ tương phản của LCD
b Chân chọn thanh ghi RS (Register select).
Có hai thanh ghi rất quan trọng bên trong LCD, chân RS được dùng
để chọn các thanh ghi này như sau: Nếu RS = 0 thì thanh ghi mã lệnh được chọn để cho phép người dùng gửi đến một lệnh như xóa màn hình, con trỏ
về đầu dòng… Nếu RS = 1 thì thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ liệu cần hiển thị trên LCD
c Chân đọc/ghi(R/W).
Đầu đọc/ghi cho phép người dùng ghi thông tin trên LCD Khi R/W =
0 thì ghi, R/W = 1 thì đọc
d Chân cho phép E(Enable)
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ liệu của nó, khi dữ liệu được cấp đến chân đữ liệu thì một mức xung từ cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân chốt dữ liệu Xung này phải rộng tối thiểu 450ns
e Chân D0- D7.
Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trên LCD
Trang 12Để hiện thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến f và các con số từ 0 đến 9 đến các chân này khi RS = 1.
Cũng có các mã lệnh mà có thể gửi đến LCD để xóa màn hình hoặc đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ
Chúng ta cũng dùng RS = 0 để kiểm tra bit cờ bận để xem LCD có sẵn sàng nhận thông tin hay không Cờ bận là D7 và có thể được đọc khi R/W = 1 và RS = 0 như sau:
Nếu R/W = 1, RS = 0 khi D7 = 1(cờ bận bằng 1) thì LCD bận bởi cấc công việc bên trong và sẽ không nhận bất kỳ thông tin mới nào Khi D7 = 0 thì LCD sẵn sàng nhận thông tin mới Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào lên LCD
Mã HEX Lệnh đến thanh ghi của LCD
1 Xóa màn hình hiển thị
4 Giảm con trỏ (Con trỏ dịch sang trái)
6 Tăng con trỏ (Con trỏ dịch sang phải)
5 Dịch hiển thị sang phải
7 Dịch hiển thị sang trái
8 Tắt con trỏ, tắt hiển thị
A Tắt hiển thị bật con trỏ
C Bật hiển thị, tắt con trỏ
E Bật hiển thị, nhấp nháy con trỏ
F Tăt con trỏ, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch vị trí con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái
1C Dịch toàn bộ hiển thị sang phải
80 Ép con trỏ về đầu dòng thứ nhất
C0 Ép con trỏ về đầu dòng thứ hai
38 Hai dòng và ma trận 5 x7
Bảng 4 các mã lệnh LCD
Trang 13C IC tạo dao động XR-2206
XR-2206 là IC có khả năng tạo ra sóng sin có chất lượng cao,
ngoài ra nó còn tạo ra các loại sóng khác như : sóng vuông, tam giác, răng cưa hay dạng xung nén Ở đầu ra chúng ta có thể điều chỉnh được biên độ và tần số bằng cách điều chỉnh tụ điện và điện trở Dải tần số có thể tạo ra từ 0,01Hz đến hơn 1MHz
Hình 4 Sơ đồ cấu trúc IC XR-2206
Trang 14Hình 5 Sơ đồ chân IC XR-2206
Trang 15Chân Ký hiệu Loại Mô tả
1 AMSI I Tín hiệu điều khiển biên độ
2 STO O Đầu ra sóng Sin/Tam giác
5 TC1 I Tụ đầu vào định thời 1
6 TC2 I Tụ đầu vào định thời 2
7 TR1 O Điện trở đầu vào định thời 1
8 TR2 O Điện trở đầu vào định thời 2
9 FSKI I Đầu vào đánh tín hiệu dịch tần
10 BIAS O Điện áp tham chiếu
13 WAVEA1 I Đầu vào điều chỉnh dạng sóng 1
14 WAVEA2 I Đầu vào điều chỉnh dạng sóng 2
15 SYMA1 I Đầu vào cân chỉnh 1
16 SYMA2 I Đầu vào cân chỉnh 2
Bảng 5 Chức năng các chân của IC XR-2206
Trang 16II Thiết kế mạch in
Qua tìm hiểu cấu trúc, chức năng của các linh kiện và tham khảo thầy
cô giáo em đã hoàn thành mạch in Mạch in được thiết kế trên phần mềm chuyên dụng Orcad 10.5
1 Bộ nguồn.
Bộ nguồn dùng IC ổn áp 7805 và 7812 để tạo ra 2 nguồn, 5V cung cấp cho vi điều khiển và LCD, còn nguồn 12V cung cấp cho bộ tạo xung dùng XR-2206
Hình 6 Bộ nguồn
2 Bộ tạo dao xung.
Bộ tạo xung này có thể phát ra 3 loại xung gồm : xung Sin/tam giác, xung vuông Tần số được điều chỉnh bằng tụ và điện trở:
F = 1/RCNhư vậy với VR = 100K, 3 tụ tương ứng với 3 dải tần số khác nhau :
C1 = 1uF -> F = 10Hz - 1KHz
C2 = 10nF -> F = 1KHz-100KHz
C3 = 1nF -> F = 100KHz-1MHz
Trang 17Hình 7 Bộ phát xung.
3 Bộ hiển thị
Bộ hiển thị dùng IC 89S52 được điều khiển bằng code lập trình trên phần mềm Keil C Tần số sau khi được đưa vào vi điều khiển sẽ được chuyển đổi sang mã LCD để hiển thị lên LCD 16x2
Trang 18Hình 8 Bộ hiển thị dùng VDK
Trang 19III Lập trình cho vi điều khiển
1 Lưu đồ thuật toán tính tần số:
Hình 6 Lưu đồ thuật toán tính tần số
2 timer cùng dừng
f = (10^6/t)*số sự kiện
f vào
Trang 202 Lưu đồ thuật toán hiển thị :
Bắt đầu
Đưa F vào đo
Đo tần sốF=?
Ngắt
Đúng: Hiển thị Sai: Hiển thị
Trang 213 Lập trình.
Code được lập trình bằng phần mềm Keil C:
Code chỉ đo được tần số 10Hz – 60KHz:
void tre(unsigned long int t)
{
Trang 22unsigned long int i;
Trang 24sprintf(&chuoi[0],"F = %0.1f Hz ",f);
} else
{ f=n/1000;
if (f>=1&f<=60) {
dieu_khien(0xc0);
sprintf(&chuoi[0],"F = %0.1f KHz ",f); }
Trang 25{ dieu_khien(0x01);
dieu_khien(0x80);
ghi_chuoi("F Khong Xac Dinh "); }
} ghi_chuoi(&chuoi[0]);
dem=0;
TH1 = TL1 = -100; TH0 = TL0 = 0; TR1 = TR0 = 1; while(dem<10000); TR1 = TR0 =0;
n = (TH0*256+TL0);
ketqua();
} }
void main(void)
Trang 26IE=0x89 ; tre30ms();
Trang 27IV Tổng Kết Báo Cáo
1 Ưu Nhược điểm
- Mạch tạo ra sóng Sin chất lượng cao, ngoài ra còn tạo ra được sóng
vuông, tam giác vì vậy nó được ứng dụng rộng rãi trong lĩnh vực điện-điện tử
- IC XR 2206 có giá rất cao nên còn hạn chế trong việc sử dụng
- Do linh kiện có sai số rất cao, cộng với việc làm mạch in bằng cách
thủ công nên chất lượng vẫn chưa đảm bảo
2 Ứng dụng
Mạch tạo ra sóng Sin có chất lượng cao nên đáp ứng được một số
ứng dụng như làm nguồn xung trong bộ Nghịch lưu chất lượng cao, máy phát xung trong các phòng thực hành hay phòng thí nghiệm,…
3 Hướng phát triển
Để phát huy hết khả năng của các linh kiện có trong mạch chúng ta cần tích hợp thêm tính năng hiển thị biên độ song song với tần số, xây dựng thuật toán hợp lý để hiển thị chính xác giá trị của xung Chọn linh kiện có chất lượng cao ổn định để làm mạch sẽ tăng chất lượng và độ ổn định của xung phát ra
-oo0 Ω
Trang 280oo -Tài liệu tham khảo :
- Giáo trình vi điều khiển