如果能标个注释的话就太谢谢了,还会额外加分
tick equ 10000
t100us equ 256-50
c100us equ 30h
ledbuf equ 0
led equ 40h
ljmp start
org 000bh
t0int:
push psw
mov a,c100us+1
jnz goon
dec c100us
goon:
dec c100us+1
mov a,c100us
orl a,c100us+1
jnz exit
mov c100us,#high(tick)
mov c100us+1,#low(tick)
cpl ledbuf
exit:
pop psw
reti
start:
mov tmod,#02h
mov th0,#t100us
mov tl0,#t100us
mov ie,#10000010b
setb tr0
clr ledbuf
clr led
mov c100us,#high(tick)
mov c100us+1,#low(tick)
loop:
mov c,ledbuf
mov led,c
ljmp loop
end
51单片机中的程序,求大神解释!
是两个不完整的函数,一个用于显示,一个用于键扫描(有软件去抖动功能)。
麻烦大家帮我看下这个51单片机的程序有什么问题。功能是控制8个发光...
clr IE0 ;加上这行试试 RETI ……用按键触发INT0。按键,会有抖动。当进入中断程序后,还会有许多次的中断申请,但是当时不会响应。当退出中断程序后,才会响应刚才遗落的中断申请,就会重新进入中断程序。CLR IE0,就是在退出前,消除多余的外部中断申请标志。
51单片机程序看不懂了谁来讲讲
上电复位后 长跳转到程序段的start标号位置org 000bh ; 定时计数器t0的中断向量入口地址ljmp t0int ; 因为中断向量表空间有限所以应在此添加长跳转指令而不是功能函数段; === 程序段 ===org 0030h ; 一般程序段应跳过中断向量表; -= t0定时计数器中断 =-t0int: ; 定时计数器...
大神快来解释下面51单片机程序的意思呀,着急啊,看了一个下午了
4hc595是串行输入8位并行输出移位寄存器 SER应该是位变量,只能是0和1,即595的串行数据输入端 如果dat的最高位是1,那么右移7位后得到SER是1 如果dat的最高位是0,那么右移7位后得到SER是0 由于发送时高位在前,所以每发送一次dat要左移1位,把次高位往最高位推,循环8次即把8位数据全发送...
51单片机stc8f181s2怎么看程序
1连接编程器和单片机,打开STC-ISP软件 2选择单片机型号和串口号。3点击“读出”按钮,可以将单片机内部程序读 取出来。注意,使用STC-ISP软件读取单片机程序需要先将单片机上电,否则读取不到程序 2.使用仿真器或者调试器读取程序STC8F1K08S2单片机支持仿真器或者调试器功能,可以将单片机与PC机连接,通过...
51单片机的程序,求大神给解释下,具体些
这个程序比较长,但还算简单,哪一段不懂,不可能一句一句解释 void main(){ q=0;\/\/分清0 p=0;\/\/小时清0 TMOD=0x01; \/\/定时器0工作方式1 TH0=(65536-46080)\/256;\/\/50ms初值 TL0=(65536-46080)%256;ET0=1;\/\/定时器0中断打开 EA=1;\/\/总中断打开 while(1){ if(K1==0)\/\/启动 ...
谁能帮我看下这个程序呀,我写的51单片机,用的c语言,结果数码管就显示俩...
2,用KEY2做加,KEY3做减。按一个KEY2,当前操作的单元加1 ,(如“时”加一)。按一下KEY3,当前操作的单元减一。还可以把当前操作的单元显示为闪烁状态。键盘扫描处理,如扫描KEY1,先看KEY1是否按下,然后延时,然后再次看KEY1是否仍然按下,如果是,则确认KEY1有效,否则认为是抖动。
51单片机的 怎么学 最快
学习单片机最终要的是当然是练,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一...
帮忙看看这个51单片机的计数器程序哪里出问题了吧,用矩阵键盘控制的_百 ...
1、数码管显示部分的问题,没有消 0 ,C 语言中变量初值都是 0 ,所以一开始就会显示 0 如果你不想让显示 0 ,那就要写消 0 的程序,就加两句话,很简单的 2、键盘处理部分的问题,如果确认你的键盘检测是对的,那么就是键值处理部分的问题了 3、51都是加法计数器,如果你要想进行减法计数的...
谁能帮我解释以着这个51单片机的c语言程序,说的详细些,谢谢!
P1=a|b; \/\/P1赋值,实际上就是让P1=(temp循环左移i位),看下面解释 delay(); \/\/延时 } for(i=1;i<8;i++){ a=temp>>i; \/\/temp右移i位 b=temp<<(8-i); \/\/temp左移8-i位 P1=a|b; \/\/P1赋值,实际上就是让P1=(temp循环右移i位),看下面解释 delay(...