实验一演示实验用P1口输出管理8个发光二极管(精)

合集下载

此程序是用单片机的p1口接八个led灯作跑马灯试验

此程序是用单片机的p1口接八个led灯作跑马灯试验

拆字程序Org 0000hMov A , 2000HAdd A ,#F0HMOV 2001H ,AMOV A ,2000HADD A , #0FHMOV 2002H , AMOV A , 2001HADD A , 2002HEND拆分BCD 码?***************************************************************************;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。

本人已经试验成功。

;单片机教程网 原创;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告;***************************************************************************org 0000hloop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况ajmp start;跳转到程序开始org 0030h;定义起始汇编地址start:mov a,#0ffh ;clr c ;mov r2,#08h ;循环八次。

loop: rlc a ;带进位左移。

mov p1,a ;此时led灯开始有反映了。

call delay ;延时djnz r2,loop ;循环(djnz条件判断)mov r2,#07h ;loop1: rrc a ;带进位右移mov p1,a ;此时led灯开始有反映了。

call delay ;djnz r2,loop1 ;反复循环jmp start ;回到程序的开头delay: mov r3,#20 ;延时子程序d1: mov r4,#20d2: mov r5,#248djnz r5,$djnz r4,d2```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------ORG 0000HLJMP MAINORG 030HMAIN: MOV P1,#0DBH ;化为2进制为11011011--0状态时led灯亮ACALL DELayMOV P1,#06DH ;化为2进制为01101101ACALL DELay ;MOV P1,#0B6H ;化为2进制为10110110ACALL DELayAJMP MAINdelay: mov r7,#255d1: mov r6,#255d2: djnz r6,d2djnz r7,d1retend。

实验一 P1口输入、输出实验

实验一 P1口输入、输出实验

实验一P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个拨动开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三. 实验电路及连线实验一时,P1.0-P1.7接L0-L7。

实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。

CS273接8300H。

四.实验说明1.P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验框图程序框图:TP1A.ASM主程序框图TP1B.ASM主程序框图六.附加实验内容1、用P1口的P1.0-P1.3作输出口接4个发光二极管,P1.4-P1.7作输入口接4个拨动开关,将开关的状态读进来并在发光二极管上显示。

七.实验报告要求1、书写实验目的、实验内容、实验连线、以及实验中的观察结果;2、画出流程图、编写实验程序,写出实验的心得体会。

控制P1口的8只LED每0.5s闪亮1次

控制P1口的8只LED每0.5s闪亮1次

单片机课程设计报告题目:控制P1口的8只LED每0.5s闪亮一次学生姓名:王张海陈启新学生学号: 1314050230 1314050203 年级: 13级专业:电气工程及其自动化班级:电气(2)班指导教师:徐峰机械与电气工程学院制2015年11月现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序摘要........................................................................一目录........................................................................二前言........................................................................三1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

八路发光二极管轮流点亮的实验

八路发光二极管轮流点亮的实验

八路发光二极管轮流点亮的实验八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦~~~下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。

ORG 0000HSTART:MOV P1,#01111111B;最下面的LED点亮LCALL DELAY;延时1秒MOV P1,#10111111B;最下面第二个的LED点亮LCALL DELAY;延时1秒MOV P1,#11011111B;最下面第三个的LED点亮(以下省略)LCALL DELAYMOV P1,#11101111BLCALL DELAYMOV P1,#11110111BLCALL DELAYMOV P1,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110BLCALL DELAYMOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMP START;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2DJNZ R2 ,L1DJNZ R4 ,L3RETEND这是上面程序汇编以后获得的编程器烧写文件:201.hex下载烧写文件的方法:将鼠标移到烧写文件的超级键连处,点击鼠标的右键,选择“目标另存为(A)...”保存文件类型中不要选择“文本文件”,应该选择“所有文件”,这样就能获得*.hex文件了。

单片机实验

单片机实验

单片机实验第二次实验:图见实验题1.P1.0~P1.7这八个发光二极管全部点亮#include#define uchar unsigned char#define uint unsigned intsbit greenLed=P1^0;Delay(uint cnt){ uchar i;do{for(i=0;i<165;i++);}while(cnt--);}main(){ while(1){ greenLed=0;Delay(1000);greenLed=1;Delay(1000);}}2. P1.0~P1.7这八个发光二极管循环点亮#include delay(unsigned char cnt){ unsigned int i;do{for(i=0;i<6000;i++);}while(cnt--);}main(){ unsigned char a;P1=~a;while(1){if(a!=0){ delay(5);a<<=1;P1=~a;}else{a=0x01;P1=~a;}}}3.通过外部中断控制八盏灯分别右移,左移,闪烁,双灯同时左移。

