单片机独立按键并让1602显示出来

单片机独立按键并让1602显示出来,第1张

具体要求是什么,可以帮滑禅拍你完成。使用外部中断0,按1次加1并LCD显示

#include "reg51.h"

#include "intrins.h"

typedef unsigned char BYTE

typedef bit BOOL

BYTE Time=0

sbit LCD_RS = P1^2

sbit LCD_RW = P1^1

sbit LCD_EP = P1^3

delay(int ms)

{ /袭肢/ 延时子程序

int i

while(ms--)

{

for(i = 0i<250i++)

{

_nop_()

_nop_()

_nop_()

_nop_()

}

}

}

BOOL lcd_bz()

{ // 测试LCD忙碌状态

BOOL result

LCD_RS = 0

LCD_RW = 1

LCD_EP = 1

_nop_()

_nop_()

_nop_()

_nop_()

result = (BOOL)(P0 &0x80)

LCD_EP = 0

return result

}

lcd_wcmd(BYTE cmd)

{ // 写入指令数据到LCD

while(lcd_bz())

LCD_RS = 0

LCD_RW = 0

LCD_EP = 0

_nop_()

_nop_()

P2 = cmd

_nop_()

_nop_()

_nop_()

_nop_()

LCD_EP = 1

_nop_()

_nop_()

_nop_()

_nop_()

LCD_EP = 0

}

lcd_pos(BYTE pos)

{ //设定显示位置

lcd_wcmd(pos | 0x80)

}

lcd_wdat(BYTE dat)

{ //写入字符显示数据到LCD

while(lcd_bz())

LCD_RS = 1

LCD_RW = 0

LCD_EP = 0

P2 = dat

_nop_()

_nop_()

_nop_()

_nop_()

LCD_EP = 1

_nop_()

_nop_()

_nop_()

_nop_()

LCD_EP = 0

}

lcd_init()

{//LCD初始化设定

lcd_wcmd(0x38) //16*2显示,5*7点阵,8位数据

delay(1)

lcd_wcmd(0x0c) //显示开,关光标

delay(1)

lcd_wcmd(0x06) /信羡/移动光标

delay(1)

lcd_wcmd(0x01) //清除LCD的显示内容

delay(1)

}

main()

{

EX0=1

EA=1

lcd_init() // 初始化LCD

delay(10)

while(1)

{

lcd_wcmd(0x06) //向右移动光标

lcd_pos(0) //设置显示位置为第一行的第1个字符

lcd_wdat(Time/10+0x30)

lcd_wdat(Time%10+0x30)

}

}

void M() interrupt 0

{

while(INT0==0)

Time++

if(Time==100)Time=0

}

1、首先举掘喊我们打散猜开KeilμVision编译器,新建一个工程正野,然后保存在硬盘上的位置。

2、其次导入51单片机的头文件以及LCD1602的头文件。创建一个延时函数,可以传入想要具体延时的时长,其内部实现是由一个二重循环,两个循环的次数相乘积。

3、最后最后在主函数中首先执行LCD1602的初始化函数,首先创建一个无限循环,然后添加两个字符串,这里以两行显示百度经验的网址为例,再进行延时以及使用清屏函数进行刷新。

table=key()//扫描键盘

这table是一个数组吗,这么写就不对了,应该唯旦氏是

table[i]=key()

这函数key()返回数值是多少,是一位数还是几位数?

这行是写数据到液晶屏

writedate(table[j])//液晶屏显示

这里用到了数组了,与前面table=key()不一致了

如果真是数组的话迟差,写到液晶屏的数据需要变成ASCII码,才能显示

应该这样

writedate(table[j]+ox30)/指散/液晶屏显示

但这只适合table[i]=key()是一位数的

要是多位数,还要分别取出个十百千位各位数,并分别转换成ASCII码,再分别写到液晶屏。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存