想做一个基于51单片机按键计数用LCD1602显示的编程0-99

想做一个基于51单片机按键计数用LCD1602显示的编程0-99,第1张

加上这些东西,将显示语句换成1602_display(i)即可,

当然你可以将其改为只显示2个数字

sbit rw=P1^4

sbit rs=P1^3

sbit lcden=P1^5

#define db P2

void write_com(uchar com)//液晶屏写命令

{

db=com

rs=0

rw = 0

lcden=0

Delay1ms(12)

lcden=1

Delay1ms(12)

lcden=0

}

void write_date(uchar date)//液晶屏写数据

{

db=date

rs=1

rw = 0

lcden=0

Delay1ms(12)

lcden=1

Delay1ms(12)

lcden=0

}

void init2()//液晶屏初始化

{

rw=0

write_com(0x38)

Delay1ms(12)

write_com(0x0f)

Delay1ms(12)

write_com(0x06)

Delay1ms(12)

write_com(0x01)

Delay1ms(12)

}

void 1602_display(uchar temp) //液晶显示一个8 位二进制数

{

uchar A1,A2,A3

A1=temp/100//分离百位、十位、个位

A2=temp/10%10

A3=A2t%10

write_com(0x80)//第1行,第1字

write_date(A1+0x30)

Delay1ms(1)

write_date( A2+0x30)

Delay1ms(1)

write_date(A3+0x30)

Delay1ms(1)

}

我才学C。你说的我就能帮你搞个加减乘除运算了。以下是代码。#include<stdio.h>

main()

{

int i=1,flag=0 float a,b,cchar v

printf("输入数字完成运算")

scanf("%f%c%f",&a,&v,&b)

while(v!='#')

{ switch(v)

{ case '+':c=a+bbreak

case '-':c=a-bbreak

case '*':c=a*bbreak

case '/':

if(b==0) flag=1

else c=a/bbreak

default: flag=2

}

if(flag==0)

{

printf("%f%c%f=%f\n",a,v,b,c)

i++

}

if(flag==1) printf("shucuole")

if(flag==2) printf("zifucuole")

printf("jixushuchu")

scanf("%f%c%f",&a,&v,&b)

}

}我是个新手。但可以保证代码的正确


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11950677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存