p口彩灯控制
51系列单片机实验系统指导书

51系列单片机实验系统指导书目录前言第1章下载式实验系统的使用方法1.1 软件安装与启动1.1.11.1.2 文件操作1.1.3 建立工程项目(汇编)1.1.4 调试程序第2章软件实验2.1 数据传送实验2.2 清0实验2.3 数据转换实验2.4 拆字、拼字实验2.5 散转程序实验2.6 时钟实验2.7 计数器实验2.8 无符号十进制数加法实验2.9 数据排序实验2.10 单字节BCD码除法实验2.11 查找相同个数实验第3章硬件实验3.1 P1口彩灯控制实验3.2 数码管显示实验3.3 顺序控制实验3.4 8031和8155接口扩展与数码管显示实验3.5 键盘、数码管显示综合实验3.6 A/D转换实验3.7 D/A转换实验3.8 A/D与D/A转换综合实验第4章89C51系列实验4.1 顺序控制实验4.2 数码管显示实验4.3 键盘、数码管显示综合实验4.4 A/D转换实验4.5 D/A转换实验第1章下载式实验系统的使用方法1.1 软件安装与启动下载式实验系统,是一套既可脱离硬件仿真又可与实验系统联机仿真的实验装置,对于硬件实验,只要将软件调试好后就可将程序用串行口直接在线写入芯片,再不必象以前那样要专用的编程器来固化程序。
1.1.1 软件安装1. 为使QTH 调试器能够正常运行,您必须提供以下软硬件环境:586 以上的PC 及兼容机;100M 以上的剩余硬盘空间;分辨率为800×600 以上的显示器;具有SPP功能的打印机接口;使用符合Intel 标准的汇编器、编译器和连接器。
如Franklin/Keil V3.2 或keil V6.02 及以上版本。
2.使用:单击开始/程序,在程序条中选QTH2008XS下载式单片机实验仪V2004.1或直接双击桌面上QTH-2008XS 快捷图标。
图1-1连机出错提示框如果已经连接仿真器或实验仪,则直接进入 QTH 调试器窗口。
如果没有连接仿真器,等一下屏幕上会出现图1-1所示的连机出错提示框:可以选择是否进入模拟调试:“是”——进入调试;“否”——请检查并使仿真器正常工作后,再按调试菜单上的复位钮,进入仿真调试。
任务三

任务三:采用两个外中断的LED彩灯控制一、任务要求P0端口作为输出口,外接8只LED,P3.2外接按键K1,P3.3外接按键K2。
编写程序,没有按下任何按键时,LED隔灯闪烁,当按键K1为奇数次时,LED进行左移流水->右移流水显示。
当按下按键K1为偶数次时,LED进行拉幕式显示;当按下按键K2时,LED 暂停显示,蜂鸣器发出“叮咚”的开门声音,然后LED继续花样显示(K2按键优先)。
二、源代码#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit key1=P3^2;sbit key2=P3^3;sbit beep=P1^0;uchar code tab[]={0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7};//开幕式编码uchar temp=0xfe,key_count,flag,right,beep_FG;void delay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}void init(){EA=1;//打开总中断EX0=1;//打开外部中断INT0EX1=1;//打开外部中断INT1IT0=1;//下降沿触发方式PX1=1;//设置INT1为高中断优先级}void interval_LED() //隔灯闪烁{P0=0xff;delay(500);P0=0xaa;delay(500);}void left_right_move() //左右流水{if(!right)temp=_crol_(temp,1);elsetemp=_cror_(temp,1);if(temp==0xfe){right=0;}if(temp==0x7f)right=1;}void open_LED() //拉闭幕式函数{uchar count;temp=tab[count++];if(count>=8)count=0;}void Beep() //门铃函数{uchar i,j,k;for(i=100;i;i--)for(j=20;j;j--){for(k=2;k;k--)beep=~beep;}beep_FG=0;}void main(){init();beep=0;while(1){if(!flag) //没有按键,隔灯闪烁interval_LED();else{if(beep_FG)//按键后,判断是那个键被按下,如果是k2,蜂鸣器就响{Beep();}else{switch(key_count%2){case 1:left_right_move();break;//奇数次按键左移右移显示case 0:open_LED();break;//偶数次按键拉幕式显示default:break;}P0=~temp;delay(400);}}}}void key1_interrupt() interrupt 0 //中断k1{flag=1;key_count++;}void key2_interrupt() interrupt 2 //中断k2{flag=1;beep_FG=1;}三、电路图。
单片机课程设计节日彩灯控制器的设计

