微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CH451的使用总结

CH451的使用总结

时间:11-17 来源:互联网 点击:

,可定义#define CH451_DIG1 0x0900,其它类推``````

开始输送12位串行数据。

首先送“设定系统参数”命令。设定系统参数命令用于设定CH451 的系统级参数:看门狗使能WDOG,键盘扫描使能KEYB,显示驱动使能DISP。各个参数均通过1 位数据控制,将相应的数据位置为1 则启用该功能,否则关闭该功能(默认值)。例如,命令数据010000000101B 表示启用看门狗的功能、关闭键盘扫描的功能、启用显示扫描驱动的功能。

其次送“设定显示参数”。设定显示参数命令用于设定CH451 的显示参数:译码方式MODE,扫描极限LIMIT,显示亮度INTENSITY。译码方式MODE 通过1 位数据控制,置1 时选择BCD 译码方式,置0 时选择不译码方式(默认值)。扫描极限LIMIT 通过3 位数据控制,数据001B~111B和000B 分别设定扫描极限为1~7 和8(默认值)。显示亮度INTENSITY 通过4 位数据控制,数据0001B~1111B 和0000B 分别设定显示驱动占空比为1/16~15/16 和16/16(默认值)。例如,命令数据010101110000B 表示选择不译码方式、扫描极限为7、显示驱动占空比16/16;命令数据010110001010B表示选择BCD 译码方式、扫描极限为8、显示驱动占空比为10/16。
然后送数码管显示的命令。如果是BCD 译码方式,发送“CH451_DIG7|8”,表示数码管7显示,且显示的数值是8;要让数码管5显示“A”数值,就发送命令“CH451_DIG5|10”。

数码管显示的过程,可以简单记为:初始化芯片(DIN、DCLK、LOAD ),定义操作命令(系统参数、显示参数等),发送操作命令。

完整的数码管显示程序如下所示:

#include
#include
#define uchar unsigned char
#define uint unsigned int
#define CH451_DIG0 0x0800 /*数码管位0显示*/
#define CH451_DIG1 0x0900 /*数码管位1显示*/
#define CH451_DIG2 0x0a00 /*数码管位2显示*/
#define CH451_DIG3 0x0b00 /*数码管位3显示*/
#define CH451_DIG4 0x0c00 /*数码管位4显示*/
#define CH451_DIG5 0x0d00 /*数码管位5显示*/
#define CH451_DIG6 0x0e00 /*数码管位6显示*/
#define CH451_DIG7 0x0f00 /*数码管位7显示*/
sbit ch451_din = P1^0;
sbit ch451_clk = P1^1;
sbit ch451_load = P1^2;
/********************************************************************
函 数 名:ch451_init()
功 能:对ch451芯片进行初始化
***********************************************************************/
void ch451_init(void)
{
ch451_din = 0; /*先低后高,选择4线输入*/
ch451_din = 1;
ch451_load = 1;
ch451_clk = 1;
}
/********************************************************************
函 数 名:ch451_write()
功 能:把12位的指令或数据写入ch451
说 明:12位数据或指令的写入顺序是低位
入口参数:command
***********************************************************************/
void ch451_write(unsigned int command)
{
unsigned char i;
ch451_load=0; /*命令开始*/
for(i=0;i<12;i++)
{ /*送入12位数据,低位在前*,&表按位与,如5&7=5,即:0101^0111=5*/
ch451_din=command&1;
ch451_clk=0;
ch451_clk=1;
command>>=1; /*上升沿有效*/
}
ch451_load=1; /*加载数据*/
}
void main()
{

ch451_init();
//系统参数设定,参照说明书
ch451_write(0x401);
//显示参数设定,
ch451_write(0x580);
//第六位显示6
ch451_write(CH451_DIG5|6);
//第8位显示8
ch451_write(CH451_DIG7|8);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top