因为你的显示数码管数量比较多,应该是用扫描的方法来显示的。
1所以对于硬件来说,你可以在单片机的输出端使用244缓冲输出器,提高负载的驱动能力,同时加三极管形成达林顿阵列(当然你也可以使用IC芯片),接在数码管的一段,在数码管的另一端(比如说共阴数码管共阴端)你可以加一个三极管作为地址锁存器,关闭不需要显示的数码管,同时锁住需要显示的部分,减少闪烁。
2中断用C来写的话可能你程序部分没有写好,写好的话不会出现闪烁的现像,建议你用汇编语言再写一次试。
你先试着在公共端,增加三极管,锁住数码管显示的数字,一般来说这样应该可以避免闪烁了。
ORG的意思是下面语句的地址
上电后,程序从0000的地址开始走
一句跳转指令就到了MAIN标号,
SP是设置堆栈,说明从50H以后都是堆栈的空间
PCON、TMOD、SCON是设置串口通信的方式(几位UART,波特率是否可变)
TH1、TL1是设置定时器来配合上面的三个寄存器设置波特率为9600
TCON给值40h,其实就是置它的TR1位,目的是让T1定时器开始工作,上面讲的TH1、TL1是设置定时器的,但是并没有启动,现在启动
下两条是清零发送中断标志和接收中断标志
下面一条把P1口全置1是用作输入的前提条件
调用延时程序等待
把1BH给累加器调用发送,以下几个都是一样
SEND子程序:
调用延时
JNB P12,SEND1 是判断电脑有没有准备好
准备好了就往下走(也就是发送)
MOV SBUF,A
这一步就是开始发送了
如果发送完成,TI就自动被置为1
所以只需要检查是否为1来判断是否发送完成。
JNB TI,$
如果不为1,就在原地等待,如果为1,就往下
清零TI,因为不会自动清零
发送子程序结束返回
不知道你是否明白,希望能帮上忙,另外显示动态数据需要看选择
什么样的显示器具体分析,比如8279,7279等,你需要学习相关
资料
信许多人都为「该记忆体不能为read或written」而伤脑筋,大家不妨试用下列命令 重新注册所有的dll 开始→运行→输入cmd→按「确定」,出现DOS窗口,在命令提示符下输入 for %1 in (%windir%system32dll) do regsvr32exe /s %1 如果怕输入错误的话,可以复製这条指令,然后在命令提示框点击左上角的c:,贴上便不会输入错了。 在飞速滚屏完全静止,先别著急啟动其他软件程序,先耐心等一会儿,因为此时dll们还在找位置。 需要一至二分鐘的时间注册,请耐心完成。 KB921883:Windows XP 安全性更新 现在已经证实 Server 服务有一个安全性问题, 攻击者可能利用此问题侵入 Windows 电脑并取得该电脑的控制权。 档案名称: WindowsXP-KB921883-x86-CHTexe 版本: 921883 安全佈告栏: MS06-040 Knowledge Base (KB) Article: KB921883 网址: >
启动ADC0809的汇编程序,仅仅两行而已:
MOV DPTR, #ADC0809的地址 ;这个地址,取决于单片机和0809的之间连线
MOVX @DPTR, A
这两行执行后,0809就启动了。
以上就是关于如何解决程序大、单片机中断、引起的数码闪烁全部的内容,包括:如何解决程序大、单片机中断、引起的数码闪烁、汇编,单片机高手进、“ox00b47279”指令引用的“ox00000000”内存,该内存不能为“written”,碰到这样的问题该咋办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)