#include#define uchar unsigned charuchar code LedTable[]= {0x03,0x0c,0x30,0xc0};uchar led_flag = 4;uchar a; Delay(uchar cnt){ unsigned int i;do{ for(i=0;i<6000;i++);}while(cnt--);}void Led_rr(void)//led右移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x80;P1 = ~a;a >>= 1;}}void Led_rl(void)//led左移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x01;P1 = ~a;a <<= 1;Delay(10);}}void Led_spark(void){ P1 = 0xff;Delay(10);P1 = 0;Delay(10);}void Led_lr_doble(){ uchar i;for (i=0;i<4;i++){ P1= ~LedTable[i];Delay(10);}}void int1(void) interrupt 2 //中断服务函数{ led_flag++;if(led_flag >= 3) led_flag = 0;}void main(void){ EA = 1;EX1 = 1;IT1 = 1;while(1){ if(led_flag ==4){ Led_spark();}if(led_flag == 0){ Led_rl();}if(led_flag == 1){ Led_rr();}if(led_flag == 2){ Led_lr_doble();}}第三次实验:1.设单片机的=12MHz,要求用定时器/计数器T0以方式1在P1.0脚上输出周期为4ms的方波。

51单片机P1口亮灯实验

51单片机P1口亮灯实验

微机原理及单片机应用实

实验报告
实验P1亮灯
一、实验内容
P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

二、实验步骤
P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。

三、实验原理图
实验程序框图:
实验接线图:
四.实验程序清单
ORG 0000H
LJMP SE18
ORG 0790H
SE18: MOV P1,#0FFH ;送P1口
LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,A
LCALL SE19 ;延时
RL A ;左移位
SJMP LO33 ;循环
ORG 07A0H
SE19: MOV R6,#0A0H
LO36: MOV R7,#0FFH
LO35: DJNZ R7,LO35
DJNZ R6,LO36 ;延时
RET
END
五、实验总结
1、通过实验我们熟悉了51单片机的仿真开发系统,熟悉了编译连接的过程。

2、通过实验了解了P1口的工作原理,通过程序编写调试使LED灯循环点亮。

实验一 开关量输入输出实验

实验一  开关量输入输出实验

实验一开关量输入输出实验
一、实验要求
1.利用ATC89C51单片机的P1口作开关量输出口,连接8个LED发光二极管;
2.在单步模式(debug菜单下的step over,F10)下,循环点亮这8个LED管(流水灯);
3.画出AT89C51实现上述功能的完整电路图,包括单片机电源、复位电路、晶振电路和控制电路。

4.完成全部程序和电路调试工作。

5. 先在proteus下运行程序,有时间再尝试用keil 与proteus联调。

二、实验目的
1.掌握AT89C51单片机的最基本电路的设计;
2.了解单片机I/O端口的使用方法;
三、设计提示
1. 硬件电路图
可参考switch controll.DSN,请删除无关电路。

2. 程序框架
start:
mov r0,0
again:
….. ;从tab表中获取相应数值(请补充相应指令)
mov p1,a
inc r0 ;r0+=1
jmp again
tab: db 01h,02h,04h,08h,10h,20h,40h,80h; 数值表(具体数值可自行修改)
feh,fdh,fbh,f7h,efh,dfh,bfh,7fh
(db是伪指令,定义一个byte的内容单元,上述的语句是定义了包含8个元素的数组,每个元素占据1个byte)。

end
四、主要元件。

定时器计数器中断综合实验

定时器计数器中断综合实验

报告成绩:教师签字:批改日期:评语:学生实验报告课程名称单片机原理及接口技术姓名实验名称定时器/计数器、中断综合实验班级实验目的掌握51系列单片机中断系统及定时器的工作原理及使用技巧学号实验日期实验内容(1)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个. 方向循环点亮8只LED,每个LED点亮时间为50ms;(2)在以上基础上加外部中断内容,由外部中断请求时,8只LED全亮(3)P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间改为2s实验地点实验组号实验设备计算机 wave6000程序 lab2000p试验箱同组人1.实验电路及连线本次试验不做要求2.程序流程图本次实验无3.源程序(1 ORG 0000H MOV TL0,#58HLJMP MAIN SETB EAORG 0003H SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EHMAIN: MOV A,#01H MOV TL0,#58HLOOP: MOV P1,A RL AMOV TMOD,#01H MOV P1,AMOV TH0,#9EH RETIEND(2ORG 0000H SER0:MOV TH0,#9EHLJMP MAIN MOV TL0,#58HORG 0003H RL ALJMP SER1 MOV P1,AORG 000BH RETILJMP SER0 SER1:PUSH ACCORG 1000H PUSH PSWMAIN: MOV A,#01H MOV A,#0FFH LOOP: MOV P1,A MOV P1,AMOV TMOD,#01H LCALL DELAY MOV TH0,#9EH POP PSWMOV TL0,#58H POP ACCSETB EA RETISETB ET0 DELAY:MOV R7,#0FFH SETB TR0 L1:MOV R6,#0FAH SETB EX0 DJNZ R6,$SETB IT0 DJNZ R7,L1SJMP $ RETEND(3 ORG 0000H SETB EALJMP MAIN SETB ET0ORG 000BH SETB TR0LJMP SER0 SJMP $ORG 1000H SER0:MOV TH0,#9EH MAIN: MOV A,#01H MOV TL0,#58H LOOP: MOV P1,A DJNZ R0,EXIT MOV R0,#28H MOV R0,#28HMOV TMOD,#01H RL AMOV TH0,#9EH MOV P1,AMOV TL0,#58H EXIT:RETIEND4.结果记录及分析(1)结果: P1 口做输出口,接八只发光二极管,高电平点亮,控制一个方向循环点亮8只LED,每个LED点亮时间为50ms;分析:用定时器方式0,使用定时功能,定时器以中断方式工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档