电子工程师设计认证-设计例程(5)

2019-04-05 18:20

电子设计工程师认证课程

开始 程序初始化 设定8155工作方式 指向第一个数码管地址 Y 是否指向第六位 N 发送数据并显示 延时 指向下一个数码管地址

图3.23:LED软件流程

例3.2:LED.C动态显示接口程序

/***************************************************************** FileName:

LED.c

Description: 6位数码管上显示函数

****************************************************************/ #include // 定义各种宏,作为总的头文件包含各需要的头文件 //数码管显示0~9是的数码段的数值

int S_Data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管1—6位码段的数值

int W_Data[6]={0x01,0x02,0x04,0x08,0x10,0x20};

/***************************************************************

21

电子设计工程师认证课程

函数名称: delay() 函数功能: 实现延时功能 函数参数: 返回:

x 无

****************************************************************/ void delay(uchar x) { }

/*************************************************************** 函数名称: LED()

函数功能: 实现数码管的显示功能 函数参数: 返回:

Data[6] 无

while(x--);

*****************************************************************/ void LED(unsigned char Data[6]) { }

主函数调用显示函数的程序如下:

/*********************************************************** FileName:

main.c

Description: 实现6位数码管的显示控制

************************************************************/ #include void LED(int Data[6]);

unsigned char Led_number[6]={0,1,2,3,4,5}; //数码管要显示的6位数字 void main() {

PORT=0x03; //8155的A,B口作为输出端口,C口为输入端口 while(1) int i=0,j=0; for(i=0;i<6;i++) { }

for(j=0;j<5;j++) { }

delay(100);

W_IO=W_Data[5-i]; S_IO=S_Data[Data[i]];

22

电子设计工程师认证课程

}

5、调试步骤

5、 把电源模块、CPU模块、8155扩展模块、LED显示器模块、串口通信模块插在正确的位置

上,并把跳帽进行正确短接。

6、 建立Keil工程,编辑、编译源代码并生成可下载的HEX文件 7、 连接串口线,通过串口通信模块使用STC-ISP软件下载程序

8、 观察LED显示数据,如果以上步骤正确的话,在LED上应能显示0、1、2、3、4、5六个

数字。

6、思考和发挥部分

1) 如何修改程序,使显示的数字类似跑马灯一样不停地闪烁? 2) 如何修改程序,使显示循环? 3) 如何修改程序,使显示左循环? 4) 如何修改程序,使显示两位移动?

{ }

LED(Led_number);

3.4.4电子设计DIY

设计要求:请参考上述LED电原理图在EDP试验仪的面包板上自行完成一个6位8段数码管显示电路,画出电原理图并完成相应的软硬件设计。

设计提示:可以采用共阴或公阳LED数码管,与实验仪单片机的连接可以采用串行或并行方式。试验仪面包板的引脚定义可参照图3.24,与单片机的连接请参考图3.20和图3.22。

VCC GND VCC GND GND 图3.24: 试验仪面包板的引脚定义

23

VCC VCC GND

电子设计工程师认证课程

3.5 LCD1602字符型液晶模块

3.5.1设计目的及任务

设计任务:设计一个字符型液晶显示器,熟悉HD44780及其兼容液晶控制器的指令集及其使用方法;熟悉8155并口扩展芯片的使用;熟悉Keil uv2 集成开发环境;熟悉STC-ISP软件的使用。 功能指标:显示器可以在任意位置显示任意ASCII码表内的字符。 要求:所设计的显示器应满足系统设计要求,并能与整个系统有效结合。 范例:以下是一个设计范例及其讲解,供参考。

3.5.2 LCD1602字符型液晶基本工作原理

LCD1602字符型液晶主控制驱动电路为HD44780,可以显示32个(16*2)5*8点阵字符,模块结构紧凑轻巧,装配容易,单+5V电源供电,低功耗长寿命高可靠性。引脚功能如图3.25所示:

图3.25 1602液晶引脚

引脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 信号真值表如图3.26所示

表3.26 1602液晶信号真值表 符号 Vss Vdd V0 RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 BL+ BL- 状态 输入 输入 输入 三态 三态 三态 三态 三态 三态 三态 三态 功能 电源地 +5V逻辑电源 液晶驱动电源 寄存器选择 读写操作选择 使能信号 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 数据总线 背光电源正 背光电源-

24

电子设计工程师认证课程

1602液晶写操作时序如图3.27所示:

图3.27 1602液晶写操作时序

1602液晶读操作时序如图3.28 所示:

图3.28 1602液晶读操作时序

1602液晶常用指令如图3.29所示。

表图3.29 1602液晶常用指令

RS R/W 0 0 0 0 0 0 0 0 0 1 1 0 1 1

25

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 功能 0 0 0 0 0 0 0 1 0 0 0 0 0 1 I/D S 0 0 0 0 1 D C B 0 0 1 DL N F * * BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 数据 数据 清屏 输入方式设置 显示开关控制 功能设置 读BF及AC的值 写数据 读数据


电子工程师设计认证-设计例程(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:爱立信LTE后台指令

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: