单片机实验报告0001_第1页
单片机实验报告0001_第2页
单片机实验报告0001_第3页
单片机实验报告0001_第4页
单片机实验报告0001_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

单片机实验报告班级:应电0921

姓名:郭龚有

学号:09472106

襄樊学院理工学院2020-6-28实验1Keil的利用(汇编语言)实验目的:初步把握Keil(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和利用,能够输入和运行简单的程序。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机一台。实验原理及环境:在运算机上已安装Keil软件。那个软件既能够与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也能够不与硬件连接,仅在运算机上以虚拟仿真的方式运行程序。若是程序有对硬件的驱动,就需要与硬件连接;若是没有硬件动作,仅有软件操作,就能够够利用虚拟仿真。实验内容:把握软件的开发进程:1) 成立一个工程项目选择芯片确信选项。2) 加入C源文件或汇编源文件。3) 用项目治理器生成各类应用文件。4) 检查并修改源文件中的错误。5) 编译连接通事后进行软件模拟仿真。6) 编译连接通事后进行硬件仿真。7) IAP编程操作按以上步骤实此刻输出一个频率为1Hz的方波。在2的基础上,实现同时在和上各输出一个频率同为但电平状态相反的方波。实验步骤:如图1-1所示:①Project^②NewProject^③输入工程名test^④保留工程文件(鼠标点击保留按钮)弹出下一界面。如图1-2所示:①选CPU厂家(Atmel)-②选CPU型号(89C51),③选好后确信接着选晶振频率及生成HEX文件等。如图1-3所示:①Project-②OptionsforTarget‘Target—③在Target中—④更改CPU晶振频率为12MHz-⑤在Output-⑥选择生成HEX格式其它采纳缺省设置一⑦选好后确信。成立汇编源文件如图1-4所示:①File-②New,③弹出源文件编辑窗口。输入以下源文件:ORG0000HAGAIN:CPLMOVR0,#10涎时秒LOOP1: MOVR1,#100LOOP2: MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1SJMPAGAINEND源程序编写完后,①File-②SaveAs将文件以保留在E:\test目录下,取得汇编语言源程序。用项目治理器生成(编译)各类应用文件①点击Target1前之+号一显现②SourceGroup1-③点击它并按鼠标右键会生弹出下拉菜单见图1-5编译文件文件窗口一选择④AddFilestoGroup‘SourceGroup1’一⑤向项目中添加源文件一⑦在SourceGroup1前会显现一个+号一⑧点击之弹出test.asm文件名点击该文件名一⑨主窗口中会显现该程序编译:Project—Buildtarget就会生成一系列到文件如OBJ文件LST文件HEX文件等。检查并修改源文件中的错误若是在源文件中存在错误在Output窗口中会显现错误提示信息,你能够在源程序中进行修改,然后存盘后从头Build观看错误提示信息。编译连接通事后进行软件模拟仿真Debug—Start/StopDebugSession进入软件模拟的仿真窗口,可利用单步、设断点来进行调试和除错。编译连接通事后进行硬件仿真设置硬件实时仿真调试选项:Project-OptionsforTarget‘Targetl’一Debug.硬件实时仿真调试选项窗口,见图1-5。选硬件仿真选项,按确信按钮确信。点击Settings设置串行口选项,见图1-5。串行口Port应与实际利用的PC机串行口相一致,波特率Baudrate必需利用9600。实验箱的仿真串口必需与PC机串口连接,拨位开关K10必需拨在B端,连接P10和L0,连接P11和L1,连接完毕后通电。实验2十六进制与十进制的转换实验目的:实践汇编语言顺序结构的编程方式,把握十六进制数转换成十进制数的编程实现,把握单步运行程序的大体技术。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机一台。实验步骤:成立一个工程,将在预习中做好的*.asm文件加入。调出存储器编辑窗口,将30H单元修改成某一值。在希望停下来的指令上设断点,然后运行,在断点处停下来后,再单步运行,能够看到各单元的转变情形。运行完最后一条指令后,在31H〜33H中应取得30H中十六进制数对应的十进制数。实验源程序:ORG 0000HMOV A,30HMOV B,#64HDIV ABMOV 31H,AMOV A,BMOV B,#0AHDIV ABMOV 32H,AMOV 33H,BSJMP$END实验38段LED显示器动态显示实验目的:把握8段LED显示器的利用及显示程序的设计方式。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机一台。LED显示器的列位由8255的A口驱动,低电平对应位发光,高电平对应位熄灭。实验内容:编写一个6位LED显示器驱动子程序(在主程序中已对接口芯片8255做好必要的初始化)。字形表按0〜F、0.〜F.、-、灭的顺序排列。该子程序的要求如下:入口:待显示数(00H〜1FH)放在20H〜25H(别离对应显示器的左起第1〜第6位)中。出口:每位LED显示后返回。占用:R0、R一、R二、A、PSW、DPTR。显示子程序的流程图如图5-2和图5-3:

3.按以下框图编写一段程序,运行后会在显示器上应显现持续向左移动的0〜F。图5-5实验内容3流程图#实验步骤:将〜与JD0〜JD7连接起来。开关KC倒向上方。成立一个工程,将在预习中做好的实验内容1和2的程序拷贝到一个*.asm文件加入。编译后与单片机硬件连接,运行。在20H起始的6个字节中置入00H〜0FH中的任意6个值,然后持续运行此程序,应显示0〜F中的6个数字;在20H起始的6个字节中置入10H〜1FH中的任意6个值,然后持续运行此程序,应显示0.〜F.中的6个数字。若是运行结果不正常,能够用设断点、单步运行的方式查找错误所在,修改后从头编译、与单片机硬件连接,运行。直至取得正确的结果。成立一个工程,将在预习中做好的实验内容1和3的程序拷贝到一个*.asm文件加入。编译后与单片机硬件连接,运行。观看LED显示器,应从右向左依次显现0、一、二、3……实验源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00

MOV24H,#00MOV25H,#00MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0输出,C口高4位输出,低4位输入MOVX@DPTR,A;ACALLDELAY500MS ;延时LOOP3:LCALLDISP ;调用显示子程序MOV20H,21HMOV21H,22HMOV22H,23HMOV23H,24HMOV24H,25HINC25HANL25H,#0FHSJMPLOOP3DISP:MOVMOVR0,#20HR2,#0FEHDISP1:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#4001HMOVX@DPTR,AMOVA,R2MOVDPTR,#4000HMOVX@DPTR,ACALLDELAY500USMOVA,#0FFHMOVX@DPTR,AMOVA,R2RLAMOVR2,AINCR0CJNER0,#26H,DISP1RETDELAY500MS:PUSH00HMOVR0,#25;延时秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB 40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB 00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END实验4矩阵键盘的利用实验目的:把握矩阵键盘的利用及键盘扫描程序的设计方式。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机一台。实验原理及环境:实验箱上有一个16键的矩阵键盘,分为4行X4列。4行别离连接到一片8255(与8段LED显示器的段驱动和位驱动共用)的PC0〜PC3,4列别离连接到8255的PC4〜PC7°8255的A口、B口、C口、操纵口的地址别离为片外RAM的4000H、4001H、4002H、4003H。第4列第3列第2列第1列行PC300H01H02H03H第4行输PC204H05H06H07H第3行、PC1入08H09H0AH0BH第2行PC00CH0DH0EH0FH第1行PC7PC6PC5PC4列驱动图6-1键盘布置及键值选择列驱动码使某一列为低电平而其它列为高电平,再读取行输入,假设该列有键按下那么相应的位即是低电平。每一个键均安排一个键值,如图6-1所示。实验内容:编写一个键盘扫描子程序(在主程序中已对接口芯片8255做好必要的初始化)。那个程序对键盘作一次扫描,假设无键按下,返回时累加器A中为FFH,假设有键按下,返回时A中为该键键值。查键值子程序能够自行编写,也能够利用下面那个查表子程序,那个子程序的参数如下:入口:行列关键值码放在累加器A中,高4位是列驱动码(被扫描列的对应位为0,其余位均为1),低4位是行状态(按下键的对应位为0,其余位均为1)。出口:键码放在A中带出。占用:R—、A、PSW、DPTR。程序清单如下:;查键值子程序KEY20:PUSHACC ;暂存关键值MOVR1,#00H;查键值自变量清0KEY21:JNB,KEY22;计算列数RRAINCR1SJMPKEY21KEY22:MOVA,R1 ;按每列4个键计算MOVB,#4MULABMOVR1,APOPACC ;恢复关键值KEY23:JNB,KEY24;计算行数RRAINCR1SJMPKEY23KEY24:MOVDPTR,#KEYTAB;读取键值MOVA,R1MOVCA,@A+DPTRRETKEYTAB:DB0FH,0BH,07H,03HDB0EH,0AH,06H,02HDB0DH,09H,05H,01HDB0CH,08H,04H,00H键盘扫描子程序自身无法运行,为了运行那个子程序,另编写以下程序:ORG0000HMOVSP,#6FHMOVR0,#5 ;延时秒LOOP1:MOVR1,#200LOOP2:MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1MOVDPTR,#(ADD_8255+3);8255初始化MOVA,#B;A口、B口方式0输出,C口高4位输出,低4位输入MOVX@DPTR,ALOOP3:LCALLDIS ;调用显示子程序LCALLKEY;键盘扫描子程序入口CJNEA,#0FFH,LOOP4;如果有键按下转SJMPLOOP3LOOP4:MOV20H,21HMOV21H,22HMOV22H,23HMOV23H,24HMOV24H,25HMOV25H,ASJMPLOOP3其中显示子程序利用实验3中的显示子程序。程序运行后,每按一键便从显示器的右端移入一个对应的数。实验步骤:将〜与JD0〜JD7连接起来。开关KC倒向上方。成立一个工程,将在预习中做好的实验内容1和2的程序和实验3中的显示子程序拷贝到一个的*.asm文件加入。编译后与单片机硬件连接,运行。按下键盘上的各键,相应的数字会出此刻LED显示器上。实验源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00MOV24H,#00MOV25H,#00ACALLDELAY500MS;延时秒MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0输出,C口高4位输出,低4位输入MOVX@DPTR,ALOOP3:LCALLDISP ;调用显示子程序LCALLKEY ;键盘扫描子程序入口CJNEA,#0FFH,LOOP4;如果有键按下转SJMPLOOP3KEY:MOVA,#00H;使4根列线都输出0MOVDPTR,#4002HMOVX@DPTR,AMOVXA,@DPTRANLA,#0FHCJNEA,#0FH,KEYDNMOVA,#0FFHRETKEYDN:MOVR2,#BKEYDN1:MOVA,R2MOVX@DPTR,AMOVXA,@DPTRANLA,#0FHCJNEA,#0FH,CONTNEXTCOLUMN:MOVA,R2RLCAMOVR2,AJCKEYDN1SJMPNOKEYDNCONT:MOV03H,ALCALLDELAY20MS;延时20msMOVXA,@DPTRANLA,#0FHCJNEA,03H,NOKEYDNWAITKEYUP:MOVXA,@DPTRANLA,#0FHCJNEA,#0FH,WAITKEYUP;读行状态,直到键松开MOVA,R2ANLA,#0F0HMOVR2,AMOVA,03HORLA,R2LCALLKEY20RETNOKEYDN: MOVA,#0FFHRETKEY20: PUSHACC ;暂存关键值MOVR1,#00H;查键值自变量清0KEY21: JNB,KEY22;计算列数RRAINCR1SJMPKEY21KEY22: MOVA,R1 ;按每列4个键计算MOVB,#4MULABMOVR1,APOPACC;恢复关键值KEY23: JNB,KEY24;计算行数RRAINCR1SJMPKEY23KEY24: MOVDPTR,#KEYTAB;读取键值MOVA,R1MOVCA,@A+DPTRRETKEYTAB:DB0FH,0BH,07H,03HDB0EH,0AH,06H,02HDB0DH,09H,05H,01HDB0CH,08H,04H,00HDISP: MOVR0,#20HMOVR2,#0FEHDELAY500MS:PUSH00HMOVR0,#25 ;延时秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB 40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB 00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END实验5A/D转换实验目的:把握用ADC0809实现A/D的方式。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机一台。实验原理及环境:电位器W1将+5V电压分压后送入ADC0809的输入IN4〜IN7,调剂电位器W1能够取得0〜+5V的电压输入。ADC0809的接口参数如下:输入电压范围 0〜+5V启动IN0〜IN7A/D转换 写8000H〜8007H取转换结果 读80XXHEOC通过一个反相器输出实验内容:设计一个程序,将IN4输入的0〜+5V模拟电压转换成数字量,再将那个2位十六进制转换成3位十进制数,放在LED显示器的第四〜六位显示。其中显示子程序能够用实验3中的子程序。判转换是不是终止能够将ADC0809的EOC(经反相器)引入到,然后查询的状态。实验步骤:将〜与JD0〜JD7连接起来。开关KC倒向上方。将〜与U9D0〜U9D7连接起来。将与EOC连接起来。成立一个工程,将在预习中做好的实验程序*.asm文件加入。编译后与单片机硬件连接,运行。旋转电位器W1,LED显示器上的数字应在000000〜000255之间转变(因受电位器的调剂范围限制,有可能小于那个范围)。实验源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00MOV24H,#00MOV25H,#00MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0输出,C口高4位输出,低4位输入MOVX@DPTR,A;ACALLDELAY500MS;延时秒LOOP3:MOVA,#0FFHMOVDPTR,#8004HMOVX@DPTR,A;写任意值到(8004H)启动IN4A/D转换WAITZHJS:ORLP1,#01HMOVC,JCWAITZHJS;等待转换终止MOVXA,@DPTR;使AD转换的数据输出;ORLP0,#0FFH;MOVA,P0;读?0口DJNZR7,AGAIN1SJMPLOOP3DISP:MOVR0,#20HMOVR2,#0FEHDISP1:MOVA,@R0MOV DPTR, #TABMOVCA,@A+DPTRMOV DPTR, #4001HMOVX @DPTR, AMOV A,R2MOVDPTR,#4000HMOVX@DPTR,ACALLDELAY500USMOVA,#0FFHMOVX@DPTR,AMOV A,R2RLAMOV R2,AINCR0CJNER0,#26H,DISP1RETDELAY500MS:PUSH00HMOVR0,#25;延时秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END实验6D/A转换实验目的:把握用DAC0832实现D/A转换器的方式。实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil的运算机台。实验原理及环境:DAC0832的连接利用单缓冲方式,D/A转换口地址为6000H。当

温馨提示

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

最新文档

评论

0/150

提交评论