LCD16X2 , ADC and L293D to ATMEL8051
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
#include <reg51.h>
sbit E=P1^0;
sbit RW=P1^1;
sbit RS=P1^2;
sbit DB7=P1^7;
sbit DB6=P1^6;
sbit DB5=P1^5;
sbit DB4=P1^4;
unsigned int i,j,k;
void enviar(void);
void LCD_ini (void);
void DEDIFICACION(char num);
void Delay_PRO(unsigned int p,unsigned int q);
void main()
{
RW=0;
LCD_ini();
RS=1;
/* DB7=0;DB6=1;DB5=0;DB4=0;
enviar();
DB7=0;DB6=1;DB5=0;DB4=0;
enviar(); */
for(j=0;j<10;j++){
Delay_PRO(60000,1);
DEDIFICACION(j);
}
Delay_PRO(60000,1);
RS=0;
DB7=0;DB6=0;DB5=0;DB4=0;
enviar();
DB7=0;DB6=0;DB5=0;DB4=1;
enviar();
// RS=1;
}
void enviar(void){
E=1;
for(i=0;i<2500;i++);
E=0;
}
void LCD_ini (void){
RS=0;
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=0;DB5=1;DB4=0;
enviar();
DB7=0;DB6=0;DB5=1;DB4=0;
enviar();
DB7=1;DB6=0;DB5=0;DB4=0;
enviar();
DB7=0;DB6=0;DB5=0;DB4=0;
enviar();
DB7=1;DB6=1;DB5=0;DB4=0;
enviar();
DB7=0;DB6=0;DB5=0;DB4=0;
enviar();
DB7=0;DB6=0;DB5=0;DB4=1;
enviar();
}
void DEDIFICACION(unsigned char num){
if (num==0){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=0;DB5=0;DB4=0;
enviar();
}
if (num==1){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=0;DB5=0;DB4=1;
enviar();
}
if (num==2){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=0;DB5=1;DB4=0;
enviar();
}
if (num==3){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
}
if (num==4){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=1;DB5=0;DB4=0;
enviar();
}
if (num==5){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=1;DB5=0;DB4=1;
enviar();
}
if (num==6){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=1;DB5=1;DB4=0;
enviar();
}
if (num==7){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=0;DB6=1;DB5=1;DB4=1;
enviar();
}
if (num==8){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=1;DB6=0;DB5=0;DB4=0;
enviar();
}
if (num==9){
DB7=0;DB6=0;DB5=1;DB4=1;
enviar();
DB7=1;DB6=0;DB5=0;DB4=1;
enviar();
}
}
void Delay_PRO(unsigned int p,unsigned int q){
for(i=0;i<p;i++){
for(k=0;k<q;k++);
}
}
所有资料51hei提供下载:
KEIL.rar
(23.4 KB, 下载次数: 4)
FULL.rar
(90 KB, 下载次数: 3)
|