Khối xử lí bao gồm Vi Điều Khiển PIC 16F877A giữ nhiệm vụ điều khiểnchính, nhận dữ liệu từ máy vi tính chuyển xuống ,xử lí, lưu trữ,và xuất dữ liệu racác port điều khiển hiển thị led ma
Trang 1D 1
0
I C 1 L M 7 8 0 8 1
Nhiệm vụ của khối nguồn:
Cung cấp đủ nguồn cho mạch hoạt động
Trong mạch sử dụng cầu diode để chỉnh lưu nắn điện xoay chiều thành mộtchiều.Sau đó dùng IC ổn áp 7805 và 7808 để ổn định điện áp cung cấp cho mạchhoạt động.Các tụ có nhiệm vụ bù điện áp.Led chỉ thị nguồn đã được cấp
1 1 1
2 5
2 1 2
Trang 2Khối xử lí bao gồm Vi Điều Khiển PIC 16F877A giữ nhiệm vụ điều khiểnchính, nhận dữ liệu từ máy vi tính chuyển xuống ,xử lí, lưu trữ,và xuất dữ liệu racác port điều khiển hiển thị led ma trận.Đây là phần tử chính trong mạch Nó chứatrong ROM phần mềm điều khiển bao gồm việc giải mã ký tự tù ASCII để đưa rabảng Led, chứa bộ font cho bảng Led mã hóa cho chữ cái và các số, kí tự đặc biệtkhác Ngoài ra còn chứa phần mềm giao tiếp máy tính cho việc cập nhật dữ liệu
Port D được sử dụng để xuất dữ liệu ra khối hiển thị, các tín hiệu này sẽtruyền xuống IC ULN2803 sau đó được khuếch đại bởi TIP127 xuất ra Led
Port A (RA),RA1) và Port D được dùng để truy xuất các địa chỉ ô nhớ của Ram6264
Port E (RE1,RE2) dùng để điều khiển việc đọc hay ghi lên Ram 6264 thôngqua IC chốt 74HC573
Dựa vào bảng trạng thái ta nhận thấy dữ liệu mới chỉ được phép truyền qua
IC khi cả hai chân điều khiển (LE và OE) ở mức logic thích hợp: LE ở mức logiccao, OE ở mức logic thấp Khi cả hai chân điều khiển ở trạng thái này thì dữ liệu ởngõ vào sẽ được đưa vào bên trong IC (truyền qua các Flip-Flop) và đưa thẳng rangoài thông qua các cổng đệm ngõ ra 3 trạng thái
Khi chân OE ở mức logic thấp (cho phép) mà chân LE cũng ở mức logicthấp (cấm) thì dữ liệu ở ngõ ra của IC là dữ liệu cũ (vừa mới được truyền qua IC).Lúc này dữ liệu mới ở ngõ vào sẽ không được phép nhập vào IC
Ngược lại, khi chân OE ở mức logic cao thì ngõ ra của IC sẽ ở trạng tháitổng trở cao, bất chấp trạng thái logic của các ngõ vào còn lại Mặc dù ngõ ra ởtrạng thái tổng trở cao nhưng dữ liệu ở ngõ vào (nếu có) vẫn được phép đưa vào
Trang 3IC (đưa đến ngõ ra của các Flip-Flop ở bên trong IC) Dữ liệu này sẽ được phéptruyền đến ngõ ra khi chân OE về lại mức logic thấp.
Khi cả hai chân điều khiển đều ở trạng thái cấm (chân OE ở mức logic cao,chân LE ở mức logic thấp) thì ngõ ra sẽ ở trạng thái tổng trở cao và ngõ vào sẽkhông được phép nhập dữ liệu mớivào Như vậy, ở trạng thái này thì IC hoàn toànkhông giao tiếp với bất kỳ linh kiện nào khác ở cả ngõ vào và ngõ ra
SRAM 6264
Trang 4Việc truy xuất Ram thể hiệ thông qua bảng chân trị
Trang 53.Khối giao tiếp
Nhiệm vụ của khối giao tiếp:
Khi ghép cổng COM máy tính với vi điều khiển hay mạch TTL cần phải có mạchchuyển mức TTL sang 232 và ngược lại Lí do là vi điện áp của cổng COM máytính là mức 15V trong khi mức điện áp tham chiếu tín hiệu vủa vi điều khiển haymạch TTL là 5V Các vi mạch thường dùng là MC1488, MC1489, MAX232,DS275…Loại MAX232 là thông dụng hơn cả vì chỉ cần nguồn 5v
Các giá trị tụ C1,C2, C3,C4 = 1 uF do nh sản xuất đề xuất
4.Khối xuất dữ liệu hàng:
Trang 6Nhiệm vụ của khối là đưa dữ liệu cần hiển thị ra hàng
Các transitor được dùng trong mạch là TIP 127
Bên trong linh kiện này tích hợp 2 transitor mắc darlington nhằm tạo ra hệ sốkhếch đại lớn (hfe=1000)
Trang 7Ngõ vào điều khiển của Trans được mắc với IC ULN2803 làm nhiệm vụ đệm dòngcho TIP127 vì dòng do vi điều khiển không đủ để cấp.IC này nhận tín hiệu trực
tiếp từ vi điều khiển PIC 16f877A
Trang 81 4
1 5
1 6
1 7 3
1 8
1 3
1 2 8
1 2 1 7 2 5
IC trong mạch là 6B595,IC này làm nhiệm vụ quét cột
Trang 94-7 Out0-3 Ngõ ra (cực máng để hở)
Cách điều khiển IC được thể hiện thông qua bảng chân trị
Trước tiên là đưa 1 bit dữ liệu vào chần SDI (serial data in),tạo một cạnh dương ởchân CK để dịch dữ liệu đó vào, quá trình này lặp đi lặp lại cho đến khi toàn bộ dữliệu được dịch vào các IC 6B595(IC tiếp theo cũng sẽ dịch dữ liệu được đưa thôngqua pin SDO (serial data out ) của vi điều khiển trước và bằng cách dùng lệnh lặp
“for” trong lúc lập trình ta sẽ được vòng quét vô tận Đồng thời lúc này pinSTROKE cũng được tác động (vì hai pin STROKE và CK được nối chung vớinhau ) nên dữ liệu lập tức được đưa ra các các cột của led ma trận
Trang 10#use fast_io(e)
#define RW PORTE.F1
#define RD PORTE.F2
#define ALE PORTE.F0
#define SDI PORTC.F0
#define SCL PORTC.F1
#define CLR PORTC.F2
unsigned char i,data;
unsigned int solan,lap,tocdo,add;
unsigned char const mang1[]={
Trang 11// DDRA = 0x00; //Low Address as input
// DirPC = 0xe0; //High Address as input while RD,WR,ALE as output}
//******************
unsigned char ReadRam (unsigned int address) {
Trang 12unsigned char dataram;
Usart_Init(2400); // khoi tao toc do bause
// ghi vao eeprom cua pic dia chi bat dau la 0000h
Trang 13for (tocdo=0;tocdo<40;tocdo++)// dieu chinh toc do chay cua led
{
SDI=1; //cho chhan input cua 6b len muc cao
for(i=0;i<35;i++) //so cot muon hien thi
{
if (Usart_Data_Ready())
{ // If data is received
data = Usart_Read(); // Read the received data
add++; // tang dia chi cua eeprom
SOLAN=0; // cho ma tran chay lai tu dau
EEprom_Write(add,data); //ghi vao eeprom
if (add==256) // so sanh ney bang thi chay lai tu dau {add=0;} //dia chi bang 0000h
}
PORTd = Eeprom_Read(i+solan); //
Delay_us(200); //delay hien thi
CLR=1; //cho chan clr cua 6b595 lenn muc aco dehien thi
portd=0; //tat led chong lem
Delay_us(10); // delay chong lem
Trang 14code visual basic:
Private Sub cmdSEND2_Click()
L = ChieuDai(S1) * 6 'Chieu dai byte truyen tinh luon co dau
L1 = Int(L / 256) 'Chieu dai byte cao
L2 = L - L1 * 256 'Chieu Dai byte thap
MSComm1.Output = Chr$(1)
MSComm1.Output = Chr$(L1)
MSComm1.Output = Chr$(L2)
For i = 1 To Len(S1) Step 1
S(i) = Mid(S1, i, 1) 'ky tu
CodeAscii = Asc(S(i)) 'cho ra so thap phan
Select Case CodeAscii
Case 97
i = i + 1
S(i) = Mid(S1, i, 1) 'ky tu
CodeAscii = Asc(S(i)) 'cho ra so thap phan
Select Case CodeAscii