標(biāo)題:
Atmega64 LCD1602+proteus仿真程序
[打印本頁(yè)]
作者:
一棵樹(shù)110
時(shí)間:
2019-3-29 11:23
標(biāo)題:
Atmega64 LCD1602+proteus仿真程序
單片機(jī)用的是AVR系列的Atmega64 LCD1602源程序+proteus仿真
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(9.98 KB, 下載次數(shù): 102)
下載附件
2019-3-29 17:17 上傳
單片機(jī)源程序如下:
#include <iom64v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define RS_H PORTE|=BV(0)
#define RS_L PORTE&=~BV(0)
#define RW_H PORTE|=BV(1)
#define RW_L PORTE&=~BV(1)
#define EN_H PORTE|=BV(2)
#define EN_L PORTE&=~BV(2)
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
void write_com(uchar com) //寫(xiě)命令函數(shù)
{
RS_L; //RS置低,寫(xiě)指令
RW_L; //RW置低,寫(xiě)操作
PORTD=com;
delay(1);
EN_H; //使能端拉高
delay(1);
EN_L; //使能端拉低
}
void write_dat(uchar dat) //寫(xiě)數(shù)據(jù)函數(shù)
{
RS_H;
RW_L;
PORTD=dat;
delay(1);
EN_H;
delay(1);
EN_L;
}
void Lcd1602_init()
{
DDRD=0XFF;
DDRE|=BV(0)|BV(1)|BV(2);
EN_L;
write_com(0X38);
delay(1);
write_com(0X01);
delay(1);
write_com(0X06);
delay(1);
write_com(0X0c);
delay(1);
}
void Lcd1602_Display(uchar addr,uchar num,uchar dat)
{
write_com(addr+num);
write_dat(dat);
}
void main()
{
uchar i;
Lcd1602_init();
//write_com(0X80+n); n=0,1,2...15 第一行顯示
//write_com(0x80+0x40+n); n=0,1,2...15 第二行顯示
Lcd1602_Display(0x80,0,'5');
Lcd1602_Display(0x80+0x40,0,'5');
}
復(fù)制代碼
所有資料51hei提供下載:
LCD1602.zip
(72.6 KB, 下載次數(shù): 62)
2019-3-29 11:22 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
1233rdgdf
時(shí)間:
2019-11-14 08:52
太好了
作者:
zhczlzhang
時(shí)間:
2024-12-7 09:06
突然要做這種項(xiàng)目,愁死了。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1