汽电13班单片机实训指导书_第1页
汽电13班单片机实训指导书_第2页
汽电13班单片机实训指导书_第3页
汽电13班单片机实训指导书_第4页
汽电13班单片机实训指导书_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、-作者xxxx-日期xxxx汽电13班单片机实训指导书【精品文档】 单片机原理与接口技术实训指导书适用班级: 汽电13-1、2班 指导教师: 李 萍实习时间: 2014/6/30 2014/7/4 浙江水利水电学院机汽分院单片机原理与接口技术实训任务书 一、实训目的、要求单片机原理与接口技术实训是汽电专业学生学习该课程后,进行的一次全面的综合训练,以达到以下的目标要求:1 进一步熟悉和掌握AT89C51单片机的结构、工作原理、指令系统、中断系统及定时系统等。2 掌握AT89C51单片机的接口技术及相关外围芯片的外特性,控制方法。3 掌握以单片机核心的电路设计的基本方法和技术。4 利用开发软件P

2、roteus与Keil软件,完成相应的硬件电路原理图、C语言软件程序流程图及程序清单,并进行系统调试,逐步掌握模块化程序设计方法和调试技术。5 使学生了解开发单片机应用系统的全过程,为今后从事汽电产品的开发、生产、管理及维护工作打下一定的基础。二、计划安排 地点:工训中心313 日期汽电13-1班汽电13-2班时间及任务安排630(一)8:1010:40 ,12:00 14:00 14:0016:30 ,18:00 20:00 课题一设计与调试7. 1(二)8:1010:40 ,12:00 14:00 14:0016:30 ,18:00 20:00课题二设计与调试7. 2(三)8:1010:4

3、014:3017:00课题三设计与调试7. 3(四)14:0016:30 ,18:00 20:008:1010:40 ,12:00 14:00 课题四设计与调试7. 4(五)14:0016:30 ,18:00 20:008:1010:40 ,12:00 14:00 答辩,撰写报告三、课题名称及设计要求:详见指导书。五、实训成果及要求设计说明书一份,包括:功能、硬件电路原理图、软件设计思路、程序清单。设计说明书要求:步骤清楚 、层次分明。设计图纸要求:铅笔绘制,画面整洁,线条、字体清晰,符合工程制图要求。六、考核方法根据实训成果(30%)、答辩表现(40%)和平时表现(20%)分别按优、良、中、

4、及格、不及格五级记分评定。七、参考资料单片机应用技术(C语言版) 王静霞 电子工业出版社单片机应用技术 李秀忠 人民邮电出版社单片机课程设计 蔡明文 华中科技大学出版社 指导老师:李萍 2014年5月单片机原理与接口技术实训指导书课题一 0999计数器的设计1、预备知识:数码管的显示方法1)数码管的工作原理 数码管由8个发光二极管构成,通过不同的组 合可用来显示数字0 9、字符A F、H、L、P、U及小数点“.”。数码管显示器根据公共端的连接方式,可分为共阴极数码管(将所有发光二极管的阴极连在一起)和共阳极数码管(所有阳极连在一起)。以共阳极数码管为例,8个发光二极管的阳极连接在一起,其共阳极

5、接高电平(+5V),其它引脚接段驱动电路输出端。当某段为低电平时,该端所连接的字段导通并点亮,根据发光段的不同组合显示数字或字符。 共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻。 2)数码管的字形编码要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。共阴极和共阳极数码管的字形编码各不相同,见下表: 3) LED数码管的静态显示方式 静态显示就是显示驱动电路具有输出锁存功能,单片机要将所显示的数据送出去后,数码管始终显示该数据(不变),CPU不再控制LE

6、D。到下一次显示时,再传送一次新的显示数据。静态显示的优点:显示的数据稳定,无闪烁,占用CPU时间少。并行接口电路中每一个数码管需要由一个8位输出接口控制,数码管的公共端按共阴或共阳极分别接地或VCC。静态显示的缺点:当显示位数较多时需要并行I/O接口较多。2、功能:功能1:使用单片机外部中断实现099的加法计数,并采用两个共阴极LED 组成的显示屏将其显示出来。其中P0、P1口的8个引脚分别接到加法计数器的个位和十位LED数码管的ag及dp端。每按一次K1(接到外部中断0)进行加法计数,当加到99时,再按加数按钮无效,数据仍显示为99。清零键接P3.6,按下清零键实现计数清零。功能2:在功能

7、1的基础上,实现099的加减计数。硬件上增加一个按键 K2(接到外部中断1)进行减数,当减到00时,减数按钮无效,数据仍显示00。功能3:在功能2的基础上,实现0999的加减计数。硬件上增加P2口接到计数器的百位显示数码管输出端。3、设计分析(功能一):8段LED数码管输出采用静态显示方式。硬件上将AT89C51的P0、P1口与共阴极LED数码管的8个引脚相连。软件上通过Show_Count_On_DSY()子程序可实现计数值个位和十位的数据分离与独立显示。电路中接按键K1到外部中断0作为加数控制。硬件上按键输入时要并联一个10K欧的上拉电阻才能接至输入端。软件上要注意对数据的判断。当计数值已

