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

下载本文档

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

文档简介

单片机实验报告书一、 实验目的设计一个能发出100HZ,150HZ,300HZ频率的信号发生器,信号由P0口输出,数码管显示频率值,启动频率输出信号由按键3进行,改变信号频率由按键1,2,3进行切换。二、 实验分析该实验中8031通过8155于LED数码管和键盘连接,8031的P0口与8155的AD口直接相连,用于传送地址和数据。8031的P2.5与8155的IO/M相连,P2.6与CE相连,8031的ALE,RD,WR分别与8155的ALE,RD,WR相连。1、显示部分:6位数码管共阴极连接,动态显示字形。8155的PB0PB7连接到数码管的a,b,c,d,e,f,g和sp,以提供字形码,决定显示的字形。6根阴极线连接到8155的PA0PA5,PA口提供位选码(扫描字),决定哪一位发亮。动态显示就是一位一位地轮流点亮LED,当某位LED点亮时输入相应于该位的被显示字形。虽然实际上是各位轮流显示,但速度很快,所以感觉上是6位LED同时显示。程序中在片内RAM开辟一组显示缓冲区,专用于存放待显示的数据,缓冲区选用2AH2FH六个单元,依次存放数据的高位到低位。 2、键盘部分:实验中键盘接口电路采用行列式结构,共2行6列,对应于12个键盘,每个键分配一个键号,依次为0B,任一个键的键号该行的首键号列号。所以只要确定被按下键的行、列位置,就能确定该键的键号。键盘扫描程序具有以下功能:、判别有无键按下:从PA口输出扫描字00H,读PC口。若无键按下,则PC0、PC1均为1,若有键按下,则PC0或PC1为0。、消除键抖动:在识别键按下后延时510ms,再判别键状态。如果键已放开,认为属于抖动,是误动作。如果键仍闭合,则表示有一个稳定的输入。、判别键号:由PA0PA5对列线发出扫描字,先后次序时FEH、FDH、FBH、F7H、EFH、DFH(0位左移)。每次列扫描时,检查行线输入,先查PC0,再查PC1。若行线输入0,表示该行上有键按下。根据此时的行、列号,就能计算出按下的键号。、按键一次,仅响应一次。为此,必须等到键释放后,再取键号,存于A中。脉冲由8031的P0.0输出,程序通过每次在定时中断服务程序中改变P0.0的电平以达到输出方波的目的,可通过示波器检查。三、 源程序 ORG 0000HKEY1 EQU 01H;键1,对应100HZKEY2 EQU 02H;键2,对应150HZKEY3 EQU 03H;键3,对应300HZ LJMP MAIN ORG 000BH ;定时中断程序入口 LJMP TIMER ORG 0200HTIMER: PUSH PSW;定时中断服务程序 PUSH ACC CPL P0.0;改变P0.0电平 CJNE R5,#02H,TNEXT;判断定时器重装初值大小 T2: MOV TH0,#0D8H;150HZ情况 MOV TL0,#0E5H SJMP RETURNTNEXT: JNC T3T1: MOV TH0,#0C5H;100HZ情况 MOV TL0,#5DH SJMP RETURNT3: MOV TH0,#0ECH;300HZ情况 MOV TL0,#6DHRETURN:POP ACC POP PSW RETI ORG 0300HDISP: MOV R0,#2AH;显示子程序 MOV R1,#0F7H;R1指向位选初值,点亮第四位 MOV DPTR,#0B001H;DPTR指向PA口DLP: INC DPTR;指向PB口 MOV A,R0;取显示数据 ADD A,#1BH;加偏移量 MOVC A,A+PC;取字形码 MOVX DPTR,A;B口输出字型 MOV DPTR,#0B001H;指向PA口 MOV A,R1 MOVX DPTR,A;A口输出字位 ACALL DIMS;延时 RL A;字位左移一位 MOV R1,A INC R0;指向下一位显示缓冲 CJNE R0,#2DH,DLP;6位是否结束 MOV DPTR,#0B001H MOV A,#0FFH MOVX DPTR,A;A口全部置1 MOV DPTR,#0B002H MOV A,#00H MOVX DPTR,A;B口全部置0 RETDTAB: DB 3FH,06H,5BH,4FH;字形码 DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DB 73H,40H,58H,00H DB 0BFH,86H,0DBH,0CFH DB 0E6H,0EDH,0FDH,87H DB 0FFH,0EFH,77H ORG 0350HDIMS: MOV R7,#01H;延时1msDL: MOV R6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL RET ORG 03A0H;键盘处理部分KEYA: LCALL T12MS;求键值,延时12ms LCALL KS1;判断键是否闭合 JNZ LK1;仍闭合,求值 SJMP KND;键已放开,是抖动LK1: MOV R4,#00H;列号寄存器R4置0 MOV R2,#0FEH;0列扫描字LK2: MOV DPTR,#0B001H;指向PA口 MOV A,R2 MOVX DPTR,A;PA口输出扫描字 INC DPTR INC DPTR;指向PC口 MOVX A,DPTR;读PC口 JB ACC.0,LONE;PC01,0行无键按下,转判下一;行 MOV A,#00H;0行有键按下,行首键号00H送A SJMP LKPLONE: JB ACC.1,NEXT;PC11,1行无键按下,转判下一;列 MOV A,#06H;1行有键按下,行首键号06HLKP: ADD A,R4;计算键号 PUSH ACC;键号暂存LK3: LCALL KS1;等待键释放 JNZ LK3 POP ACC;键已释放,键号送AKND: RETNEXT: INC R4;列号加1 MOV A,R2 JNB ACC.5,KND;扫描到最后一列?是则转KND RL A;扫描字0位左移一位 MOV R2,A SJMP LK2;扫描下一列KS1: MOV DPTR,#0B001H;判断有无键闭合 MOV A,#00H MOVX DPTR,A;PA口输出扫描字00H INC DPTR INC DPTR MOVX A,DPTR;读PC口 CPL AANL A,#03H;A中为按键所在行,为0则无键闭;合 RETT12MS: MOV R7,#18H;延时12msTM: MOV R6,#0FFHTM6: DJNZ R6,TM6 DJNZ R7,TM RET ORG 0A00HMAIN: MOV SP,#60H;主程序 MOV DPTR,#0B000H;8155初始化 MOV A,#03H;A、B口输出,C口输入 MOVX DPTR,A MOV 2AH,#00H;显示缓冲区置初始00 MOV 2BH,#00H MOV 2CH,#00HLOOP: LCALL DISP;调用显示 LCALL KS1;判有无键闭合? JZ LOOP;无键闭合,循环执行 LCALL KEYA;有键闭合,求键号,存A CJNE A,#KEY1,CMP1;根据键号,判断应执行动作STEP1: CLR EA;键号为1情况 MOV TMOD,#01H;定时器工作方式1 MOV TH0,#0C5H;装入定时器初值 MOV TL0,#68H MOV R5,#01H;R5存放键号 MOV 2AH,#01H;显示缓冲区置100 MOV 2BH,#00H MOV 2CH,#00H MOV IE,#82H;打开定时中断 SETB TR0;开始计数 SJMP LOOPCMP1: CJNE A,#KEY2,CMP2STEP2: CLR EA;键号为2情况 MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV R5,#02H MOV 2AH,#01H;显示缓冲区置150 MOV 2BH,#05H MOV 2CH,#00H MOV IE,#82H SETB TR0 SJMP LOOPCMP2: CJNE A,#KEY3,LOOP;键号不是1,2或3,继

温馨提示

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

评论

0/150

提交评论