pos機(jī)開機(jī)密碼怎么輸入字符,簡(jiǎn)單復(fù)制粘貼代碼讓LCD1602顯示字符

 新聞資訊  |   2023-03-16 07:19  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)開機(jī)密碼怎么輸入字符,簡(jiǎn)單復(fù)制粘貼代碼讓LCD1602顯示字符的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)開機(jī)密碼怎么輸入字符的問(wèn)題,今天pos機(jī)之家(m.dsth100338.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來(lái)看下吧!

本文目錄一覽:

1、pos機(jī)開機(jī)密碼怎么輸入字符

pos機(jī)開機(jī)密碼怎么輸入字符

總結(jié)下自己學(xué)習(xí)遇到的情況:1.每天學(xué)習(xí)點(diǎn)少量的新知識(shí)覺得心情愉悅 2.新知識(shí)的量>自己接受的承受范圍,就覺得很糟糕。不知不覺地就有抵觸學(xué)習(xí)的意識(shí),越要強(qiáng)迫自己學(xué),放棄得越快,放棄了,過(guò)一段時(shí)間還想學(xué),但隨著時(shí)間流逝前面知識(shí)忘得差不多了,然后又重新學(xué),周而復(fù)始浪費(fèi)了大量時(shí)間。人最大的敵人還是自己啊,克服壞毛病,永遠(yuǎn)不要放棄,只要堅(jiān)持你有能力做任何你能想象的事情,重拾自我從今天開始做起....

液晶Lcd1602顯示字符

做到只要能顯示字符就行,第一次看驅(qū)動(dòng)文件和原理看的頭蒙,先會(huì)用就行。

LCD1602是一個(gè)有16引腳的字符液晶屏。8個(gè)數(shù)據(jù)引腳(D0-D7)和3個(gè)控制引腳(RS,RW,EN)。其余5個(gè)引腳用于LCD的電源和背光。

屏幕可以顯示2行,每行可以顯示16個(gè)字符。每個(gè)字符由5x8(列x行)像素矩陣組成。

自己遇到的一些問(wèn)題


1._nop()_是intrins頭文件的里單周期空語(yǔ)句,可是實(shí)現(xiàn)極短延時(shí)。nop表示空循環(huán)一個(gè)機(jī)器指令的時(shí)間,一個(gè)nop延時(shí)多少根據(jù)晶振所定,12M中表示1us

1S=1000ms(毫秒)=1000 000us(微妙)。1us(毫秒)=1000ns(納秒)

LCD1602的速度是納秒級(jí)別的,而51單片機(jī)毫秒級(jí)別的,所以基本不需要讀取 忙標(biāo)志,只要微延時(shí)就行了,proteus仿真軟件不支持判忙函數(shù)

void lcd1602CheckBusy()//判忙函數(shù){ DPORT = 0xff;RS=0;RW=1;E=1;while(DPORT&0x80);E=0;}

2.稍微了解下LCD1602常用的一些命令,再看LCD1602初始化代碼不會(huì)這么懵了


常用的LCD1602命令

3.Proteus中學(xué)會(huì)使用終端符號(hào)

兩個(gè)引腳不用連線也能導(dǎo)通方法:兩端要加上終端符號(hào),然后再終端上加上網(wǎng)絡(luò)標(biāo)號(hào),要連在一起的兩個(gè)終端必須有相同的網(wǎng)絡(luò)標(biāo)號(hào)

模塊化編程思想

先學(xué)會(huì)抄作業(yè),了解如何模塊化編程

固定格式條件預(yù)編譯


把LCD1602驅(qū)動(dòng)代碼導(dǎo)入到工程中仿真軟件效果


完整的驅(qū)動(dòng)代碼

delay.h

#ifndef _DELAY_H_#define _DELAY_H_void DelayUs2x(unsigned char t);void delayNms(unsigned char t);#endif

delay.c

void DelayUs2x(unsigned char t){ while(--t);}/*------------------------------------------------ mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值 unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編------------------------------------------------*/void delayNms(unsigned char t){ while(t--) { //大致延時(shí)1mS DelayUs2x(245); DelayUs2x(245); }}

lcd1602.h

#ifndef _LCD1602_H_#define _LCD1602_H_#include<reg51.h>#include<intrins.h>#include "delay.h" //請(qǐng)根據(jù)晶振自行編寫延時(shí)函數(shù)#define DPORT P0 // D0-D7根據(jù)實(shí)際硬件連接修改sbit RS = P1^7; // 根據(jù)實(shí)際硬件連接修改sbit RW = P1^6; // 根據(jù)實(shí)際硬件連接修改sbit E = P1^5; // 根據(jù)實(shí)際硬件連接修改void lcd1602WriteCmd(unsigned char cmd); //寫命令函數(shù)void lcd1602WriteByte(unsigned char dat);//寫數(shù)據(jù)函數(shù)void lcd1602Init(); // 初始化函數(shù)void lcd1602WritePos(unsigned char xPos,unsigned char yPos);void lcd1602WriteChar(unsigned char xPos,unsigned char yPos,unsigned char Dat); // 寫1個(gè)字符void lcd1602WriteString(unsigned char xPos,unsigned char yPos,unsigned char *s); // 寫字符串#endif

lcd1602.c

#include "lcd1602.h"void lcd1602WriteByte(unsigned char dat)//寫數(shù)據(jù)函數(shù){delayNms(5);//判忙函數(shù)不支持proteus,延時(shí)5msRS=1;//將RS引腳設(shè)為高電平,RS = 1(寫數(shù)據(jù)模式)RW=0;//將RW引腳設(shè)為低電平,RW = 0(寫操作模式)DPORT=dat;// 將待寫數(shù)據(jù)送到數(shù)據(jù)端口(D0-D7)E=1; //使能脈沖,LCD鎖存D0至D7處的數(shù)據(jù)并執(zhí)行命令_nop_();//短暫延時(shí)1個(gè)機(jī)器周期1us左右_nop_();E=0; //關(guān)閉使能釋放總線}void lcd1602WriteCmd(unsigned char cmd) //寫命令函數(shù){delayNms(5);//判忙函數(shù)不支持proteus,延時(shí)5msRS=0;//將RS引腳設(shè)為低電平,RS = 0(寫命令模式)RW=0;//將RW引腳設(shè)為低電平,RW = 0(寫操作模式)DPORT=cmd;// 將待寫數(shù)據(jù)送到數(shù)據(jù)端口(D0-D7)E=1; //使能脈沖,LCD鎖存D0至D7處的數(shù)據(jù)并執(zhí)行命令_nop_();// 短暫延時(shí)1個(gè)機(jī)器周期1us左右 _nop_();E=0; //關(guān)閉使能釋放總線} void lcd1602Init() // LCD1602 初始化函數(shù) {delayNms(20); /*LCD1602的上電初始化時(shí)間大約15ms */lcd1602WriteCmd(0x38); /*設(shè)置2行,5x8矩陣,8位模式*/ lcd1602WriteCmd(0x0c); //顯示打開,光標(biāo)關(guān)閉lcd1602WriteCmd(0x06); //數(shù)據(jù)從左到右以遞增順序?qū)懭雔cd1602WriteCmd(0x01);//清屏耗時(shí)比較長(zhǎng)需要2ms左右,別的命令以nm為單位delayNms(5); }// 內(nèi)部函數(shù)用于設(shè)置顯示字符起始坐標(biāo)void lcd1602WritePos(unsigned char xPos,unsigned char yPos) {unsigned char tmp;xPos&=0x0f; // x位置范圍是0~15yPos&=0x01; // y位置范圍是0~1if(yPos==0) // 顯示第一行tmp=xPos; // 第一行字符地址從 0x00 開始elsetmp=xPos+0x40; // 第二行字符地址從 0x40 開始lcd1602WriteCmd(tmp|0x80);//設(shè)置 RAM 寫入的地址}//在指定的行與列顯示指定的字符,xpos:行,ypos:列,c:待顯示字符void lcd1602WriteChar(unsigned char xPos,unsigned char yPos,unsigned char Dat){lcd1602WritePos(xPos,yPos);lcd1602WriteByte(Dat);}// 在液晶上顯示字符串,xpos:行坐標(biāo),ypos:列坐標(biāo),str-字符串指針void lcd1602WriteString(unsigned char xPos,unsigned char yPos,unsigned char *s){unsigned char i=0;lcd1602WritePos(xPos,yPos); // 起始坐標(biāo)while(s[i]){lcd1602WriteByte(s[i]);i++;if (i>=16) break; // 超出16個(gè)字符外的數(shù)據(jù)丟棄}}

main.c

#include<reg51.h>#include"lcd1602.h"void main(){lcd1602Init();lcd1602WriteChar(7,0,'H');lcd1602WriteChar(8,0,'i');lcd1602WriteString(3,1,"2021-03-07");while(1);}

以上就是關(guān)于pos機(jī)開機(jī)密碼怎么輸入字符,簡(jiǎn)單復(fù)制粘貼代碼讓LCD1602顯示字符的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)開機(jī)密碼怎么輸入字符的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://m.dsth100338.com/news/9053.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。