HVCT_Khoa Điện - Điện tử
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Keywords

Latest topics
» Trang bị điện
Tạo font cho LCD và viết đồng hồ số EmptyWed Sep 24, 2014 8:46 am by vinagreensun

» Chia sẻ source code mạch đếm 0-99 sử dụng 8051 và LED hồng ngoại
Tạo font cho LCD và viết đồng hồ số EmptyMon Mar 24, 2014 2:07 pm by xuantruong1911

» mình đang làm đồ án 1 cần làm mạch khó số điện tử dùng ic số và phải có thể thay đổi password
Tạo font cho LCD và viết đồng hồ số EmptyFri Mar 21, 2014 8:01 pm by saobang

» Chế tạo máy dò kim loại help ?
Tạo font cho LCD và viết đồng hồ số EmptyFri Nov 29, 2013 11:17 am by Thanhtra conan

» mấy bro vào giup em với
Tạo font cho LCD và viết đồng hồ số EmptyWed Nov 27, 2013 9:01 pm by luongthanhvp

» giáo trình plc mitsubishi căn bản và nâng cao
Tạo font cho LCD và viết đồng hồ số EmptyTue Apr 30, 2013 5:55 pm by Admin

» hoc led chay chu
Tạo font cho LCD và viết đồng hồ số EmptyThu Apr 18, 2013 8:05 pm by vuphong

» QUÉT PHÍM MA TRẬN 4X4 HIỂN THỊ RA LED 7 ĐOẠN
Tạo font cho LCD và viết đồng hồ số EmptyThu Apr 18, 2013 7:59 pm by thanhxuan

» cách vẽ mạch in bằng ocard 1 cách đơn giản?
Tạo font cho LCD và viết đồng hồ số EmptyThu Apr 18, 2013 1:09 pm by Admin

April 2024
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
2930     

Calendar Calendar


Tạo font cho LCD và viết đồng hồ số

Go down

Tạo font cho LCD và viết đồng hồ số Empty Tạo font cho LCD và viết đồng hồ số

Bài gửi  thay Khai Tue Jan 15, 2013 9:30 pm

//========================================
// Muốn tạo font cho LCD, hãy hiểu bài này
#include <REGX52.H>
#define LCD_D7 P1_7
#define LCD_D6 P1_6
#define LCD_D5 P1_5
#define LCD_D4 P1_4
#define LCD_RS P1_3
#define LCD_RW P1_2
#define LCD_E P1_1
#include <tvlcd.c>
char gio = 6,phut=11,giay=13,dem1=0;
void ngattimer0() interrupt 1
{
dem1++;
TH0= (-1000/256);
TL0 = (-1000%256);
}
void main()
{
LCD_init();
LCD_gotoxy(1,1);
LCD_string("DIGITAL");
LCD_gotoxy(2,2);
LCD_string("CLOCK");
LCD_bigdata(11,2,11);
TMOD = 1;
TH0= (-1000/256);
TL0 = (-1000%256);
IE = 0x82;
TR0=1;
while (1)
{
if (dem1 == 100)
{
dem1 =0;
giay++;
if (giay ==60)
{
giay =0;
phut++;
if (phut==60)
{
phut =0;
gio++;
if ( gio ==13) gio =0;
}
}
LCD_bigdata(10,1,gio/10);
LCD_bigdata(14,1,gio%10);
LCD_bigdata(13,2,giay/10);
LCD_bigdata(17,2,giay%10);
LCD_bigdata(3,2,phut/10);
LCD_bigdata(7,2,phut%10);
}
}
}
//====================================
//Kèm file này rối biên dịch thì nó mới chịu
//và đặt tên cho trùng với file đã include ở trên: tvlcd.c
void delay(int time){while(time--);}
void LCD_write4bit(bit mode, unsigned char LCD)
{
LCD_RS = mode;
LCD_D7 = (LCD&0x80)? 1:0;
LCD_D6 = (LCD&0x40)? 1:0;
LCD_D5 = (LCD&0x20)? 1:0;
LCD_D4 = (LCD&0x10)? 1:0;
LCD_RW = 0;
LCD_E =1;
delay(1);
LCD_E = 0;
delay(50);
}
void LCD_char(bit mode,unsigned char LCD)
{
LCD_write4bit(mode,LCD);
LCD_write4bit(mode,LCD<<4);

}

