上电复位后P1口所接的一个共阳极数码管循环显示数字0~9 帮我编一个单片机的程序,谢谢
org0000hjmpmainorg01 00hmain:movdptr,#tabmov1 ,#00hdisp:mova,r1 movca,@a+dptrmovp1 ,alcallayincr1 cjner1 ,#0Ah,#0Ah,disp; 9 H,A4 H,B0H,9 9 H,9 2 H,8 2 H,F8 H,8 0H,9 0H正代码系列:MOVR4 ,#2 ;用单片机c51,c语言编0-9计数器程序!谢谢!!!
硬件电路有问题。微控制器引脚3 1 应连接到高水平。
数字管的连接方法不正确。
这取决于您的排除方法。
您的数字管应使用将公共阴极添加到9 之后,再次按下,它会返回0吗? ? ? 以下是更改的答案#包括
急!!!求单只数码管循环显示0~9的代码解释,数码管是共阳极的。 万分感谢!!!
在编写微控制器程序以实现数字管周期时显示从0到9 的数字时,我们需要使用与MicroController寄存器相关的文件和带有NULL指令的文件。程序中定义了一些宏来简化代码。
例如,使用UCHAR替换UnsignedChar并使用UINT替换UNSIGNEDINT。
接下来,将一个名为dsy_code的数组定义为存储数字管的0到9 的段代码值。
这些值分别对应于公共阳极数字管中每个数字的段落配置。
为了实现延迟功能,写了延迟功能。
此功能接受UINTX作为输入参数,以控制延迟数。
在内部使用一个段循环来计算循环,从而实现延迟。
可以根据for循环中计数的次数调整延迟时间。
在主要程序voidmain()中,定义了一个UChari变量,其初始值设置为0。
在主循环中,使用P0端口来输出当前段的逆代码值。
在这里,表达式p0 = 〜dsy_code [i]用于反转数字管的段代码值。
接下来,添加了1 ,Modulo 1 0操作可确保i的值始终在0到9 之间。
最后,要求延迟(3 00)函数延迟以实现数字显示间隔。
这样,该程序可以实现数字管的圆形显示从0到9 每次显示新数字时,delayms函数都会在一定的时间延迟中要求,从而实现了循环显示的效果。
该程序适用于通用阳极数字管,并通过P0端口输出相应的段代码值。
应该注意的是,在实际应用中,可能需要根据特定的硬件配置和要求对代码进行适当调整。
例如,寄存器定义可能会因不同的微控制器模型而变化,因此需要根据特定的硬件手册对其进行修改。
编程实现共阳极八个数码管依次显示12345678
代码的这一部分仍然是一个通用的数字管,必须用常见的数字管代替。这已经足够了。
此外,您的仿真方案与程序不匹配。
可以减少模拟方案,请参阅下面的形状,注意连接数字管的方法。
修改后的程序如下; / / / 0-9 总正阳性数字管图表[= = = {1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 }; voddelayms(uchax){unitj; j = 0; J
共阳极数码管显示0~9对应的段码
通用阳极数字管显示与0到9 相对应的段代码。宏定义函数与上述ucharcodedsy_code相同 [] = {0xc0,0xf9 .0xa4 .0xb0,0x9 9 .0x9 2 .0x8 2 .0xf8 .0x8 0.0x9 0.0xff}; //数字管段的代码值0-9 //延迟void delayms(uintx)//延迟函数{uchart; //定义变量值范围0-2 5 5 while(x-)for(t = 0; t} // main voidmain()// main函数{uchari = 0;段代码i =(i + 1 )的值%1 0;