单片机应用系统设计实例_第1页
单片机应用系统设计实例_第2页
单片机应用系统设计实例_第3页
单片机应用系统设计实例_第4页
单片机应用系统设计实例_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

公选课

——《单片机基础及应用》设计实例1、用1个LED发光二极管,设计一个循环闪烁的指示灯。2、用8个LED发光二极管,设计一个循环闪烁的流水灯。3、通过设置中断,改变灯的循环方向,控制灯的亮灭。4、通过定时,精确控制P1.0闪烁500ms。5、以秒为单位,用LED数码管显示当前计数值。1、用1个LED发光二极管,设计一个循环闪烁的指示灯。如何设计硬件和软件?1.1硬件设计注意:在接下来的仿真中,省略时钟及复位电路。1.2软件设计1)初始化51头文件、宏定义2)主程序,即main()程序灯的亮灭控制3)延时功能延时子程序设计#include<at89X52.h>#defineuintunsignedint#defineucharunsignedcharvoidmain(void){ while(1) { P1_0=0; delay(5000); P1_0=1; delay(5000); }}voiddelay(uintt)//延时0.1*t毫秒{

uinti;do{

for(i=0;i<10;i++);}while(t--);}voiddelay(uintt);

//声明函数2、用8个LED发光二极管,设计一个循环闪烁的流水灯。2.1硬件设计2.2软件设计1)初始化51头文件、宏定义2)主程序,即main()程序灯的循环闪亮控制3)延时功能延时子程序设计如何进行灯的循环闪亮控制?intrins.h内部函数库(包含变量循环移位、位操作等函数)需要将该函数包含进来,同时对函数原型进行声明。#include<INTRINS.H>uchar_crol_(uchara,ucharn); /*函数原型,左循环*/uchar_cror_(uchara,ucharn);/*函数原型,右循环*/#include<INTRINS.H>uchar_crol_(uchara,ucharn); /*函数原型*/uchar_cror_(uchara,ucharn);/*函数原型,右循环*/voidmain(void){ uinta=0xfe;while(1) { P1=a; delay(5000); a=_crol_(a,1); }}3、通过设置中断,改变灯的循环方向,控制灯的亮灭。3.1硬件设计1)中断的概念中断技术是计算机中一项很重要的技术。中断系统的功能是为了解决快速CPU和慢速外设间的矛盾,它由软件和硬件组成。有了中断系统,能使计算机的功能更强、效率更高、使用更灵活。51单片机系统有5个中断源。2)日常中断的例子你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。3)计算机中的中断概念中断是指由于某种随机事件(甲方)的发生,计算机(乙方)暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。将能引起中断的事件称为中断源。CPU现行运行的程序称为主程序。处理随机事件的程序称为中断服务子程序。4)相关的特殊功能寄存器TCONTF1TR1TF0TR0IE1

IT1

IE0

IT0IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.

EA—ET2ESET1EX1ET0EX0IEEX0/EX1位:分别是INT0/INT1的中断允许控制位:=0时禁止中断;=1时允许中断。EA:总的中断允许控制位(总开关):=0时禁止全部中断;=1时允许中断。3.2软件设计1)初始化51头文件、宏定义2)主程序,即main()程序灯的循环闪亮控制中断初始化3)延时功能4)中断服务程序设计3.2软件设计中断初始化触发方式设置中断允许控制中断服务程序设计中断初始化IT0=1;EA=1;EX0=1;中断服务程序函数名()interruptn[usingm]{}Voidint0(void)interrupt0/*外部中断0的服务函数定义,使用第二组工作寄存器组*/voidint0(void)interrupt0{uchara=0xfe,i=16; P1=0x0; delay(5000); P1=0x0ff; delay(5000); P1=0x0; delay(5000); P1=0x0ff; delay(5000); do { P1=a; delay(5000); a=_cror_(a,1); }while(i--);}4、通过定时,精确控制闪烁500ms。针对任务一进行操作。使用定时器T01)设置定时器工作方式2)计算初始值3)编写初始化程序4)编写中断服务程序1)设置定时器工作方式GATEC/TM1M0GATEC/TM1M0TMOD000000012)计算初始值晶振12Mhz1个机器周期:定时50ms,需要计数:定时器初始值:定时500ms,需要中断10次。3)编写初始化程序TMOD=0X01;TH0=0X3C;TL0=0XB0;EA=1;ET0=1;TR0=1;4)编写中断服务程序Voidtimer0(void)interrupt1{TH0=0x3c;TL0=0xb0;i++; if(i==9) { i=0; P1_0=~P1_0; }}5、以秒为单位,用LED数码管显示当前计数值。LED数码管显示电路原理LED数码管的结构:(1)共阳(2)共阴@共阳数码管每个段笔画是用低电平(“0”)点亮,共阴数码管段笔画是用高电平(“1”)点亮公共阳极hgfedcbaabcdgefh公共阴极hgfedcbaabcdgefhhg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论