单片机课程设计--节日彩灯控制器的设计荆楚理工学院课程设计成果学院:电子信息工程学院班级:11电气工程及其自动化1班学生姓名:刘诗权学号: 2011401020127设计地点(单位):D1302设计题目: 节日彩灯控制器的设计完成日期: 2014 年 1 月3日指导教师评语:______________________________________________________________________________________________________________ ______________________________________________________________ ______________________________________________________________ ______________________________________________________________ ____________成绩(五级记分制):____________________教师签名:_____________________目录1 摘要 (1)2 系统简介 (2)2.1 总体设计方案说明 (2)2.2 单片机系统组成方框图 (2)2.3 AT89S51单片机介绍 (2)3 系统设计 (4)3.1 系统总体设计 (4)3.2 硬件电路设计 (5)3.3 软件设计 (7)4 实验结果与讨论 (11)5 结论 (12)6 参考文献 (12)7附录 (13)1 摘要随着科技的发展,节日彩灯已经作为节日的一个重要部分越来越丰富多彩了,同时它作为节日的一部分给我们的生活带来了许多美好。
本文分析了彩灯四种不同亮法的原理,基于汇编语言设计了一种按键控制的可以有四种不同亮法的彩灯,当按下第一个键的时候彩灯从上到下亮,按下第二个键时候彩灯从下到上亮,第三个键彩灯从中间到两边亮,第四个彩灯从两边到中间亮。
PLC花样彩灯控制解析

PLC实训报告项目名称: plc花样彩灯班级:姓名:学号:指导教师:实训时间:一、实训项目PLC花样彩灯控制二、控制要求1、实现以下四种模式的彩灯控制:(1)从彩灯1到彩灯8依次点亮0.5秒,然后灭掉(2)所有彩灯一起点亮3秒(3)所有彩灯一起闪烁3秒(4)彩灯1,彩灯3,彩灯5,彩灯7进行闪烁3秒其他灯不闪烁2、自动模式下四种模式依次从模式1工作到模式43、可以用开关进行手自动转换4、在手动控制下可以在七段译码管中显示模式代码,按下按钮可显示代码三、I/O口分配表输入输出电气设备IO点功能说明电气设备IO点功能说明Sb1 1.06启动按钮彩灯1 100.00Sb2 1.07 停止按钮彩灯2 100.01Sb3 1.09 手动停止彩灯3 100.02按钮彩灯4 100.03 Sb4 1.08 手动选择按钮Sq1 0.00 手自动彩灯5 100.04转换彩灯6 100.05彩灯7 100.06彩灯8 100.07 四、硬件电路图五、程序设计分析1 、分段设计分析:先将程序分为自动段、手动段、输出段三个阶段进行设计,这样的设计更有条理,程序结构更清晰,更便于分析;2 、自动段设计:(1)模式1:从彩灯1到彩灯8依次点亮0.5秒,然后灭掉程序如下:分析:1.06为自动段的启动按钮,1.07为自动段的停止按钮,使用传送指令SFT控制模式1所要求的输出效果,w0.00为输入启动的条件,P_1s为0.5s通断功能;并且当按下1.07按钮的时候、或者传送到中间继电器w1.08时、或者按下手自动转换按钮0.00时,指令复位;(2)模式2:所有彩灯一起点亮3秒程序如下:分析:当传送指令运行到1.08时,启动模式2,彩灯开始动作;模式2以定时器为核心,定时时间为3s,定时器为0000,当定时器0000计时完成之后,常闭触点T0断开,停止模式2,彩灯停止动作,也可以通过停止按钮1.07停止;(3)模式3:所有彩灯一起闪烁3秒程序如下:分析:当模式2中的定时器0000完成计时后,常开触点T0闭合,启动模式3;定时器0001做闪烁总时间定时,定时时间为3s;定时器0002和定时器0003做闪烁功能,0.5秒亮,0.5秒灭;定时器0001计时完成后,常闭触点T1断开,停止模式3,也可以由停止按钮1.07停止;(4)模式4:彩灯1,彩灯3,彩灯5,彩灯7进行闪烁3其他灯不闪烁程序如下:分析:当模式3中的定时器0001完成计时后,常开触点T1闭合,启动模式4;定时器0004做闪烁总时间定时,定时时间为3s;定时器0005和定时器0006做闪烁功能,0.5秒亮,0.5秒灭;定时器0004计时完成后,常闭触点T4断开,停止模式4,也可以由停止按钮1.07停止;3、自动模式中的输出程序如下:分析:这是自动输出的程序;w1.01到w1.07控制彩灯1到彩灯8的模式1的输出;w2.00控制模式2的输出;w3.00控制模式3的输出;w4.00控制模式4的输出;只有1、3、5、7四盏彩灯存在模式4;(4)自动模式的循环程序如下:分析:当模式4中的定时器计时完成后,常开触点T4闭合,启动循环,按下停止按钮1.07或者手自动转换开关0.00时停止;(5)手动段的设计程序如下:分析:P_First_Cycle 用来做商店初始化状态,1.09用来做手动段的停止,0.00是手自动转换开关,mov指令把#0传送给下面的D0指令;(6)手动模式的设计程序如下:分析:按下手动选择按钮1.08,当处于手动模式,按下手动选择按钮1.08时,手动模式开始动作,@++是加法指令,1.08每输入1下,#0加#1分析:按下1.08一下,开始手动动作,当不处于模式1时,模式1立即停止。
单片机课程设计彩灯控制

