DSP28335LCD1602动态显示代码

时间: 2023-09-04 12:15:55 浏览: 61
以下是一个简单的DSP28335和LCD1602动态显示的代码示例: ```c #include "DSP2833x_Device.h" #include "DSP2833x_Examples.h" //LCD1602定义 #define RS GPB1 #define RW GPB2 #define EN GPB3 #define D0 GPA0 #define D1 GPA1 #define D2 GPA2 #define D3 GPA3 #define D4 GPA4 #define D5 GPA5 #define D6 GPA6 #define D7 GPA7 //延时函数 void delay_us(unsigned int us) { unsigned int i, j; for(i=0;i<us;i++) { for(j=0;j<5;j++); } } //LCD1602初始化函数 void Init_LCD1602(void) { //IO口初始化 EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // 0=GPIO, 1=EPWM1A, 2=Resv, 3=COMP1OUT GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; // 0=GPIO, 1=EPWM1B, 2=Resv, 3=COMP2OUT GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // 0=GPIO, 1=EPWM2A, 2=Resv, 3=COMP3OUT GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // 0=GPIO, 1=EPWM2B, 2=Resv, 3=COMP4OUT GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // 0=GPIO, 1=EPWM3A, 2=Resv, 3=COMP5OUT GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; // 0=GPIO, 1=EPWM3B, 2=Resv, 3=COMP6OUT GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; // 0=GPIO, 1=EPWM4A, 2=Resv, 3=COMP7OUT GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // 0=GPIO, 1=EPWM4B, 2=Resv, 3=COMP8OUT GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0; // 0=GPIO, 1=EPWM5A, 2=SCITXDB, 3=Resv GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 0; // 0=GPIO, 1=EPWM5B, 2=SCIRXDB, 3=Resv GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // 0=GPIO, 1=EPWM6A, 2=Resv, 3=Resv GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 0; // 0=GPIO, 1=EPWM6B, 2=Resv, 3=Resv GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0; // 0=GPIO, 1=SCITXDA, 2=Resv, 3=TZ2 GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 0; // 0=GPIO, 1=SCIRXDA, 2=Resv, 3=TZ3 GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0; // 0=GPIO, 1=CANTX, 2=Resv, 3=TZ1 GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0; // 0=GPIO, 1=CANRX, 2=Resv, 3=TZ2 EDIS; //初始化1602 RS = 0; RW = 0; EN = 0; delay_us(50000); EN = 1; delay_us(50); EN = 0; delay_us(5000); EN = 1; delay_us(50); EN = 0; delay_us(200); EN = 1; delay_us(50); EN = 0; delay_us(200); //设置1602显示模式 RS = 0; RW = 0; EN = 1; delay_us(50); GPADAT = 0x20; //4位数据模式 EN = 0; delay_us(50); EN = 1; delay_us(50); EN = 0; delay_us(200); RS = 0; RW = 0; EN = 1; delay_us(50); GPADAT = 0x28; //4位数据模式,2行显示,5x7点阵 EN = 0; delay_us(50); EN = 1; delay_us(50); EN = 0; delay_us(200); RS = 0; RW = 0; EN = 1; delay_us(50); GPADAT = 0x0c; //显示开,光标关闭,闪烁关闭 EN = 0; delay_us(50); EN = 1; delay_us(50); EN = 0; delay_us(200); RS = 0; RW = 0; EN = 1; delay_us(50); GPADAT = 0x01; //清屏 EN = 0; delay_us(50); EN = 1; delay_us(50); EN = 0; delay_us(200); RS = 0; RW = 0; EN = 1; delay_us(50); GPADAT = 0x06; //文字输入时光标右移 EN = 0; delay_us(50); EN = 1; delay_us(50); EN = 0; delay_us(200); } //LCD1602写入字符函数 void Write_LCD1602(unsigned char dat) { EN = 0; RS = 1; RW = 0; delay_us(50); GPADAT = (dat & 0xf0); EN = 1; delay_us(50); EN = 0; delay_us(50); GPADAT = ((dat & 0x0f) << 4); EN = 1; delay_us(50); EN = 0; delay_us(50); } //主函数 void main(void) { InitSysCtrl(); Init_LCD1602(); while(1) { Write_LCD1602('H'); Write_LCD1602('e'); Write_LCD1602('l'); Write_LCD1602('l'); Write_LCD1602('o'); Write_LCD1602(' '); Write_LCD1602('W'); Write_LCD1602('o'); Write_LCD1602('r'); Write_LCD1602('l'); Write_LCD1602('d'); Write_LCD1602('!'); } } ``` 在该示例中,我们使用了GPIO口来控制LCD1602,并手动控制每个操作的时序。我们首先进行了LCD1602的初始化,然后在主循环中连续向LCD1602中写入一些文本。当然,您可以根据您的需求调整这些代码。

相关推荐

最新推荐

recommend-type

DSP28335的McBsp配置为SPI接口的DMA的收发配置程序.docx

DSP28335的McBsp配置为SPI接口的DMA的收发配置程序,程序中完成了MCBSP配置为SPI工作模式的方式,并通过DMA完成数据收发操作
recommend-type

dsp28335开发总结

众所周知,微处理器从内存RAM中取指令的速度要比从flash中取指令要快好多倍,但是RAM的缺陷限制了其不能存储用户程序代码,因为RAM掉电会丢失数据,但是其速度要快,而flash内信息掉电不丢失,因此可以保存用户编程...
recommend-type

多核DSP Bootloader代码加载方法方案

本文主要介绍一种多核DSP Bootloader代码的加载方法,感性趣的朋友可以参考下。
recommend-type

dsp--28335的使用fifo的串口中断实验

绍了dsp--28335的使用fifo的串口中断实验设置方式和程序的设计步骤
recommend-type

基于STC32单片机内部RTC的学习计时器+全部资料+详细文档(高分项目).zip

【资源说明】 基于STC32单片机内部RTC的学习计时器+全部资料+详细文档(高分项目).zip基于STC32单片机内部RTC的学习计时器+全部资料+详细文档(高分项目).zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。