单片机实训任务书_第1页
单片机实训任务书_第2页
单片机实训任务书_第3页
单片机实训任务书_第4页
单片机实训任务书_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

PAGE25PAGE1信息工程学院实训报告题目:1.16×16点阵显示实训2.电脑时钟学生姓名:苏倩文学号:0967106134专业:自动化班级:09级自动化一班指导教师:贾玉瑛、李爱莲、梁丽、陈波、李琦目录TOC\o"1-2"\h\uTOC\o"1-3"\h\u13350实训任务书 314928摘要 5201911.16×16点阵显示实训 61.1实训目的61.2实训内容……………………….61.3实验电路……………………….61.4实验步骤……………………..71.5实验程序………………………102.25750电脑时钟 142.1实训目的………………………142.2实训内容………………………142.3程序参考框图…………………142.4实验步骤…………………….142.5实验程序………………………1411898实训总结 232871参考文献 25内蒙古科技大学实训任务书课程名称微计算机应用及计控技术实训实训地点实训名称数字电压表的设计B307、B308指导教师贾玉瑛、李爱莲、梁丽、陈波、李琦时间第十九周一、实训内容1、设计硬件电路,计算A/D转换器的地址(FFE0H)。2、进行A/D转换,将转换输出的数据转换成相应的电压值。3、完成LED的软、硬件设计并将相应的电压值在LED上显示出来。4、要求数字电压表可以测量0-5V的电压,并在4位数码管上显示出来,测量的最小分辨率为0.019V,测量误差约为0.02V。二、参考书目《新编单片机原理与应用》潘永雄,西安电子科技大学出版社,2003.2第1版《单片微型计算机大学读本》李勋,北京航空航天大学出版社,1998.11第1版《基于proteus的单片机系统设计与仿真实例》蒋辉平,机械工业出版社,2009.7三、评分标准实训成绩评定依据包括以下几点:1、实训态度及出勤情况(10%)――态度是否认真,有无迟到早退等;2、设计方案的合理性、可行性(20%)3、操作的规范性或正确性(10%)――是否认真阅读操作说明书,是否严格按照规程进行操作,是否具有严格的科学态度,有无明显的操作失误;4、实训结果(20%)――实训内容的完整性,有无抄袭他人的现象;5、实训报告提交时效性(10%)――是否及时提交实训报告;6、实训报告内容(30%)——撰写是否认真,格式是否规范,内容是否完整,数据结论是否合理等。分为优、良、中、及格、不及格五个等级或给分数。考核方式:实训期间教师现场检查;评阅实训报告。课程名称微计算机应用及计控技术实训实训地点实训名称六位数字电子时钟B307、B308指导教师贾玉瑛、李爱莲、梁丽、陈波、李琦时间第十九周一、实训内容1、计算LED显示代码,分为字形码和字位码,即对应的字形口和字位口。2、计算字形口和字位口的地址,分别为FFDCH、FFDDH。3、了解键盘及LED显示器的硬件原理图。弄清LED显示器的连接方式。4、用扫描法读取键盘,确定操作键对应于硬件电路的具体位置。5、定时扫描键盘,并发出相应显示指令,当按下具体数字键时,LED显示器上的数字依次变化,实现键盘对表功能。二、参考书目《新编单片机原理与应用》潘永雄,西安电子科技大学出版社,2003.2第1版《单片微型计算机大学读本》李勋,北京航空航天大学出版社,1998.11第1版《基于proteus的单片机系统设计与仿真实例》蒋辉平,机械工业出版社,2009.7三、评分标准实训成绩评定依据包括以下几点:1、实训态度及出勤情况(10%)――态度是否认真,有无迟到早退等;2、设计方案的合理性、可行性(20%)3、操作的规范性或正确性(10%)――是否认真阅读操作说明书,是否严格按照规程进行操作,是否具有严格的科学态度,有无明显的操作失误;4、实训结果(20%)――实训内容的完整性,有无抄袭他人的现象;5、实训报告提交时效性(10%)――是否及时提交实训报告;6、实训报告内容(30%)——撰写是否认真,格式是否规范,内容是否完整,数据结论是否合理等。分为优、良、中、及格、不及格五个等级或给分数。考核方式:实训期间教师现场检查;评阅实训报告。摘要报告分为两个课题:一、16*16点阵显示实训;二、电脑时钟。这两个课题主要掌握16*16点阵块、六位LED数码显示器、键盘的功能及操作原理。通过软件编程、下载、在仿真器上运行,实现相应的逻辑功能。LED点阵显示屏由多个独立的LED发光二极管封装而成,可以显示数字、符号等。课题一是一种基于AT89C52单片机的16*16点阵的设计方案,利用单片机I/O口或以扩展锁存器的方式控制点阵显示,其方案包括系统具体的硬件设计、软件流程图、C51程序和仿真器模拟运行等方面。电脑时钟的设计主要是考查对键盘、定时器及LED显示器的功能及操作原理的掌握。通过键盘输入时间初值,定时器计时,实现六位LED显示器显示时间。关键词:16*16点阵、电脑时钟16×16点阵显示实训一、实训目的(1)利用单片机I/O口或以扩展锁存器的方式控制点阵显示。(2)掌握单片机与16×16点阵块之间接口电路设计及编程。二、实训内容利用实验系统16×16点阵实验单元,以两种方式控制点阵显示。要求编制程序实现汉字点阵循环显示:“专业班级姓名学号”(也可自行设计显示内容)三、I/O口地址分配扩展名称口地址用处控制方式273(4)0FFE3H列代码1扩展锁存器273(1)0FFE0H列代码2扩展锁存器273(3)0FFE2H行扫描1扩展锁存器273(2)0FFE1H行扫描2扩展锁存器I/O口分别提供字形代码(列码)、扫描信号(行码),凡字形代码位为“1”、行扫描信号为“1四、实验电路五、实训步骤1、实验连线⑴连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。⑵点阵显示单元的16×16CS与译码单元Y0相连。⑶用8芯扁平电缆将点阵显示单元的数据总线插座与数据总线单元任一插座相连。2、在与PC联机状态下,编写调试程序,用连续方式运行程序。3、观察运行结果(自己设定显示结果)本实验显示的内容为:“我爱你苏倩文”。附:实验原理 汉字显示在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一副图像。所以在这个汉字屏上不仅可以显示汉字,也可以显示在256像素范围内的任何图形。扫描原理如下:在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。如果用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分,一般我们拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。采取行扫描或列扫描的方式,可将字显示出来。汉字字模的提取汉字字模的提取可借助专用的软件来完成。这里介绍的是“字模提取V2.2”首先运行“字模提取”,在右下角的“文字输入区”输入欲提取字模的汉字,输入完毕后请按Ctrl+Enter结束。如我们要提取“达爱思”这几个汉字的字模(输入文字后请按Ctrl+Enter):点击左侧的“取模方式”,以本实验指导书的实验程序清单为例,在这里我们选择“A51格式”,此时程序即把汉字“达爱思”的代码送入右下角的“点阵生成区”:此时汉字的点阵代码已生成,将其复制到您的源程序中即可使用。本实验指导书中的“LED16×16点阵显示实验”使用的是“字模提取V2.2”横向取模方式,具体设置请点击左侧的“参数设置”,再选择“其它选项”六、实验程序#include<reg52.h>#include<absacc.h>#defineLIE_HXBYTE[0XFFE3]#defineLIE_LXBYTE[0XFFE0]#defineHANG_HXBYTE[0XFFE2]#defineHANG_LXBYTE[0XFFE1]#defineuintunsignedint#defineucharunsignedcharUcharcodetable_L[]={0x60,0x40,0x1c,0x50,0x10,0x48,0x10,0x48,0x10,0x40,0xFF,0xFE,0x10,0x40,0x10,0x48,0x70,0x28,0x1c,0x30,0x13,0x20,0x10,0x50,0x90,0x92,0x10,0x50,0x14,0x60,0x08,0x02,/*我*/0x00,0xF8,0xFc,0x90,0x48,0x10,0x90,0x20,0xFc,0xFE,0x44,0x02,0x24,0x00,0xFc,0xFC,0x20,0x00,0xe0,0xF0,0x30,0x20,0xd0,0x40,0x08,0xC0,0xc6,0x30,0x31,0x0E,0x0c,0x04,/*爱*/0x90,0x00,0x90,0x80,0x88,0x04,0xc8,0xFE,0x44,0x04,0x2c,0x48,0x16,0x40,0x45,0x50,0xc4,0x48,0x44,0x48,0x42,0x44,0x42,0x46,0x14,0x44,0x84,0x40,0x04,0x80,0x00,0x00,/*你*/0x20,0x40,0x20,0x40,0xFF,0xFE,0x20,0x40,0xa0,0x40,0x80,0x00,0xFc,0xF0,0x80,0x10,0xc8,0x10,0x48,0x14,0x6c,0x12,0x24,0x12,0x10,0x10,0x08,0x90,0x06,0x60,0x00,0x00,/*苏*/0x08,0x40,0x08,0x40,0xF8,0xFC,0x08,0x40,0xc4,0xFC,0x0c,0x40,0xe6,0xFC,0x05,0x00,0xc4,0xF8,0x44,0x08,0xc4,0xF8,0x44,0x08,0xc4,0xF8,0x44,0x08,0x44,0x28,0x44,0x10,/*倩*/0x40,0x00,0x80,0x00,0x80,0x00,0xFF,0xFE,0x10,0x20,0x10,0x20,0x10,0x20,0x20,0x40,0x20,0x40,0x40,0x80,0x80,0x00,0x40,0x80,0x20,0x60,0x81,0x1E,0x07,0x08,0x00,0x00/*文*/};ucharcodetable_H[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};ucharm,s,w;uinttime;voiddelay(uintn)/*延时*/{ uinti,j; for(i=0;i<n;i++) for(j=0;j<20;j++);}main(){ while(1){ for(time=0;time<100;time++) { m=w*32; HANG_L=0X00;/*读汉字的上半部分*/ for(s=0;s<8;s++) { LIE_H=table_L[m]; LIE_L=table_L[m+1]; HANG_H=table_H[s]; m=m+2; delay(2); } m=16+w*32; HANG_H=0X00;/*读汉字的下半部分*/ for(s=0;s<8;s++) { LIE_H=table_L[m]; LIE_L=table_L[m+1]; HANG_L=table_H[s]; m=m+2; delay(2); } } w++; if(w==6) w=0; }}电脑时钟(定时器、中断器综合应用)一、实训目的熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。二、实训内容编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。三、程序参考框图四、实验步骤1、在与PC联机状态下,编写、调试程序,实现电脑钟功能。五、实验程序#include<reg52.h>#include<absacc.h>#include<intrins.h>#defineled_zxXBYTE[0XFFDC]#defineled_zwXBYTE[0XFFDD]#definen_tabXBYTE[0XFFDE]#defineucharunsignedcharUcharcodeG_TAB[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0x88,0x83,0xc6,0xa1,0x86,0x8e};/*0-9*/ucharcodezx_TAB[]={0XB0,0x8e,0XA4,0XC0,0XF9,0xa1,0xc6,0x86,0X90,0X92,0X80,0X99,0XF8,0x83,0x88,0X82};/*a-f*/uchartab[6]={0XC0,0XC0,0XC0,0XC0,0XC0,0XC0};uchart_ab[6]={0};ucharx,xx;uchara,b,c;ucharm;uchart_h,t_m,t_s;ucharT0CNT;voidinit_sys1()/*初始化*/{x=0;b=0;c=1;a=3;//led_zx=0;}voidinit_sys2()/*初始化*/{IE=0X82;/*CPU开中断,允许T0中断*/TMOD=1;/*T0工作于方式1*/TL0=0XB0;TH0=0X3C;T0CNT=10;TR0=1;/*启动定时器T0*/}zw=_cror_(zw,1);/*zw循环右移一位*/led_zw=zw;delay(10);}}voiddelay(ucharab)/*延时*/{ucharaa;aa=ab;for(;aa>0;aa--);}voids_tab()/*键盘扫描*/{ucharaaa=0;uchari,zw;zw=0xef;led_zw=zw;for(i=0;i<8;i++){aaa=n_tab&0x3;if(aaa==1){b=i;tab[x]=zx_TAB[b];x++;}elseif(aaa==2){b=i+8;tab[x]=zx_TAB[b];x++;}voidp_tab()/*是否有键按下*/{a=n_tab&0x3;/*读键盘*/if(a!=3&&c==1)/*有无闭合键按下*/{delay(1000);a=n_tab&0x3;/*防止抖动*/if(a!=3){s_tab();c=0;}}}voidz_h()/*将扫描得到的键盘字形码转换为相应的数值*/{uchari,j;for(i=0;i<6;i++)for(j=0;j<10;j++)if(tab[i]==G_TAB[j])t_ab[i]=j;t_h=t_ab[0]*10+t_ab[1];t_m=t_ab[2]*10+t_ab[3];t_s=t_ab[4]*10+t_ab[5];}voidp_s()/*判断输入的时间格式是否正确*/{if(t_h>=0&&t_h<24)if(t_m>=0&&t_m<60)if(t_s>=0&&t_s<60)init_sys2();elsewhile(1){led_zw=0x20;led_zx=0xc;}elsewhile(1){led_zw=0x20;led_zx=0xc;}elsewhile(1){led_zw=0x20;led_zx=0xc;}}voidLED_D()/*LED数码管显示*/{led_zx=G_TAB[t_h/10];led_zw=0x20;delay(100);led_zx=G_TAB[t_h%10];led_zw=0x10;delay(100);led_zx=G_TAB[t_m/10];led_zw=0x8;delay(100);led_zx=G_TAB[t_m%10];led_zw=0x4;delay(100);led_zx=G_TAB[t_s/10];led_zw=0x2;delay(100);led_zx=G_TAB[t_s%10];led_zw=0x1;delay(200);}voidmain(){init_sys1();for(;x<6;){p_tab();m=0x20;for(xx=0,led_zw=m;xx<6;xx++){led_zx=tab[xx];delay(150);m>>=1;led_zw=m;}led_zw=0;a=n_tab&3;if(a==3)c=1;}z_h();p_s();while(1)LED_D();}voidtimer0()interrupt1/*产生0.1S的时间,循环10次为1S*/{TL0|=0XB0;/*T0重装初值*/TH0=0XdC;T0CNT--;if(T0CNT==0)/*是否计时到1秒*/{T0CNT=10;t_s++;if(t_s==60)/*是否计时到1分*/{t_s=0;t_m++;if(t_m==60)/*是否计时到1时*/{t_m=0;t_h++;if(t_h==24)t_h=0;}}}}实训总结通过这次单片机实训,我收获颇多:这次单片机实训要求我们在一周内完成两个实训内容。相比之前的单片机实验,这次实训难度虽然增加了,但在实训前,老师提前下发了实训要求和内容,使得我们有充分的时间和精力来精心准备这次实训,决心把这次实训独立地、圆满地完成,而不只是纯粹为了应付了事。在这次单片机实训中,自己提前一周开始准备自己所选的实训内容,通过查阅单片机教材、请教同学、上网查资料等方式认真为这次实训做准备,尤其是在实验程序的编写方面投入很大,并且部分借鉴了同学的程序。不管怎么说,到最后还算成功地完成了实训的实验内容。正所谓“一份耕耘一份收获”,只要有付出,就一定有汇报。这次单片机实训,并不仅是单纯为了做实验,从实训的准备到具体的做实验,再到最后的写实训任务书,每一个过程都对我们是一次很好的锻炼。在以前,我们还没有过这样长时间同时进行多个实验的学习任务。这次单片机实训,对我们来说,本身就是一个不小的挑战。在实训中,自己结合实训要求和实训内容,精心准备、认真执行、全力以赴。通过这次实训,自己有如下收获:1.对单片机的相关知识有了

温馨提示

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

评论

0/150

提交评论