- --xxxxxxxxx课程设计报告书课程名称:单片机课程设计课题名称:彩灯控制专业:x班级:x学号:x姓名:x成绩:x年x月x日目录1.设计目的32.设计要求和设计指标33.设计内容43.1硬件部分 43.2软件部分94.总结14.主要参考文献15摘要近年来随着微控技术的日益完善和飞速发展,单片机的应用正在不断深入,它的应用必将导致系统控制技术从根本上发生变革,同时带动传统控制检测技术日益更新。
它在工业控制、数据采集、智能化仪表、机电一体化、家用电器领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化控制。
在实际检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
在社会经济快速发展,人们生活水平的日益提高的今天,对于LED灯花样的要求越来越高。
像字体广告,电子宣传字幕……1·设计目的通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,进一步学习,掌握单片机应用系统的有关知识,加深了解单片机的工作原理。
初步掌握简单的单片机应用系统的设计、制作、调试的方法。
使自己的设计水平和对所学的知识的应用能力以及分析问题、解决问题的能力得到全面提高。
2·设计要求及设计指标要求(1)用8盏LED灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);(2)可以用输入按钮在几种灯光效果间切换;(3)可以通过按钮暂停彩灯效果,再次按下相同按钮后继续之前的效果。
指标1.按下按键1暂停流水灯的流水。
再次按下恢复并继续原来效果2.按下按键2则是一种流水花型,按下按键3则是第二种花型按下按键三则是第三种花型。
(按键1管暂停按键2,3,4分别对应一种流水方式)3.按键2实现的流水方式:从两边开始两盏灯依次向中间移动一位到第四盏第五盏同时亮过之后全亮之后以相反的顺序完成流水。
3·设计内容3.1硬件部分1.8051型单片机的基本结构及功能MCS——51 系列单片机内部包括CPU、存储器、并行接口、定时/计数器、中断系统。
艺术彩灯造型的PLC控制

