请大家帮忙一下!按下面的原理图编一段程序,使共阴极8位数码管从左至由依次显示12345678。 拜托拜托!!
为了解决此问题,我们提供了一个示例程序,该程序使用典型的阴极8 位数字管从左到右显示数字1 2 3 4 5 6 7 8 在这里,我们将使用典型的5 1 个微控制器解释,并假设数字管的位选择线和段选择线正确连接。首先,您需要编写功能来控制数字管的位选择。
例如,使用位选择线来控制数字管的显示位置。
以下是一个简单的位选择功能:voiddigit_select(uint8 _tdigit){switch(digit){case0:p0 = 0x8 0; 使用段线选择来控制数字管显示的数字。
以下是一个简单的段选择功能:voiddisplay_digit(uint8 _tdigit){case0:p1 = 0x3 f;休息:p1 = 0x07 ; //显示数字7 :p1 = 0x7 f; 主要功能是: intmain(){while(1 ){for(uint8 _ti = 0; i <8 ; i ++){digit_select(i); 根据实际情况,您可能需要调整特定的PIN定义。
单片机数码管显示的原理(CA CC) 字型的显示 动态显示的原理 大概的说下 采纳的再加分
数字管的结构实际上非常简单。I/O微控制器门通常具有8 针,可以连接到这8 个LED的正极。
当将数字管的负电极放在地面上时,当必须显示一个数字(例如2 号)时,它对应于点亮的五个LED a,b,d,e和g。
因此,仅根据低级别的对应关系,仅处理连接到LED微控制器的销钉。
至于动态显示,通常使用8 个数字管道,并且段界面保持不变,并且仍连接到P0门,而其负电极不再放在地面上,而是连接到P2 门(或P1 端口)。
P2 端口用于检查只有在P2 端口较低时才能打开并启动时,只有数字管点亮。
例如,要查看数字1 2 3 4 5 6 7 8 ,请首先调整P0至1 个门段的端口代码,即B和C处于活动状态,然后在高个子上设置P1 .1 和P1 .2 ,以便将数字1 显示为第1 个数字视图1 ,因此,P2 .0应该在其他位置上设置为第一个数字地位。
2 ,提取P2 .1 并保持在其他位置,以便第二个数字管将显示2 但是,由于微控制器执行指令非常快,因此直接显示1 2 3 4 5 6 7 8 可以使数字管看起来非常黑,因此在更改数字管时可以添加短暂的延迟。
但是,延迟不能太长,否则数字管将闪烁。
当然,您还可以将显示程序中断放入每1 0毫秒的显示中,这可以改善显示屏的效果。
求: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,则4 1 h寄存器达到0AH,4 2 H寄存器达到0AH,4 2 h寄存器达到0AH,到达4 2 h登记册以继续循环。
在Display子例程A1 中,首先将P0端口设置为完全点燃的P0端口,然后将P1 端口设置为0FEH,以获取单个数字7 段显示代码。
然后,它通过4 1 H寄存器值调用MOVC指令,以从K1 数组中获取相应号码的7 段显示代码,并将其发送到P0端口。
接下来,调用延迟子例程循环,将R3 寄存器设置为1 00,达到1 毫秒延迟。
接下来,将R4 寄存器减少1 0次,然后将R3 寄存器减少1 00次。
LOOP子例程使用R3 和R4 寄存器分别控制1 00和1 0减少,以实现准确的延迟效果。
最后,该程序定义了一个K1 数组,其中包含7 段数字管显示代码从0到9 ,以进行后续呼叫。
该程序通过P1 端口控制数字管的扫描,在P0端口上显示8 个字符,并提供0至9 9 的动态显示,可应用于各种数字显示方案。