历史上的今天
今天是:2024年08月31日(星期六)
2020年08月31日 | 51单片机驱动CT1642数码管显示源程序
2020-08-31 来源:51hei
拆解电视机顶盒找到带CT1642控制的数码管 在网上找到代码修改了一下 没有解决按键检测的问题 可根据自己的需求修改对应引脚
制作出来的实物图如下:

单片机源程序如下:
sbit DAT=P2^2;
sbit CLK=P2^1;
sbit KEY=P2^0;
u8 NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
u8 NixieTablepos[]={0,0x02,0x04,0x08};
void CT1642_Write(u8 Pos, u8 Val)
{
u8 i,Posn;
// 1、移18位:对应C1--C4、6位空、Q2--Q9
Posn=~Pos;
for(i=0; i<4; i++)//C1--C4
{
DAT=Posn & 0x01;
Posn >>= 1;
CLK=0; CLK=1;
}
for(i=0; i<6; i++)//6位空
{
DAT=1;
CLK=0; CLK=1;
}
for(i=0; i<8; i++)//Q2--Q9
{
DAT=Val & 0x01;
Val >>= 1;
CLK=0; CLK=1;
}
// 2、锁存
CLK=1; DAT=0; DAT=1;
// 3、输出
CLK=0; DAT=0; DAT=1;
}
void NixieTabledisplay(unsigned int number)//ct1642数码管显示数字
{
CT1642_Write(NixieTablepos[1],NixieTable[number%10]);
number/=10;
Delayms(1);
CT1642_Write(NixieTablepos[2],NixieTable[number%10]);
number/=10;
Delayms(1);
CT1642_Write(NixieTablepos[3],NixieTable[number%10]);
Delayms(1);
}
void NixieTabledisplayonoff(u8 state)
{
if(state)//显示ON
{CT1642_Write(NixieTablepos[1],0x37);
Delayms(1);
CT1642_Write(NixieTablepos[2],0x5C);
Delayms(1);
}
else//显示OFF
{
CT1642_Write(NixieTablepos[1],0x71);
Delayms(1);
CT1642_Write(NixieTablepos[2],0x71);
Delayms(1);
CT1642_Write(NixieTablepos[3],0x5C);
Delayms(1);
}
}
史海拾趣
|
ISD1110的/PLAYL、/PLAYE、/REC、A7和A6内部有上拉电阻,A5~A0内部有下拉电阻。因此R6、R7和R8不用接;不分段的话,地址也不必接地。按键和A7、A6接地会产生100微安的电流。 三、工作模式 1、单段录放音模式: 单段录放音时,需全部地址线 ...… 查看全部问答> |
|
看到这个题目大家觉得如何下手?我是新手,希望大家给点思路(如单片机如何选择,用C语言编写的程序等),谢谢! 一、设计任务:制作一部可画简单图形的智能小车,小车带一支水彩笔,可在全开白纸上画出各种图形。 二、设计要求: 1.基本要求 ...… 查看全部问答> |
|
我在作三相电网的软件锁相环(见附图),碰到一些问题。 1)输入电压如果很低时,如01pu时,SPLL无法锁定,得重新调整参数,想适应0.1pu~1.0pu工作范围有没有什么好办法,方法最好运算量不大,可以用C2000软件实现? 2)3s/2r变换的输入输出关系 ...… 查看全部问答> |
|
各位大侠,我是个wince的初学者,我有个gec2410的arm板,wince5.0的系统,想做一个数据库异构的应用程序,查了很多资料,确定了方法应用web service,想问问大侠们,如果应用web service需要网络支持吗?我只用usb线连接板子和pc是否可以?再有如何 ...… 查看全部问答> |
|
收到触摸板了,很精致,板子带说明书:我来给一些懒人讲下怎么快速使用这块板子,高手跳过。首先焊接好LaunchPad主板的两排排针,估计大部分朋友早已经焊接好了。其次把板子上原来的单片机取下来,换成触摸板套件自带的那块儿MSP430G2452单片机。再 ...… 查看全部问答> |
|
最近开发一个项目,利用AM335x与FPGA通讯。已经调试成功了。但是有点疑问。利用cs1控制片选,在linux中并没有在GPMC_CONFIG1_7中设置基地址和大小。但是申请内存后,发现cs1对应的内存基地址为0x1000000,大小为16M。很奇怪,应该是linux中哪个地方 ...… 查看全部问答> |