8、为最大值99时,则计数值不变,返回主程序。此外,单片机正常工作必须具备时钟电路和复位电路。其中时钟电路为单片机提供其工作时所必须的时钟脉冲作为基本时序信号,复位电路可实现单片机上电时从初始状态开始工作。 图1 电路仿真图所用元件如下:共阴极数码管:7SEG-COM-CAT-GRN 电容:CAP路径下晶振:CRYSTAL单片机:AT89C51电阻:RES路径下按钮:BUTTON+5V电源:Terminal Mode中的Power地:Terminal Mode中的Ground开始外部中断设置显示十位、个位计数值十位、个位分离清零键按下?计数值清零YN Int_0:加1子程序加1计数值为100?返回

9、Y计数值赋值99N 图2 099加法计数器程序流程 (功能一)#include <reg51.h> #define uchar unsigned char #define uint unsigned int /09的共阴极数字编码,最后一位为黑屏uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar Display_Buffer2=0,0; /计数值分解后各位待显示计数值uint Count=0; /计数值sbit Clear_Key=P36; /清零键void Show_Co

10、unt_On_DSY( ) /子程序:在数码管上显示计数值 Display_Buffer1=Count/10; /获取2个数位 Display_Buffer0=Count%10;if(Display_Buffer1=0) /十位为零时不显示 Display_Buffer1=0x0a;P0=DSY_CODEDisplay_Buffer0; /两位数码管独立显示P1=DSY_CODEDisplay_Buffer1;void main( ) /主程序 P0=0xff; /P0、P1口设为输出方式P1=0xff;IT0=1; /INT0为下降沿触发方式EA=1;EX0=1; /允许总中断、允许外部中断

11、1中断while (1) if(Clear_Key=0) / 清零 Count=0; Show_Count_On_DSY( ); /持续刷新显示 void int_0( ) interrupt 0 /外部中断0服务程序,中断号为interrupt 0 Count+; /加一计数 if(Count=100) Count=99; /如原计数值为99则不变 注:在功能2中,外部中断1服务程序的中断号为interrupt 2【精品文档】 课题二 闪烁灯的设计1、 某单片机控制系统要求如下: 功能1:1) 在正常情况下,8个发光二极管常亮。2)按下K1时,第1个和第8个发光二极管闪烁,闪烁5次;3) 按

12、下K2时,8个发光二极管变暗。4)发光二极管由P0口控制,要求P0输出低电平时驱动发光二极管亮,二极管接至+5V电源时需串联一个100欧姆的电阻。 功能2:在功能1基础上,增加以下功能:按下K3时,8个发光二极管闪烁10次,闪烁时间间隔为1s。 功能3:在功能1、2基础上,增加以下功能:按下K4时,8个发光二极管轮流点亮,循环5次,闪烁时间间隔为1s。 提示:功能2中1S时间间隔的实现可参考书本P95任务7中程序中的delay1s( )子程序,此时注意主程序需要增加定时器T1工作方式TMOD值的设置。2、硬件设计:在PROTEUS中有四种不同颜色的发光二极管,为显示不同颜色可使用4种发光二极管

13、。由P0口内部结构可知,作为I/O口使用时,需要加上拉电阻,在此可采用排阻。开关K1、K2和K3可接至P1口某3个未用的引脚上。单片机 AT89C51电阻 RES路径下开关 SWITCH发光二极管 LED-排阻 RESPACK-83、 程序设计:功能一的程序参考流程图如下图所示。开始K1按下?PNP0、P1口置为I/O方式(0xFF)K2按下?8个二极管暗YY8个二极管亮liang N3、功能一的参考程序如下:#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit Key_1=P10

14、; /定义位变量Key_1和Key_2sbit Key_2=P11;sbit P00=P00; /定义位变量P00和P07sbit P07=P07;void delay(unsigned char i)/延时函数,无符号字符型变量i为形式参数 unsigned int j,k;/定义无符号字符型变量j和k for(k=0;k<i;k+)/双重for循环语句实现软件延时 for(j=0;j<500;j+);void Key_1_Flash( ) /按键K1的处理程序 uchar u; for(u=0;u<10;u+) /闪烁10次 P00=!P00; /取反 P07=!P07;