1.了解应用指令、数据传送指令、比较指令和加1指令的应用 2.掌握条件跳转指令、移位寄存器指令和区间复位指令的理解和应用。 3.学会用PLC解决实际问题的思路,进一步熟悉编程软件的使用方法。
24.2实训设备和器件
项目所需设备、工具、材料见表24-1。 表24-1项目所需设备、工具、材料元器件明细表
X0 MOV X1 MOV X2 MOV M0
[S· [D· ] ] K100 T0 K100 T20
D10
D20
X0 X1 X2
Y0 Y1 Y2 Y3
X0
[S1· [S2· [D· ] ] ] CMP K100 C2 M0
D30 D30 X3
M0 M1
Y0
100>C2的当前值时,M0=ON
X5 MOV(P) D10 X3 (D)MOV D0 X4 (D)MOV C235 D20 图24-3 传送指令的使用 图24-4 位元件的传送 D10 M8000 MOV K1X0 K1Y0 D12
X1 DEC (P) D21 图24-7 二进制加1减1运算
ZCP指令的功能是将一个源操作数[S·]的数值与另两个源操作数[S1·]和[S2·]的数据进 行比较,结果送到目标操作元件[D·]中,源数据[S1.]不能大于[S2·]。在图24-6中,当X1 为ON时,执行ZCP指令,将T2的当前值与10和15比较,比较结果送到M3~M5中,若10>T2的当前 值时,M3为ON,若10~<T2的当前值≤15时,M4为ON,若15<T2的当前值时,M5为ON。当X1为 OFF时,ZCP指令不执行,M3~M5的状态保持不变。 1.5 加l指令和减1指令 加l指令INC和减1指令DEC的操作数均可取KnY、KnM、KnS、T、C、D、V,它们不影响零标志、 借位标志和进位标志。INC的指令代码为FNC24,DEC的指令代码为FNC25。INC指令的功能是将 指定的目标操作元件[D·]中二进制数自动加1,DEC指令的功能是将指定的目标操作元件[D·] 中二进制数自动减l,如图24-7所示,当X0每次由OFF变为ON时,D20中的数自动增加1,当X1每 次由OFF变为ON时,D21中的数自动减1。
AVR单片机习题

第一章 概述1、填空。
①.计算机由五大部件组成,单片机也不例外。
组成计算机的五大组成部件分别是、、、和。
②.在单片机开发系统中使用的语言有、汇编语言和,而在单片机应用系统中只能使用。
③.计算机由五大部件组成,单片机也不例外。
组成计算机的五大组成部件分别是、、、和。
④.单片机指的是把集成在一块芯片上。
⑤.单片机的内部部件是通过总线相连的。
一般计算机的总线有三类:、和。
⑥.A VR单片机已形成系列产品,对于AT90系列,ATtiny为产品,AT90S为产品,ATmega对应产品。
2、单片机主要应用在哪些领域?作什么用途?3、A VR系列的单片机由哪些部分组成?第二章 ATmega16芯片资源1、填空。
①.ATmega16的内部程序存储器的容量为KB;内部数据存储器为的容量为KB;而是内部数据存储器的补充,容量为其特点是。
②.ATmega16包含________________字节的EEPROM(也写作E2PROM)。
它是作为一个独立的数据空间而存在的,可以按字节读写,EEPROM的寿命至少为_______________次擦除。
③.A口、B口、C口、D口分别位于________________、_________________、_______________、_______________号引脚。
④.A VCC为__________________电源;AREF为__________________电源。
2、ATmega16单片机有哪些内部资源?使用什么样工作电源?工作电源的电压是多少?最高能使用多高的晶振频率?3、A VR系列单片机的flash存储器、SRAM存储器、EEPROM存储器各作什么用途?第四章 I/O 接口及应用1、填空。
①.通过一条输入指令可以 ,称为并行输入。
ATmega16有四个8位的并行I/O 口,每一个接口的控制分别由三个特定的变量决定,对于A 口这三个特定的变量为 、 和 。
AT89C51单片机的P2口控制

