BÀI 6: Phần cứng là ghép 8 led đơn vào cổng p1 viết chương trình cho 8 led sáng tần số 1Hz.. Sau đó nhấp nháy với chu kì 1s sáng và 1 giấy tắt Quá dễ rồi,tự làm... unsigned int i,j;... T
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐIỆN – ĐIỆN TỬ
ĐỀ THI
KỸ THUẬT VI XỬ LÝ
HÀ NỘI Tháng 07 năm 2016
Trang 2MỤC LỤC
BÀI 1: 2
BÀI 2: 4
BÀI 3: 6
BÀI 4: 9
BÀI 5: 11
BÀI 6: 13
BÀI 7: 14
BÀI 8: 18
BÀI 9: 22
BÀI 10: 25
BÀI 11: 29
Trang 3BÀI 1: Thiết lập sơ đồ phần cứng kết nối AT89C51 với Led 7 thanh, lập trình để
hiển thị các giá trị từ 0-F với nhịp tăng 0,5s, Khi đếm đến F thì giảm dần đến 0 với nhịp 1s, lặp vô hạn, dùng XTAL= 12MHz
void Delay_ms(unsigned int t)
Trang 5BÀI 2: Xây dựng sơ đồ phần cứng AT89C51 với nút bấm và 1 Led đơn, Lập trình
để mạch có thể tạo xung trên Led với độ rộng có thể thay đổi như sau: Nếu SW=0 thì xung chu kì 10ms, độ rộng 2ms Nếu SW=1 thì xung chu kì 10ms, độ rộng 4,5ms Dùng XTAL= 12MHZ
Trang 7BÀI 3: Tạo xung vuông có chu kì 2ms trên chân P1.7 gửi kí tự "A" đến cổng nối
tiếp , dùng timer 0 để tạo xung baud=19200, XTAL= 11,0592 vẽ = proteus với keilC
Trang 10BÀI 4: Thiết kế sơ đồ phần cứng ghép nối 8 led đơn với cổng P1 của vi xử lý
AT89C51 và 1 phím bấm nối chân P3.2.Viết chương trình quét trạng thái của phím
bấm, khi bấm phím thì sáng 8 led, khi không bấm thì tắt 8 led trên
Trang 12BÀI 5: Hiển thị led 7 thanh tăng dần từ 0-99 với time là 0.5s 1 nhịp nhé,giảm dần
Trang 14BÀI 6: Phần cứng là ghép 8 led đơn vào cổng p1 viết chương trình cho 8 led sáng
tần số 1Hz Sau đó nhấp nháy với chu kì 1s sáng và 1 giấy tắt
Quá dễ rồi,tự làm
Trang 15BÀI 7: Thiết lập sơ đồ phần cứng tạo xung ra với tần số là 1HZ ở chân P3.5 và
hiển thị led 7 đoạn từ 000 đến 999
unsigned int j,count;
void Delay_ms(unsigned int t)
{
Trang 16unsigned int i,j;
Trang 19BÀI 8: Thiết kế ma trận phím 3x3 đánh số từ 1 đến 9, kết hợp với 8 led đơn Khi
ấn phím 1 thì 1 led đơn sáng, ấn phím 2 thì 2 led đơn sáng, … ấn phím 8 thì 8 led đơn sáng; khi ấn phím 9 thì đầu tiên tất cả 8 led đều sáng, sau đó 8 led tắt 1s Tiếp theo dãy 8 led sẽ sáng lần lượt từng led một, lặp lại quá trình sáng từng led một
nhưng lưu sáng Thời gian trễ cho mỗi lần sáng tắt là 1s
Trang 21void Work(unsigned key)
Trang 23BÀI 9: Thiết kế mạch quang báo sử dụng AT89C51 và 3 led ma trận 8x8, hiển thị
tên lớp và tên các thành viên trong nhóm Các chế độ hiển thị có thể tùy ý
Trang 25unsigned char adc_value;
unsigned int temp;
Trang 26BÀI 10: Thiết kế hệ thống thông gió trong đường hầm dùng AT89C51 kết hợp
với: 1 cảm biến nhiệt độ (sử dụng tùy ý), 3 quạt thông gió và 1 LCD để hiển thị nhiệt độ Khi nhiệt độ t<200C thì chỉ có 1 quạt được bật, nhiệt độ 200C<t<290C
thì quạt 1 và quạt 2 được bật, khi nhiệt độ t>300C thì cả 3 quạt đều được bật
CODE:
#include <main.h>
#include " \Lib\Delay.h" /* Hàm Delay 100 ms ,tớ ko viết ra nữa,đến cuối bài viết
tớ sẽ đưa ra cái Libuary của tớ để các cậu viết code cho nhanh.*/
sbit SH_CP = P3^0; // Lần sau tớ sẽ khai báo cái này trong port.h cho gọn
sbit DS = P3^1;
sbit ST_CP = P3^2;
unsigned char code ColCode[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char code RowCode[] = { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
Trang 30BÀI 11: Bài này giống hệt bài 9 chỉ thêm 3 cái quạt thông gió (motor đó).Ở đây
dùng con LM35 với điện áp ngõ ra tuyến tính 10mV / 1℃
CODE:
#include <main.h>
#include <port.h>
#include " \Lib\Delay.h" // Hàm Delay 100ms
#include " \Lib\LCD4.h" // Thư viện LCD 4 bits
#include " \Lib\ADC0804.h" /* Thư viện con ADC0804 gồm cái hàm
ADC0804_Read như ở bài 9 */
#include <stdio.h>
Trang 31void main()
{
unsigned char adc_value;
unsigned int temp;
{ FAN1 = 1;FAN2 = FAN3 = 0;}
else if(temp > 20 && temp <= 29)
{ FAN1 = FAN2 = 1;FAN3 = 0;}