15、 delay(200); /延时 void main( ) /主程序 P0=0x00; /常态下8个发光二极管均亮 while(1) if(Key_1=0) Key_1_Flash( ); /若K1按下,则进行按键处理 else if(Key_2=0) P0=0xff; /若K2按下,则进行按键处理 else P0=0x00; /无键按下,则常亮 4、仿真调试:1)源程序输入、编辑及编译,调试运行成功后生成目标文件XX.HEX。 2)程序调试:在调试过程中打开工作寄存器窗口、特殊功能寄存器窗口、内部RAM窗口,观察程序运行过程中各相关窗口的单元值。调试时,先采用单步和断点的形式运行程序,迅速找

16、出问题所在,程序通过后再全速运行。3)电路仿真:用Proteus软件绘制仿真电路,将软件生成的目标代码文件下载到AT89CT51中,运行仿真电路直至实现电路功能。 课题三、交通灯控制系统的设计1、 功能:设计一个十字路口交通灯控制系统,分为东西道和南北道,设东西道为A道,南北道为B道;1)正常情况下轮流点亮交通灯,状态如表4.8所示。2)特殊情况下,A道通行。3)有紧急车辆通过时,A、B道均为红灯。2、系统处理方案及器件选择 本系统采用AT89C51作为核心控制器件,红、绿、黄灯各四个作为交通指示等,处理紧急车辆的中断开关两个。3、硬件设计由于A道、B道上的两个同色灯均可连在一起,可用AT89

17、C51的P1.0P1.5共六根输出线控制各色交通灯的点亮与熄灭;要求低电平输出驱动交通灯点亮。A红A黄A绿B红B黄B绿P1端数据状态说明110011F3状态1:A通行、B禁行110、1011状态2:A绿灯闪、B禁行101011EB状态3:A警告、B禁行011110DE状态4:A禁行、B通行011110、1状态5:A禁行、B 绿灯闪011101DD状态6:A禁行、B警告按键S1和S2模拟紧急情况和特殊情况的发生,分别接到外部中断0(P3.2)和外部中断1 (P3.3)引脚。元器件清单见下表:绿灯LED-GREEN 红灯LED-RED 黄灯LED-YELLOW 电阻:RES路径下按钮:BUTTON

18、单片机AT89C51 +5V电源:Terminal Mode中的Power地:Terminal Mode中的Ground4、软件设计根据硬件设计原理图,画出主程序流程图。采用自上而下的设计方法进行程序设计,对紧急车辆的处理,采用中断的方法,由中断处理程序处理。设置中断处理程序时,注意如何保护进入中断前的状态(信号灯、P口、各寄存器状态等),使得中断程序执行后能够回到交通灯中断前的状态。/功能:交通灯控制程序#include <REG51.H>unsigned char t0,t1;/定义全局变量,用来保存延时时间循环次数/函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用1

19、2MHz晶振,定void delay0_5s1() for(t0=0;t0<0x0a;t0+)/ 采用全局变量t0作为循环控制变量 TH1=0x3c;/ 设置定时器初值 TL1=0xb0; TR1=1; / 启动T1 while(!TF1);/ 查询计数是否溢出,即定时50ms时间到,TF1=1 TF1=0;/ 50ms定时时间到,将定时器溢出标志位TF1清零 ×tvoid delay_t1(unsigned char t) for(t1=0;t1<t;t1+)/ 采用全局变量t0作为循环控制变量 delay0_5s1(); /函数:int_0/函数功能:外部中断0中断函

20、数,紧急情况处理,当CPU响应外部中断0的中断请求时,/ 自动执行该函数,实现两个方向红灯同时亮10秒void int_0() interrupt 0/ 紧急情况中断 unsigned char i,j,k,l,m; i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; P1=0xdb;/ 两个方向都是红灯 delay_t1(20);/ 延时10秒 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m; /函数:int_1/函数功能:外部中断1中断函数,特殊情况处

21、理,当CPU响应外部中断1的中断请求时,/ 自动执行该函数,实现A道放行5秒void int_1() interrupt 2/ 特殊情况中断 unsigned char i,j,k,l,m; EA=0;/关中断 i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; EA=1; / 开中断 P1=0xf3;/ A道放行 delay_t1(10);/ 延时5秒 EA=0;/ 关中断 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m; EA=1;/开中断void main()/主函数 unsigned char k; TMOD=0x10;/ T1工作在方式1 EA=1;/ 开放总中断允许位 EX0=1;/ 开外部中断0中断允许位 IT0=1;/ 设置外部中断0为下降沿触发 EX1=1;/ 开外部中断1中断允许位 IT1=1;/ 设置外部中断1为下降沿触发 while(1) P1=0xf3;/ A绿灯,B红灯,延时5秒 delay_t1(10); for(k=0;k<3;k+)/ A绿灯闪烁3次 P1=0xf3; P1=0xfb; delay0_5s1(); P1=0xeb;/ A黄灯,B红灯,延

温馨提示

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

评论

0/150

提交评论