用AT89C51单片机的P2口控制8个Le d的流水灯的C程序看不懂?悬赏分:80 - 解决时间:2009-4-1 23:55 用AT89C51单片机的P2口控制8个L ed的流水灯的C程序看不懂?从P2-0到P2-7灯依次单独点亮后,又从P2-7到P2-0灯依次单独点亮如此反复循环,程序如下(低电平被点亮):#inclu de <R EGX52.H>v oid D elay1ms(un signe d int coun t){unsi gnedint i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}main(){ uns igned char LEDI ndex= 0;bi t LED Direc tion= 1;wh ile(1){ if(L EDDir ectio n) P2 = ~(0x01<<LEDI ndex); else P2 = ~(0x80>>L EDInd ex);if(LE DInde x==7) LEDD irect ion = !LED Direc tion;LEDIn dex = (LED Index+1)%8; Dela y1ms(500);} }我这程序我真的看不懂,这个bi t LED Direc tion= 1;是什么意思?从主函数开始,麻烦高手帮我解释每一句的意思以及它有用途?越详细越好!在下在此先谢谢了!提问者:t wp16899168 - 二级最佳答案#inclu de <R EGX52.H> voidDelay1ms(u nsign ed in t cou nt) /*延时函数,延迟时间为coun t×1ms)*/ {uns igned inti,j;for(i=0;i<coun t;i++)fo r(j=0;j<120;j++);}ma in(){u nsign ed ch ar LE DInde x = 0; /*声明8位变量LEDIn dex,用来指示8个LED中哪个被点亮,初始值为00000000*/bit L EDDir ectio n = 1; /*声明位变量L EDDir ectio n,用来指示点亮的方向,初始值为1*/while(1) /*一直循环执行大括号里面的语句*/{if(L EDDir ectio n) /*当LEDD irect ion=1时,0000 0001左移LE DInde x位,取反后送给P2端口,点亮一个LED*/P2 = ~(0x01<<LEDI ndex);el se /*当LEDD irect ion=0时,1000 0000右移LE DInde x位,取反后送给P2端口,点亮一个LED*/P2 = ~(0x80>>LED Index);i f(LED Index==7)/*当一次循环结束时,把LED Direc tion取反,下次循环时将以相反的顺序点亮*/L EDDir ectio n = !LEDDi recti on; LEDIn dex = (LED Index+1)%8; /*L EDInd ex+1对8取余,保证LEDI ndex在0~7之间*/De lay1m s(500); /*延时500ms,即L ED的点亮间隔为0.5s*/}}22回答者:紫翅zh idao- 四级 2009-3-23 12:20我来评论>>提问者对于答案的评价:谢谢一楼的回答,三楼回答好一点,谢谢!相关内容?求:单片机控制双色LED灯流水亮起的程序1 2010-1-9流水灯利用单片机的P1口控制LED的发光闪烁,在利用编程实现模拟广告灯2009-11-8?怎样让单片机在P1.和P2口同时控制两个不同花样的流水灯呢? 2009-6-29 基于at89c51单片机的led彩灯控制器管内LED板模块硬件图中的芯片C D4076在电路中有何作用? 5 2009-5-23 用P rotue s软件实现AT89C51单片机控制的跑马灯的仿真,8个LED实现左移和右移。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学
学生实验报告
实验课程名称单片机原理与应用
实验名称 P口彩灯控制
实验类型综合性
开课实验室软件与通信实验室
学院信息科学与工程学院
学生姓名学号
开课时间 2012 至 2013 学年第 2 学期
一、实验目的
1.通过实验了解单片机最小系统;
2.掌握P0口作为输入、输出方式使用时,CPU对P0口操作方法;
二、实验内容
1.正常情况下,8个发光二级管顺序点亮。
2.按下K1时,第1个和第8个发光二极管闪烁,闪烁间隔时间为1s
3.按下K2时,8个发光二极管闪烁,闪烁间隔时间为0.5s
4.发光二极管由单片机P0口控制
三、实验步骤
打开Keil程序,执行菜单命令“Project”—〉“New Project”创建“P口彩灯控制实验”项目,并选择单片机型号为A T89C51 。
执行菜单命令“File”—〉“New”创建文件,输入源程序,保存为:“P口彩灯控制实验.c”。
在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“P口彩灯控制实验.c”添加到项目中。
执行菜单命令“Project”—〉“Options for ‘Target 1’”,在弹出来的对话框中选择“Output”选项卡,选中“Greater HEX File”。
执行菜单命令“Project”—〉“Build Target”,编译源程序。
如果编译成功,则在“Output Window”窗口中显示没有错误,并创建了“P口彩灯控制实验. HEX”文件。
在proteus仿真平台上建立参考图系统,并将程序上载到虚拟芯片上运行。
四、实验调试及结果
程序:
实验结果:
1、8个发光二极管顺序点亮:
2、按下k1:
3、按下k2
五、实验分析
按照原理图连接电路,在proteus软件中进行仿真,通过Keil 软件编程并最终形成.hex 软件,最终由两个软件联机进行调试和仿真。
实验通过P0口对输入输出的控制来点亮LED,形成循环控制闪烁。
在运行中使用定时中断完成闪烁间隔时间的设定,最终完成实验。
六、实验思考与总结
本次实验总体来说并没有遇到多大的困难,由于有上次仿真实验的经历,所以实验过程还算顺利。
在灯的颜色选择方面由于书本上没有相关参考且对原件的使用也不是熟练所以花了不少时间。
在程序方面在灯的亮灭控制遇到了一点小问题,在经过耐心查找和调试后也终于解决了。
经过这两次的仿真实验后,我已经逐渐喜欢上了这款仿真软件,相信后面还有更有趣的东西等着我。
加油!。