當前位置:編程學習大全網 - 編程語言 - 單片機新手怎麽開始獨自編程,想練壹個lcd1602,用protues仿真,

單片機新手怎麽開始獨自編程,想練壹個lcd1602,用protues仿真,

/view/5881209.htm

RS?BIT?P3.0 ?//重命名四個IO口

RW?BIT?P3.1

E?BIT?P3.2

BF?BIT?P2.7 ?//D0~D7接在P2口

ACALL?CSH ?//調用初始化函數

MOV?DPTR,#YH?//調用數組YH

ACALL?XS ?//調用顯示函數

MOV?A,#0C0H ?//定義光標為第二行第壹位

ACALL?ML ?//調用命令函數

MOV?DPTR,#EH?//調用數組EH

ACALL?XS ?//調用顯示函數

AJMP?$ ?//原地循環

XS: CLR?A ?//清零累加器

MOVC?A,@A+DPTR//把數組指針指向的值傳給數據函數

ACALL?SJ ?//調用數據函數

INC?DPTR ?//數組指針加壹

CJNE?A,#'$',XS//檢測數組是否到達結尾,若到結尾則進行下壹句,否則調用顯示函數

RET ?//返回調用處

T:?MOV?R7,#1 ?//預置數為1,準備延時

DJNZ?R7,$ ?//循環R7-1直到為0

RET ?//返回調用處

ZT:?CLR?RS ?//置RS為低電平

SETB?RW ?//置RW為高電平

L0:?ACALL?T ?//調用延時函數

SETB?E ?//置E為高電平

ACALL?T ?//調用延時函數

MOV?C,BF ?//把BF傳給標誌位C

CLR?E ?//置E為低電平

JC?L0 ?//檢測標誌位C是否為零,若為零進行下壹句,否則調用查狀態函數

CLR?RW ?//置RW為低電平

RET ?//返回調用處

ML:?ACALL?ZT ?//調用查狀態函數

SETB?E ?//置E為高電平

MOV?P2,A ?//把命令傳給P2口

ACALL?T ?//調用延時函數

CLR?E ?//置RW為低電平

RET ?//返回調用處

CSH:MOV?A,#38H ?//設8位數據線,雙行,5*7點陣,

ACALL?ML ?//調用命令函數

MOV?A,#0CH ?//開顯示,不顯示光標

ACALL?ML ?//調用命令函數

MOV?A,#06H ?//地址自加,屏幕不移動

ACALL?ML ?//調用命令函數

MOV?A,#80H ?//定位光標為第壹行第壹位

ACALL?ML ?//調用命令函數

RET ?//返回調用處

SJ:?ACALL?ZT ?//調用查狀態函數

SETB?RS ?//置RS為高電平

SETB?E ?//置E為高電平

MOV?P2,A ?//把數據傳給P2口

ACALL?T ?//調用延時函數

CLR?E ?//置RW為低電平

RET ?//返回調用處

YH:?DB?"123456789CHENGUI$"//YH數組

EH:?DB?"ABCDEFGHIJKLMNOP$"//EH數組

END ?//程序結束

sbit?rs=0xb0;

sbit?rw=0xb1;

sbit?e=0xb2;

sbit?bf=0xa7;

sfr?P2=0xa0;

unsigned?char?code?yh[]="123456789chengui0",//第壹行要顯示的

?eh[]="abcdefghijklmnop0";//第壹行要顯示的

void?t()//延時函數

{

unsigned?char?x=1;

while(x--);

}

void?zt()//查LCD狀態函數

{

bit?i;

rw=1;

rs=0;

do

{

t();

e=1;

t();

i=bf;

e=0;

}

while(bf!=0);

rw=0;

}

void?ml(unsigned?char?x)//送命令函數

{

zt();

e=1;

P2=x;

t();

e=0;}

void?csh()//初始化函數

{

ml(0x28);

ml(0x0c);

ml(0x06);

ml(0x80);

}

void?sj(unsigned?char?x)//送數據函數

{

zt();

rs=1;

e=1;

P2=x;

t();

e=0;

}

void?main()//主函數

{

unsigned?char?i;

csh();

while(yh[i]!='0')

{

sj(yh[i]);

i++;

}

ml(0xc0);

i=0;

while(eh[i]!='0')

{

sj(eh[i]);

i++;

while(1);

}

}

  • 上一篇:Excel在會計應用中的缺點和改進方法
  • 下一篇:計算機發展至今,計算機語言術語有多少個?
  • copyright 2024編程學習大全網