历史上的今天
返回首页

历史上的今天

今天是:2024年11月11日(星期一)

正在发生

2019年11月11日 | Atmega32A驱动LCD1602显示屏

2019-11-11 来源:51hei

对于初学者来说,最烦躁的可能就是调试程序,往往小小一个问题,要找个一个小时,甚至几个小时才能解决,这个程序是刚调试完的,整整九个多小时啊,现在看着挺简单的,没调试好前根本不敢肯能调得好.高手别笑,初学者参考
编程环境Atmel Studio 7.0 和Proteus 8仿真,说明:仿真和真实电路是有点区别的,仿真Proteus 8只能用内部晶振,最大8MHz,我的DIY板是16M,所以实际电路总是比仿真的跑快好多

单片机源程序:

/*

* LCD1602_AVR.h

*

* Created: 2017/3/19 23:07:51

*  Author: lyl


*LCD1602的基本操作时序

        1,读状态,输入:RS=L        RW=H        E=H                        输出:D0~D7=状态字

        2,读数据,输入:RS=H        RW=H        E=H                                输出:D0~D7=数据

        

        2,写指令,输入:RS=L        RW=L        D0~D7=指令码                E=高脉冲                输出:无

        3,写数据,输入:RS=H        RW=L        D0~D7=数据                E=高脉冲                输出:无

*/ 

#define F_CPU 8000000UL

#include        //io端口寄存器配置文件,必须包含

#include       //GCC中的延时函数头文件

#define uchar unsigned char

#define uint unsigned int


#ifndef LCD1602_AVR_H_

#define LCD1602_AVR_H_


#define DataPort PORTC

#define DataPort_DDR DDRC

#define DataPort_PIN PINC

#define CtrPort PORTB

#define CtrPort_DDR DDRB

#define CtrPort_PIN PINB


#define RS 0

#define RW 1

#define EN 2


#define LCD1602_SetRS()                (CtrPort |= (1<#define LCD1602_ClrRS()                (CtrPort &= ~(1<#define LCD1602_SetRW()                (CtrPort |= (1<#define LCD1602_ClrRW()                (CtrPort &= ~(1<#define LCD1602_SetEN()                (CtrPort |= (1<#define LCD1602_ClrEN()                (CtrPort &= ~(1<

void LCD1602_PortInit(void);        //端口初始化

void LCD1602_CheckBusy(void);        //LCD1602忙信号检测

void LCD1602_Init(void);        //LCD1602初始化

void LCD1602_WriteData(uchar ucData);//在液晶上写数据或者命令,0为命令,1为数据

void LCD1602_WriteCmd(uchar cmd);

void LCD1602_CursorPosition(uchar x,uchar y);//将液晶的坐标移动到指定的位置

void LCD1602_WriteChar(uchar x,uchar y,uchar ucData);//在指定的位置上显示一个字符串;

void LCD1602_WriteString(uchar x,uchar y,uchar *Str);//在液晶上显示字符串



#endif



推荐阅读

史海拾趣

Data Translation Inc公司的发展小趣事

在电子行业中,市场竞争激烈、技术更新换代迅速。Data Translation在发展过程中也遇到了不少挑战和困难。但公司始终坚持以客户为中心、以技术创新为驱动的发展理念,积极应对市场变化和挑战。公司通过加大研发投入、优化产品结构、拓展市场渠道等方式不断提升自身的竞争力和适应能力。这些努力使公司在面对市场变化和挑战时能够保持稳健的发展态势。

HANBIT Electronics公司的发展小趣事

Data Translation在追求企业发展的同时,也积极履行社会责任和推动可持续发展。公司关注环境保护和员工福利等方面的问题,通过采用环保材料、节能减排等措施降低生产过程中的环境污染和能源消耗;通过提高员工福利待遇、加强员工培训等方式提升员工的工作满意度和忠诚度。这些举措不仅为公司赢得了良好的社会声誉和形象,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事仅为概述框架,并未详细展开每个故事的具体情节和细节。在实际编写时,你可以根据Data Translation Inc公司的具体发展历程和业务特点进行进一步的补充和完善。

ATOP_Technologies公司的发展小趣事

ATOP Technologies自1989年创立以来,以创新、智能、整合、坚持为核心价值观,初期主要专注于工业自动化领域的产品研发。在创立初期,公司面临着资金紧张、市场竞争激烈等挑战。然而,凭借着对技术的深刻理解和对市场的敏锐洞察,ATOP Technologies逐步在工业自动化领域站稳脚跟,并开始积累起一批忠实的客户。

富芯森美(FUXINSEMI)公司的发展小趣事

随着技术实力的不断提升,富芯森美开始积极拓展市场。公司凭借优质的产品和专业的服务,成功打入消费类电子、安防、工控、汽车电子等多个领域。同时,富芯森美还注重品牌建设,通过参加国内外知名展会、举办技术研讨会等方式,不断提升品牌知名度和影响力。这些努力使得富芯森美在电子行业中逐渐崭露头角,成为行业内的佼佼者。

BITECH公司的发展小趣事

为了确保产品质量,富芯森美在成立初期便启动了严格的质量管理体系建设。公司通过了ISO、IATF 16949等国际质量管理体系认证,并严格按照标准执行。同时,公司产品还通过了UL、ROHS、REACH、HF等多项国际测试,确保了产品的安全性和可靠性。这一系列的举措不仅提升了富芯森美的市场竞争力,也赢得了客户的广泛信赖。

DBM REFLEX公司的发展小趣事

DBM REFLEX公司成立于本世纪初,初期以提供光学组件的小规模定制服务为主。创始人对光学技术的深刻理解和对市场的精准把握,使公司迅速在光学器件领域崭露头角。随着技术的不断积累和市场需求的增长,DBM REFLEX逐渐扩大了产品线,开始为LED市场设计、铸模和生产高质量的光学器件。

问答坊 | AI 解惑

外中断串口发送数据问题

大家好!我是单片机的初学者,现在遇到一个问题无法解决,希望能得到大家的帮忙,谢谢! 如题: 1、我做了一个边沿触发方式的外部中断0,当按键按下不放时按要求串口发送数据. 2、在P2.3口做了个独立式按键S1,当按下时向串口发送相关字符,松开按键时 ...…

查看全部问答>

[推荐][开发工具] Windows CE / ARM 系统开发利器 - Xarm

                                                   Windows C ...…

查看全部问答>

打算在wince 5.0上运行s3c2410的4.2版本的BSP包,大家觉得应该怎么做

有一套板子,以及相应的程序,在wince 4.2的系统上运行的好好的,现在老板让在5.0上运行,大家给点建议。 我在网上搜了一下,有专家说有两种方式:一是修改4.2的BSP包,使之能在5.0上运行;二是修改5.0系统自带的BSP 包,使之能配合S3C2410的CPU运 ...…

查看全部问答>

真诚的求助高手们!!!!!!

我想让电池电量显示在桌面上,就和手机屏幕上显示的电池电量一样. 我知道用下面这个API函数,但是他返加的是BOOL, SYSTEM_POWER_STATUS_EX sysPowStatus; GetSystemPowerStatusEx(&sysPowStatus,true) 怎么才能做到让他显示在对话框上 ...…

查看全部问答>

在用xilinx SDK时,有时会出现莫名奇妙的问题

用xilinx EDK做关于OpenSPARC的项目,用到最新的XPS12和SDK12.在SDK中写好代码运行的时候有时候会出现莫名奇妙的问题。比如:串口输出到一半就死掉,程序在debug的时候会停在一个很无关痛痒的地方。…

查看全部问答>

请教STM32互联型USART1、CAN1

请教: STM32互联型USART1的默认复用引脚为PA8、PA9、PA10、PA11、PA12。当使用USART1功能时,若只用到TX(PA9)、RX(PA10)两脚,那么其余三脚只能浪费么?此时能否同时令PA11、PA12作为CAN1的功能脚使用呢? 谢谢各位高手指教!…

查看全部问答>

TIMERA0

请教大家一个问题,我想用timer_a 的ccr0做一个定时中断,还想timer_a 的ccr1做一个1赫兹的脉冲方波,可就是不行,求教大家 #include "stdint.h" #include <msp430x42x0.h> unsigned int wDelay = 0; // Timer_A3 Interrup ...…

查看全部问答>

模拟类芯片大家现在都选哪家的啊?

本帖最后由 dontium 于 2015-1-23 13:32 编辑 模拟类芯片大家现在都选哪家的啊?性价比 …

查看全部问答>

求助,P0口的输出和程序所写完全不同是为什么

没有对P0进行任何操作就变成了0xFDprotues中P0没有按我设定的变成0xC0 变成了0x03想问下 这是为什么   求助啊 这是交通灯的程序 有主干道和乡村通道两条代码在附件里 …

查看全部问答>

Q:编译出错

,不明白这是什么原因。工程所在文件夹:…

查看全部问答>