求用51单片机接两个数码管,0-99动态显示程序(用C语言)
这是一个示例程序,该程序使用5 1 个微控制器来操作两个数字管道并获得0-9 9 的动态显示。该程序定义了数字管的段代码-Array dsy_code,并通过延迟函数延迟实现显示效果。
主要主题的主要功能显示了循环时0到9 9 之间的数字。
特定代码如下:#include#defineucharunsignedchar#defineUintunSignedTucharhardsy_code [] = {0x3 f,0x06 .0x5 b,0x6 6 .0x6 6 .0x6 d,0x7 d,0x7 d,0x7 d,0x7 d,0x0x0x7 f,; Voyeray(uintx){uchari; 而(x-)for(i = 0; in <1 2 0; i ++);} voidmain(){uchari; p0 = 0x00; p2 = 0x00; 而(1 ){for(i = 0; i <= 9 9 ; i ++){p0 = dsy_code [i/1 0]; Inite循环,并显示0-9 9 之间的数字。
每次显示一个数字时,延迟函数将被称为延迟以实现动态观看效果。
应当指出,您的5 1 微控制器P0端口必须连接到上拉电阻,否则信号可能不稳定。
您可以将上述代码复制到开发环境中以进行编译和运行,以确保程序正常工作。
用单片机控制2位数码管,不用锁存器能显示动态扫描码?比如说从0到99。 如果能程序怎么写?
编写一个程序以使用两个数字数字管的控制仪控件来显示动态扫描代码,例如0到9 9 ,并且无需使用闩锁。以下是一个示例的简单示例:我们首先选择一个人员来存储每个数字的扇区代码:carcodeduanxuan [] = {0x3 f,0x06 ,0x5 b,0x4 f,0x6 6 ,0x6 d,0x7 d,0x7 d,0x07 ,0x7 ,0x7 f,0x6 f,0x6 f}。
vodyanshi(charshu){while(x = 0; x <1 1 0; x ++);}在主函数中,我们设置延迟变量:voidmain(){y = 3 0000; 而(y-){for(i = 0; i <9 ; i ++){p2 1 = 1 ; 1 .p0 = duanxuan [i]; Yanshi(5 ); p0 = 0x00;} for(j = 0; j <9 ; j ++){p2 0 = 1 ; p0 = duanxuan [j]; Yanshi(5 ); p 每个数字在P0引脚上显示5 mm秒。
您可以根据需要调整延迟和数字范围。
我希望这个示例对您有帮助。
请记住,不同类型的数字管(常见阴极或常见阴极)需要调整相反的引脚设置。
如果用于阴极的常见数字管,则应将P2 1 和P2 0设置为低水平。
如果您对这种方式感兴趣,也可以尝试编写更多程序,例如以加深对微控制器数字管的理解。
52单片机的四位共阳极的数码管从0至99的显示程序
#include求:8字数码管动态显示0到99的汇编程序
在数字电路中,8 位数字数字管用于显示动态0至9 9 ,并且可以使用8 05 1 微控制器实现。其中,P1 端口连接到数字管道的扫描,而P0端口则连接到8 段角色视图。
该程序从0x0000h地址开始,并定义了起始地址Staer。
首先,DPTR指针指向存储数字管屏幕代码的K1 数组,4 1 h和4 2 h寄存器将初始化为00H,R2 寄存器设置为0FFH。
然后输入主循环A2 ,首先调用视图子例程A1 ,然后减少R2 寄存器。
当R2 降至0时,将R2 重新归为0FFH并增加4 1 h寄存器。
在查看子例程A1 中,首先设置要完全亮起的P0端口,然后将P1 端口设置为0FEH,以获取一位数的7 段屏幕代码。
然后通过4 1 H寄存器值调用MOVC指令,以将7 段屏幕代码从K1 数组中获得相应的数字,然后将其发送到P0端口。
然后调用延迟子例程循环,将R3 寄存器设置为1 00,并达到1 毫秒延迟。
减少R4 寄存器1 0次,然后减少1 00次R3 寄存器。
在循环 - 借出中,R3 和R4 寄存器分别用于控制1 00和1 0减少,以实现准确的延迟效应。
最后,该程序定义了一个K1 矩阵,其中包含7 段数字屏幕代码从0到9 ,以进行后续呼叫。
该程序检查通过P1 端口扫描数字管道,并显示了P0端口的8 个迹象,并实现了从0到9 9 的动态观看,可在各种数字屏幕场景上使用。