单片机学习
xyzAriel
这个作者很懒,什么都没留下…
展开
-
1.点亮发光管
<br />硬件电路:P1口接8个led灯<br /><br />Lsson1_2<br /><br /><br />#include<REG52.H><br />sbit P1_0=P1^0;<br />void main()<br />{<br />P1_0=0;//位操作,点亮p1口的第一个灯<br />}<br /><br />Lesson1_4<br />#include<REG52.H><br />void main()<br />{<br />P1=0xfe;//总线操作方式,点亮第一个灯11原创 2011-03-17 13:36:00 · 819 阅读 · 0 评论 -
2.led灯闪烁
<br /> <br />P1口上的第一个发光二极管L1不停地一亮一灭,闪烁的时间间隔为0.2秒<br />汇编:<br />ORG 0<br />START: CLR P1.0<br />LCALL DELAY<br />SETB P1.0<br />LCALL DELAY<br />LJMP START<br />DELAY: MOV R5,#20 ;延时子程序,延时0.2秒<br />D1: MOV R6,#20<br />D2: MOV R7,#248<br />原创 2011-03-17 13:55:00 · 1428 阅读 · 0 评论 -
0.常用查询
<br /><br />中断标号:(中断函数无需函数声明)<br />INT0------0(interrupt 0)<br />T0---------1<br />INT1------2<br />T1---------3<br />串口-------4<br /><br />调用延时子函数<br /><br /><br />void delay(unsigned char)<br /> <br />void delay(unsigned char x)<br />{<br />unsigned char原创 2011-03-17 13:58:00 · 509 阅读 · 0 评论 -
3.顺序流水灯
<br /><br />八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。(向下向上循环)<br />汇编:<br />ORG 0<br />START: MOV R2,#8<br />MOV A,#0FEH<br />SETB C<br />LOOP: MOV P1,A<br />LCALL DELAY<br />RLC A<br />DJ原创 2011-03-17 14:05:00 · 1498 阅读 · 0 评论 -
4.花样流水灯
<br /><br />AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换闪烁的灯,每个指示闪烁的频率为0.2秒。(即L1以0.2秒的速率闪烁,2秒定时到来时,灯L1闪过10下之后,L2开始以0.2秒的速率闪烁,如此循环下去,共4个灯,L1~L4)<br />(说明:定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一中断,定时的40次数在中断服务程序中完成,同样0.2秒的定时,需要4次才可达到0.2秒。对于中断程序,在主程序中要对中断开中断。由于每次2秒定时原创 2011-03-17 14:21:00 · 2240 阅读 · 0 评论