void LCD_data(long LCD)
{
char luu[40],dem=0,i,j=3;bit co =0;
if (LCD <0){co=1; LCD = -LCD;}
do{
luu[dem]= LCD%10 +48;
LCD/=10;
dem++;
if ((dem%j ==0)&(LCD!=0)){luu[dem] = 44; dem++;j+=4;}
}while (LCD !=0);
if (co== 1){luu[dem]=45; dem++;}
for (i =dem-1;i>=0; i--) LCD_char(1,luu[i]);
}

void LCD_string(unsigned char *str)
{
while(*str != '\0')
{
LCD_char(1,*str);
str++;
}
}
void LCD_gotoxy(unsigned char x, unsigned char y)
{
const char hang[] = {0x80,0xc0,0x94,0xd4};
LCD_char(0,hang[y-1]+x-1);
}
void LCD_clear()
{
LCD_char(0,0x01); // xoa man hinh
LCD_char(0,0x80); // dau dong 1
}

void LCD_init()
{
const unsigned char code cgram[] = {
31,31,31,31,31,31,30,28,31,31,31,31,31,31,15,7,\
7,15,31,31,31,31,31,31,28,30,31,31,31,31,31,31,\
31,31,31,0,0,0,0,0,0,0,0,0,0,31,31,31,\
31,31,31,0,0,0,31,31,31,31,31,31,31,31,31,31};
char i;
LCD_write4bit(0,0x30);
delay(1000);
LCD_write4bit(0,0x30);
delay(100);
LCD_write4bit(0,0x20); // che do 4 bit
LCD_char(0,0x2c); // hien thi 2 hang , 5x10
LCD_char(0,0x0c); // bat man hinh
LCD_char(0,0x06); // con tro dich phai
LCD_char(0,0x40);
for (i =0;i<64;i++)
{
LCD_char(1,cgram[i]);
}
LCD_clear();
}
// ham su dung font lon ( neu chuong chinh chinh khong sai toi co the xoa di cho nhe )
void LCD_bigdata(unsigned char x, unsigned char y,unsigned char LCD)
{
const unsigned char code number[10][6] ={
2,4,3,1,5,0,
4,3,32,5,7,5,
6,6,3,1,5,5,
6,6,3,5,5,0,
1,5,7,32,32,7,
1,6,6,5,5,0,
2,6,6,1,5,0,
4,4,3,32,32,7,
2,6,3,1,5,0,
2,6,3,32,5,0};
char i;
if (y!=1) y =3;
LCD_gotoxy(x,y);
if ((LCD>=0)&(LCD<10))
{
for (i = 0;i<6;i++)
{
LCD_char(1,number[LCD][i]);
if (i==2)LCD_gotoxy(x,y+1);
}
}
else
{
LCD_char(1,5);
if (LCD ==11){
LCD_gotoxy(x,y+1);
LCD_char(1,4);}
}
}
/*HD: Cài Keil-c cho 8051\Tạo project tên lcd \add file lcd.c\biên dịch sang file lcd.hex\ Vẽ phần cứng như hình vẽ \ Nạp file lcd.hex vào chip\ nhấn nút run...like*/
//Hãy làm cho mình cái đồng hồ treo trong nhà ngày tết
//Muốn đúng giờ thì dùng realtime clock DS1307-chuẫn I2C //hoặc DS12887-CHuẫn song song

//http://www.mediafire.com/?7yxp7ubb7idr8g8
//Phần cứng đây nhé
//Sau khi hiểu được file này thì mới làm bài tập tạo font cho LCD //được... bài "...nhâm nhi ly cafe..."
////////////////////////////////////////////////////////////////
Bài sau hướng dẫn mấy bạn làm đồng hồ thể thao.
Phần cứng:
P1.1 nối E
P1.2 nối RW
P1.3 nối RS
P1.4 ---P1.7 nối D4--D7
Lấy protues ra nối chạy thử sẽ thích cho mà xem

thay Khai

Tổng số bài gửi : 23
Join date : 14/11/2012

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết