EA2440a实验板说明文档下载

weixin_39821526 2019-05-14 12:00:18
EA2440a实验板说明文档,对新手很有用,从实验室拷过来的呵呵
相关下载链接://download.csdn.net/download/yeyou222/2207878?utm_source=bbsseo
...全文
37 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
实验三 中断实验 一、实验内容 1.当单片机的INT0端出现负脉冲时,进入相应的中断服务程序,P1口做输出口,接 8只发光二极管,通过程序控制发光二极管依次点亮。 2.选择外部中断0(P3.2)接按键INTO到地,按下出现负脉冲时,进入相应的中断服 务程序,在中断服务程序中,数码管显示加1,在0-9之间循环。 二、实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 三、实验原理 (中断原理部分参考教材填写) 本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断 程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存 器PSW外,还要注意。一是主程序中的延时程序和中断处理程序中的延时程序不能混用, 本实验中,主程序延时用的寄存器和中断延时用的寄存器应不相同。 四、实验电路 (参考学习说明书Page11) 五、接线方式 (参考学习说明书Page11) P1口接发光二极管的L1—L8;单脉冲输出端" "接INI0,即接89C51的P3.2管脚。 六、参考程序 "程序一、 " "ORG 0030H " "tmpdate: DB 01H,02H,04H,08H,10H,20H,40H,80H " "/*定义常量做为输出*/ " "ORG 0000H " "LJMP MAIN " "ORG 0003H " "LJMP INT " " " "MAIN: SETB EA /*首先开启总中断 */ " "SETB EX0 /*开启外部中断 0 */ " "SETB IT0 /* 设置成 下降沿触发方式*/ " "MOV R7,#8 " "MOV DPTR,#TMPDATE " "L0: SJMP L0 //等待中断 " " " " " "INT: DJNZ R7,L1 /*外部中断 0 每按一次主上的"INT0"键,中 " "断响应,调用该函数,我们从P1口输出点亮发光二极管*/ " "MOV R7,#8 " "L1: MOV A,R7 " "MOVC A,@A+DPTR " "CPL A " "MOV P1,A " "RETI " "END " " " "程序二、/***************************************************" "************ " "功能:按下按键,数码管加1,用中断的方法 " "作者:txl " "时间:2009-04 " "版本:V1.0 " "************************************************************" "***/ " " " "#include " "#define uint unsigned int " "#define uchar unsigned char " " " " " "sbit wei1=P2^0; " "sbit key1=P3^2; " " " "uchar code table[]={0xC0,0xF9,0xA4,0xB0, " "0x99,0x92,0x82,0xF8, " "0x80,0x90,0x88,0x83, " "0xC6,0xA1,0x86,0x8E};//共阳数码管码表 " "//全局变量 " "uchar num; " "//函数声明 " "void delay(uint z); " "void led_show(uchar temp); " " " "void main() " "{ " "num=0; " "// IT0=1; //中断以下降沿方式触发 " "IT0=0; //中断以低电平方式触发 " "EX0=1; //允许外部中断0中断 " "EA=1; //总中断开 " " " "wei1=0; " " " "while(1) " "{ " "led_show(num); //显示 " "} " " " "} " " " "/***********************************************************" "**** " "功能:外部中断0入口 " "************************************************************" "***/ " "void EX0_Int() interrupt 0 " "{ " "EX0 = 0; //关中断 " "num++; " "if(num==10) " "num=0; " " " "while(!key1);//消除抖动 " "delay(5); " "while(!key1); " "// for(;!key1;); //等待
电子信息工程学系实验报告 课程名称:单片机原理及接口应用 实验项目名称:51定时器实验 实验时间:2011.12.16 班级: 姓名: 学号: 一、实 验 目 的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中 定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处 理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方 法。 二、实 验 环 境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实 验 原 理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。 MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: "D7 "D6 "D5 "D4 "D3 "D2 "D1 "D0 " "GATE "C/T "M1 "M0 "GATE "C/T "M1 "M0 " TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: "M1 "M0 " 功 能 说 明 " "0 "0 "方式0,为13位的定时/计数器 " "0 "1 "方式1,为16位的定时/计数器 " "1 "0 "方式2,为常数自动重装入的8位定时/计数器 " "1 "1 "方式3,T0分为两个8位定时/计数器, " " " "T1在该方式时停止 " 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。 T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若 T1工作于定时方式1,计数初值为 a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: 4.1.设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为: 0001 0110,即0x16。 4.2.设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1 和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔 较大时,要采用适当的方法,即将定时间隔分段处理。 "p129 "6MHz "8MHz "10MHz "12MHz " "方式0 "16.384ms "12.288ms "9.83ms "8.192ms " "方式1 "131.072ms "98.304ms "78.643ms "65.536ms " "方式2 "0.512ms "0.384ms "0.307ms "0.256ms " 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定 时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256; TLx = a % 256; 4.3.确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化 时开放定时/计数器的中断及总中断: ET0 = 1; EA = 1; 还需要编写中断服务函数: void T0_srv(void) interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段 } 4.4.启动定时器:TR0(TR1)= 1。 四、实 验 内 容 过 程 及 结 果 分 析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验上的一位l ed数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间 为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此
单⽚机c语⾔拉幕灯,⽤51单⽚机做的拉幕式数码显⽰课程设计 1. 实验任务 ⽤AT89S51单⽚机的P0.0/AD0-P0.7/AD7端⼝接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通 每个数码管的位选端。AT89S51单⽚机的P1.0-P1.2控制74LS138的A,B,C端⼦。在8位数码管上从右向左循环显 ⽰"12345678"。能够⽐较平滑地看到拉幕的效果。 2. 电路原理图 3. 系统上硬件连线 (1. 把"单⽚机系统"区域中的P0.0/AD0-P0.7/AD7⽤8芯排线连接到"动态数码显⽰"区域中的a-h端⼝上; (2. 把"三⼋译码模块"区域中的Y0-Y7⽤8芯排线连接到"动态数码显⽰"区域中的S1-S8端⼝上; (3. 把"单⽚机系统"区域中的P1.0-P1.2端⼝⽤3根导线连接到"三⼋译码模块"区域中的A、B、C"端⼝上; 4. 程序设计⽅法 动态数码显⽰技术:如何进⾏动态扫描,由于⼀次只能让⼀个数码管显⽰,因此,要显⽰8位的数据,必须经过让数码管⼀个⼀个轮流显⽰ 才可以,同时每个数码管显⽰的时间⼤约在1ms到4ms之间,所以为了保证正确显⽰,我必须每隔1ms,就得刷新⼀个数码管。⽽这刷新 时间我们采⽤单⽚机的定时/计数器T0来控制,每定时1ms对数码管刷新⼀次,T0采⽤⽅式2。在进⾏数码显⽰的时候,要对显⽰单元开辟 8个显⽰缓冲区,每个显⽰缓冲区装有显⽰的不同数据即可。 5. 程序框图 主程序框图 中断服务程序 6. 汇编源程序 DISPBUF EQU 30H DISPCNT EQU 38H DISPBIT EQU 39H T1CNTA EQU 3AH T1CNTB EQU 3BH CNT EQU 3CH ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV DISPCNT,#8 MOV A,#10 MOV R1,#DISPBUF LP: MOV @R1,A INC R1 DJNZ DISPCNT,LP MOV DISPBIT,#00H MOV T1CNTA,#00H MOV T1CNTB,#00H MOV CNT,#00H MOV TMOD,#01H MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 SETB TR0 SETB ET0 SETB EA SJMP $ INT_T0: MOV TH0,#(65536-1000) / 256 MOV TL0,#(65536-1000) MOD 256 MOV A,DISPBIT ADD A,#DISPBUF MOV R0,A MOV A,@R0 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,P1 ANL A,#0F8H ADD A,DISPBIT MOV P1,A INC DISPBIT MOV A,DISPBIT CJNE A,#08H,NEXT MOV DISPBIT,#00H NEXT: INC T1CNTA MOV A,T1CNTA CJNE A,#50,LL1 MOV T1CNTA,#00H INC T1CNTB MOV A,T1CNTB CJNE A,#8,LL1 MOV T1CNTB,#00H INC CNT MOV A,CNT CJNE A,#9,LLX MOV CNT,#00H MOV A,CNT LLX: CJNE A,#01H,NEX1 MOV 30H,#8 LL1: LJMP DONE NEX1: CJNE A,#02H,NEX2 MOV 31H,#8 MOV 30H,#8 LJMP DONE NEX2: CJNE A,#03H,NEX3 MOV 32H,#8 MOV 31H,#8 MOV 30H,#8 LJMP DONE NEX3: CJNE A,#04H,NEX4 MOV 33H,#8 MOV 32H,#8 MOV 31H,#8 MOV 30H,#8 LJMP DONE NEX4: CJNE A,#05H,NEX5 MOV 34H,#8 MOV 33H,#8 MOV 32H,#8 MOV 31H,#8 MOV 30H,#8 LJMP DONE NEX5: CJNE A,#06H,NEX6 MOV 35H,#8 MOV 34H,#8 MOV 33H,#8 MOV 32H,#8 MOV 31H,#8 MOV 30H,#8 LJMP DONE NEX6: CJNE A,#07H,NEX7 MOV 36H,#8 MOV 35H,#8 MOV 34H,#8 MOV 33H,#8 MOV 32H,#8 MOV 31H,#8 MOV 30H,#8 LJ

12,887

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