单片机第三次实验

合集下载

东大单片机实验报告三

东大单片机实验报告三

东南大学生物科学与医学工程学院单片机系统设计与应用实验报告第三次实验实验名称:数据传送实验专业:生物医学工程姓名:学号:同组人员:学号:实验室: 医用电子技术实验中心(综合楼716)实验时间:评定成绩:审阅教师:目录一、实验题目 (3)二、实验目的 (3)三、实验器材 (3)四、实验内容 (3)1.实验方案 (3)1.1方案流程图 (3)1.2源程序 (5)2.实验结果及分析 (12)2.1方案一结果 (12)2.2方案二结果 (12)2.3课上更改程序结果 (13)3. 程序调试 (14)五、心得体会 (14)六、参考文献 (14)一、实验题目1.将指定内存中的数按正负数分别存放于内存和外部RAM中,并对负数进行求补后再放入内存指定单元。

二、实验目的1.进一步掌握程序的编辑、汇编及调试方法;2.掌握单片机内部RAM和外部RAM的数据操作;3.了解单片机系统地址分配概念。

三、实验器材1、G6W仿真器一台2、MCS—51实验板一台3、PC机一台4、电源一台四、实验内容1.以数据表格形式在ROM中建立一个含有正数和负数的表格,数据长度为16个字节,要求放置八个正数、八个负数,正、负数应离散随机放置,不允许三个以上同类型数据连续放置,数据的具体内容自行确定;2.编制程序,将数据表格中的数据读出并按正、负数归类,正数送入首地址为40H的内部RAM中;负数送入首地址为0B000H的外部RAM中;3.将首地址为0B000H的外部RAM中的数据取出并求其绝对值,然后送入内部RAM 的48H~4FH单元。

1.实验方案1.1方案流程图1.2源程序本次试验,我先后写了两个程序,基本原理相似。

⑴先初始化,将各地址存入寄存器中,便于操作。

⑵查表取数,判断数的正负,将正负数分别存放在指定地址。

注意地址指针的入栈保护。

⑶判断数是否取完,取完后对存放在外RAM中的负数取出求补放入指定内存。

方案一ORG 0000HAJMP MAINORG 0030HMAIN:MOV SP,#70H ;设置堆栈指针MOV A,#10H ;保存个数MOV DPTR,#0E00H ;表地址MOV R0,#0B0H ;负数存放地址MOV 12H,#00HMOV R1,#40H ;正数存放地址START:PUSH A ;入栈保护PUSH DPHPUSH DPLMOV A,#00H ;寄存器A初始化MOVC A,@A+DPTR ;取表中数至寄存器A判断正负MOV 11H,A ;11H暂存数RLC A ;取标志位JC FUZHENG:MOV A,11HMOV @R1,A ;送至正数地址单元INC R1 ;正数地址加1POP DPLPOP DPHPOP AINC DPL ;指向表中下一个数DEC A ;个数减一JNZ START ;不为0继续操作JMP DO1 ;否则到DO1FU:MOV A,11HMOV DPH,R0 ;DPTR改为指向负数地址MOV DPL,12HMOVX @DPTR,A ;负数送外RAM中的负数地址中INC 12H ;指向下一个地址POP DPLPOP DPHPOP AINC DPL ;指向下一个地址DEC A ;个数减一JNZ STARTDO1:MOV A,#08H ;负数个数MOV DPTR,#0B000H ;指向负数所在首地址DO:PUSH AMOVX A,@DPTR ;取负数CPL A ;取反加1INC AMOV @R1,A ;送入48H地址INC R1INC DPTRPOP ADEC A ;个数减一JNZ DO ;没做完则重复SJMP $ORG 0E00H ;表TABLE:DB 17H,10H,81H,25HDB 0B2H,0A4H,30H,08HDB 0D6H,54H,01H,8FHDB 0C0H,27H,0CDH,0B1H方案二ORG 0000HAJMP MAINORG 0030HMAIN:MOV R0,#0F0H ;R0存放表的高位地址MOV R2,#00H ; R2存放表的低位地址MOV R1,#40H ; R1存放正数地址MOV R3,#10H ;R3存放数的个数MOV DPTR,#0B000H;外部RAM地址PUSH DPHPUSH DPLSTART:MOV DPH,R0 ;取表地址MOV DPL,R2CLR AMOVC A,@A+DPTR ;取数MOV R4,A ;数暂存于R4RLC A ;循环左移得标志位JC FU ;判断正负,若为负数则到FU ZHENG:MOV A,R4MOV @R1,A ;正数放入正数地址单元INC R1 ;地址加一INC R2DJNZ R3,START ;数没有取完则转STARTJMP END1 ;否则转END1FU:MOV A,R4POP DPLPOP DPHMOVX @DPTR,A ;取数INC DPTR ;地址加一PUSH DPHPUSH DPLINC R2DJNZ R3,START ;判断是否取完END1:MOV DPTR,#0B000H ;指向外部RAMMOV R5,#08H ;负数个数DO:MOVX A,@DPTR ;取数CPL A ;求补INC AMOV @R1,AINC R1INC DPTRDJNZ R5,DOORG 0F000H ;表DB 18H, 30H, 0A0H, 50HDB 87H, 0B2H, 1CH, 0D6HDB 28H, 8FH, 0C3H, 10HDB 1CH, 0CDH, 68H, 0D6H课上根据老师的要求,改变了外RAM地址,正数地址以及负数地址,程序如下。

单片机实验报告总结

单片机实验报告总结

单片机实验报告总结单片机实验报告总结单片机实验心得体会单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。

在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。

这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。

将所学知识运用到实践中,在实践中发现问题,强化理论知识。

现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。

第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。

第一次实验体现了一个人对新事物的接受能力和敏感度。

虽然之前做过许多种实验。

但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。

所以第一次试验相对失败。

鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。

在做实验中,第二个问题应该是准备不充分吧。

一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。

后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。

于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。

这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。

发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。

三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。

于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。

但是编程是一件很严肃的事情,容不得半点错误。

于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。

单片机实验3 数码管控制实验-动态显示

单片机实验3  数码管控制实验-动态显示
/**********实验二数码管控制实验-动态显示**************/
;实验名称:数码管动态显示
;功能:4位数码管循环显示“0123”“4567”“89AB”“CDEF”,间隔0.5S。
;编写人:陈建泽
;编写时间:2010年11月2日
/**********************程序代码************************/
D1MS: MOV R2,#250 ;250*(1+1+2)=1000us=1ms
L1:NOP
NOP
DJNZ R2,L1
RET
/*****************中断服务子程序*****************/
T0_INT:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV A,R4
CJNE A,#16,L3
AJMP MAIN
L3:MOV R5,A
AJMP L1
DIS:MOV P2,R6;用A作为中间寄存器,因后面要循环显示
MOV A,R5
ACALL SQR ;查表
MOV P0,A
ACALL D1MS ;1ms
INC R5
MOV A,R6
RL A;指向下一位
MOV R6,A
RET;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H ;共阳极字型码表0、1、2、3
DB 99H, 92H, 82H, 0F8H;共阳极字型码表4、5、6、7
DB 80H, 90H, 88H, 83H;共阳极字型码表8、9、A、B
DB 0C6H,0A1H,86H, 8EH;共阳极字型码表C、D、E、F

单片机实验

单片机实验

单片机实验第二次实验:图见实验题1.P1.0~P1.7这八个发光二极管全部点亮#include#define uchar unsigned char#define uint unsigned intsbit greenLed=P1^0;Delay(uint cnt){ uchar i;do{for(i=0;i<165;i++);}while(cnt--);}main(){ while(1){ greenLed=0;Delay(1000);greenLed=1;Delay(1000);}}2. P1.0~P1.7这八个发光二极管循环点亮#include delay(unsigned char cnt){ unsigned int i;do{for(i=0;i<6000;i++);}while(cnt--);}main(){ unsigned char a;P1=~a;while(1){if(a!=0){ delay(5);a<<=1;P1=~a;}else{a=0x01;P1=~a;}}}3.通过外部中断控制八盏灯分别右移,左移,闪烁,双灯同时左移。

#include#define uchar unsigned charuchar code LedTable[]= {0x03,0x0c,0x30,0xc0};uchar led_flag = 4;uchar a; Delay(uchar cnt){ unsigned int i;do{ for(i=0;i<6000;i++);}while(cnt--);}void Led_rr(void)//led右移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x80;P1 = ~a;a >>= 1;}}void Led_rl(void)//led左移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x01;P1 = ~a;a <<= 1;Delay(10);}}void Led_spark(void){ P1 = 0xff;Delay(10);P1 = 0;Delay(10);}void Led_lr_doble(){ uchar i;for (i=0;i<4;i++){ P1= ~LedTable[i];Delay(10);}}void int1(void) interrupt 2 //中断服务函数{ led_flag++;if(led_flag >= 3) led_flag = 0;}void main(void){ EA = 1;EX1 = 1;IT1 = 1;while(1){ if(led_flag ==4){ Led_spark();}if(led_flag == 0){ Led_rl();}if(led_flag == 1){ Led_rr();}if(led_flag == 2){ Led_lr_doble();}}第三次实验:1.设单片机的=12MHz,要求用定时器/计数器T0以方式1在P1.0脚上输出周期为4ms的方波。

东南大学MCU第三四次实验

东南大学MCU第三四次实验

东南大学自动化学院实验报告课程名称:MCU技术及课程设计第二次实验实验三:定时器输出PWM波形实验四:LED数码管的使用院(系):自动化专业:自动化姓名:学号:实验室:实验组别:同组人员:实验时间:2015 年5月7日评定成绩:审阅教师:实验三:定时器输出PWM波形一、实验目的与要求1.实验目的(1)学习MP430单片机的时钟原理和定时器使用方法。

(2)认识学习PWM波形的作用及原理。

2.实验要求编写程序输出1s周期的PWM波形,产生两路PWM波形从引脚P1.2和P1.3分别输出。

CCR0中的值定义了PWM信号的周期,CCR1,CCR2中的值定义了PWM信号的占空比。

定时使用32.768KHz的ACLK作为输入时钟源,P1.2上的占空比为75%,P1.3上的占空比为25%。

二、实验原理1)Timer_A定时器模块框图如图3-1所示。

由图3-1可知,Timer_A模块可以有三种时钟源输入。

分别是ACLK,SMCLK,TAxCLK。

时钟源的选择通过TASSEL信号来完成。

被选择的时钟源可以直接送给TIMER模块,或者通过ID信号进行2,4,8分频。

选择的时钟信号还可以通过TAIDEX信号进一步做2,3,4,5,6,7或者8分频。

当TACLK信号被设置的时候,TIMER 的时钟分频逻辑被复位。

图3-1Timer_A模块框图2)TimerA控制寄存器TA0CTL详细定义如图3-2所示。

图3-2TimerA控制寄存器TA0CTL3)定时器中断的中断向量中包含一个独立中断和若干个共源中断,Timer_A模块的中断分类如图3-3所示。

图3-3Timer_A模块的中断向量分类图1)独立中断源的中断处理TA0CCTL0=CCIE;//CCR0中断使能#pargmavector=TIMER0_A0_VECTOR//中断向量定义,可查询头文件得到__interruptvoidTIMER0_A0_ISR(void){//添加中断处理代码}2)共源中断向量寄存器TAxIV图3-4共源中断向量寄存器TAxIV共源中断程序switch处理方式:#pragma vector=TIMER0_A0_VECTOR//共源中断入口__interruptvoid TIMER0_A0_ISR(void){switch(__even_in_range(TA0IV,14))//共源中断处理{case0:fun_no();break;//Nointerruptcase2:fun_CCR1();break;//CCR1interruptcase4:fun_CCR2();break;//CCR2interruptcase6:fun_CCR3();break;//CCR3interruptcase8:fun_CCR4();break;//CCR4interruptcase10:fun_CCR5();break;//CCR5interruptcase12:fun_CCR6();break;//CCR6interruptcase14:fun_overflow();break; //overflowdefault:fun_default();break;//default}}3)PWM原理PWM技术的三个要素,具体如图3-5所示,PWM频率计算见图3-6。

单片机实验实验指导书

单片机实验实验指导书

目录实验一P1口输入、输出实验 (1)实验二P3口输出控制继电器实验 (4)实验三简单I/O实验(交通灯控制) (6)实验四外部中断实验(急救车与交通灯实验) (8)实验五定时器实验 (11)实验六8155输入输出实验 (13)实验七矩阵键盘实验 (15)实验八8279显示实验 (17)实验九串并转换实验 (20)实验十A/D转换实验 (22)实验十一步进电机控制实验 (24)实验十二D/A转换实验 (27)实验十三传送带控制系统综合实验 (29)实验十四机械手控制实验 (32)实验一 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

延时时间500ms。

2.P1口做输入口,接八个开关,以74LS273作输出口,编写程序读取开关状态,将状态写入P0口,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三.实验电路及连接实验1-1电路图如下:图1.1实验1-2中:P1.0-P1.7接八个按钮K1-K8,P0.0-P0.7接八个发光二极管L1-L8。

四.实验说明1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止,因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响,若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对延时子程序DELAY: MOV R0,#00HDELAY1: MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ指令均需要两个机器周期,而一个机器周期时间长度为12/12MHZ(假设晶振频率是12MHZ),所以该段程序执行时间为:((0B3+1)*256+1)*2*12/12000000=100ms五.实验程序流程图实验要求1的程序框图:实验要求2的程序框图:图1.2 图1.3六、调试方法第一步:打开位于d:\单片机实验\实验一\1_1.uv2,进行实验1_1打开位于d:\单片机实验\实验一\1_2.uv2,进行实验1_2第二步:在资源管理器中如打开.src文件,在程序窗口中输入已编好的程序,保存。

单片机第三次实验思考题

单片机第三次实验思考题

单片机第三次实验思考题第一篇:单片机第三次实验思考题1、CJNE指令对CY 有影响吗?用CJNE 和JC/JNC指令配合应注意什么?在用JMP 指令前,若变址 255怎么办答:有。

CJNE指令的功能是对目的字节和源字节两个操作数进行比较,执行后不影响任何操作数,但影响Cy标志位,若目的字节>=源字节,Cy清0,否则Cy置1。

CJNE指令是对字节数进行操作,JC、JNC指令是以位累加器C的内容为转移条件,配合使用时应确定direct值,以便确认Cy值。

JMP指令将累加器A中的8位无符号数与16位数据指针相加,其和装入程序计数器PC,控制程序转向目标程序。

若变址>255,说明转移目标不在同一逻辑段内,应选择段间转移。

2、用什么指令可以实现多分支之间的隔离?控制、条件转移指令;JMP/CJNE/DJNE/JC/JB等。

3、程序中循环时间由什么来控制?循环时间由循环块内每一条命令的周期来共同确定。

4、若用DJNZ或CJNE指令来控制循环,编写程序有什么不同?CJNE指令是减1判别命令,需要在循环次数上加1来完成循环控制;CJNE则不需要。

第二篇:单片机实验实验一清0、移数将片内20H~2FH及片外0010H~001FH单元清0;然后将片内30H~3FH的数据移到片外0000H~000FH中;判断:若(30H)≤10,则求其平方存到31H中,并将位00H置1(其它位清0)若(30H)=10,则将AA存到31H中,并位01H置1(其它位清0)若(30H)≥10,则减10存到31H中,并位02H置1(其它位清0)实验二加法、排序有两个长度为10的无符号数分别放在片内20H和30H为首的存储单元中(低位),求其对应项之和(带进位位),结果放在40H为首的单元中(若最高位有进位则存在后续单元中),然后按升序排列放在50H为首的单元中实验三查表、散转设有一表格,表中数为:00H、11H、22H、33H、44H、55H、66H、77H、88H、99H、AAH、BBH、CCH、DDH、EEH、FFH。

【VIP专享】单片机流水灯实验报告东华理工

【VIP专享】单片机流水灯实验报告东华理工

学院:机械与电子工程学院单片机第三次实验报告专业:自动化班级:1121502学号:201120150229姓名:曾小燕实验任务:(1)使用单片机的P1、P3口控制驱动12个LED灯,要求编程使用软件延时的方法实现LED流动显示。

(2)在上面实验的基础上编写设计4种LED花样显示,编程实现顺序显示不同的花样。

实验电路和原理说明:从原理图中可以看出,如果要让接在P1.0口的led1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,其他11个LED的点亮和熄灭的方法同LED1。

编程思路:实验1:移位发。

先将p1,p3的所有位全置1。

把C清0。

然后带进位左移。

左一次,p1的0位亮。

左移两次,p1的1位亮。

同理,其他位也一样。

实验2:直接读p1和p3的位进行清零和置一可以实现各种要求。

程序流程图:实验1实验2使用的资源分配:R0,R1,R2,R7装循环次数。

堆栈起始地址为60H实验调试与结果分析:结果符合实验要求,对一那个1秒灯闪一次的要求,结果与硬件有关系。

实验总结:做完这次试验,我学会怎么简单的使用I/O口。

从此对单片机的兴趣也更加浓厚。

自己也会做各种花样流水灯了。

实验程序清单:实验1:ORG 0000 ;单片机上电后从0000H地址执行AJMP START;跳转到主程序存放地址处ORG 0040H;设置主程序开始地址START:MOV SP,#60H;设置堆栈起始地址为60HMOV A,#0FFH ;参数赋初值MOV P1,AMOV P3,AMOV R7,#12CLR CLOOP:MOV A,P1 ;把p1复制给ARLC A ;左移AMOV P1,A ;把A复制给p1MOV A,P3RLC AMOV P3,AACALL DELAY ;调用延时子程序DJNZ R7,LOOP ;判断循环是否结束AJMP START;移动完12次后跳到开始重来,以达到循环流动效果DELAY:MOV R0,#12 ;延时子程序D1:MOV R1,#207D2:MOV R2,#200D3:DJNZ R2,D3DJNZ R1,D2DJNZ R0,D1RET ;子程序返回END实验2:ORG 0000 ;单片机上电后从0000H地址执行AJMP START ;跳转到主程序存放地址处ORG 0040H ;设置主程序开始地址START:MOV SP,#60H ;设置堆栈起始地址为60HMOV A,#0FFH ;参数赋初值MOV P3,AMOV A,#0FEHMOV P1,AACALL DELAY ;调用延时子程序CLR P1.2 ;位操作ACALL DELAY ;调用延时子程序CLR P1.4ACALL DELAYCLR P1.6ACALL DELAYCLR P3.0ACALL DELAYCLR P3.2ACALL DELAYMOV A,#0FDHMOV P1,AMOV A,#0FFHMOV P3,AACALL DELAYCLR P1.3ACALL DELAYCLR P1.5ACALL DELAYCLR P1.7ACALL DELAYCLR P3.1ACALL DELAYCLR P3.3ACALL DELAYMOV A,#00HMOV P1,AMOV A,#0F0HMOV P3,AACALL DELAYAJMP START ;跳到开始重来,以达到循环流动效果DELAY:MOV R0,#255 ;延时子程序D1:MOV R1,#255D2:MOV R2,#5D3:DJNZ R2,D3DJNZ R1,D2DJNZ R0,D1RET ;子程序返回END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华南师范大学实验报告
学生姓名 学号 专 业 年级、班级 课程名称 单片机实验 实验项目 工业顺序控制实验等 实验类型 实验时间 2013年 05 月29日
实验指导老师 实验评分
一、实验目的
1.掌握工业顺序控制程序的简单编程,中断使用;
2.掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入/输出
软件的设计方法;
3.掌握单片机系统中扩展外围芯片的方法,了解8255芯片的结构及编程方法;
4.进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法;
5.掌握A/D转换与单片机接口的方法,了解其0809转换性能及编程方法,并通过实验了
解单片机如何进行数据采集。

二、实验环境
软件:Microsoft Windows [版本 6.1.7601]下C:\Windows\system32\Keil uVision2.exe 硬件:DICE-5210K单片机试验开发系统
三、实验原理
1.工业顺序控制(见图一、图二)
图一工业顺序控制实验程序框图
图二工业顺序控制实验硬件原理图
2.8255A.B.C口输出方波(见图三、图四)
图三8255A.B.C口输出方波实验程序框图
图四8255A.B.C口输出方波实验硬件原理图3.8255 PA口控制PB口(见图五、图六)
图五8255 PA口控制PB口实验程序框图
图六 8255 PA口控制PB口实验硬件原理图4.8255控制交通灯(见图七、图八)
图七8255控制交通灯实验程序框图
图八8255控制交通灯实验硬件原理图
5.A/D 0809转换实验(见图九、图十)
图九A/D 0809转换实验程序框图
图十A/D 0809转换实验硬件原理图
四、实验内容及实验结果
1.工业顺序控制
1)实验内容
i.将音频功放区的JP插针用短路块把+5V 和0N短接,用双头线将P3.4口接开
关K1,P3.3口接开关K2,P1.0~P1.7接至发光二极管L1~L7,P1.7口接至音
频功放区VIN;
ii.按图接好连线后,置开关K1、K2的初始状态分别为低电平、高电平;
iii.执行程序HW04.ASM,置开关K1为高电平,启动开工,观察发光二极管点亮情况,确定工序执行是否正常;
iv.置开关K2为低电平,看是否有声音报警;
v.恢复中断(K2置为高电平)报警停,程序将从刚才报警的工序继续执行下去,使用单步、单步跟踪,非全速断点、全速断点,连续执行功能调试
软件,观察实验现象。

2)实验结果
i.运行程序后,K1低电平,K2高电平,除L8亮以外,LED灯L1~L7全灭;
ii.置K1为高电平,从L1灯开始亮,L1~L6流水灯式亮灯,如此循环;
iii.置K1为低电平,电路现象没有改变;
iv.置K2为低电平,除L8亮以外,LED灯L1~L7全灭,无报警(设备问题?
电路不稳定),接着置K2为高电平,LED灯正常工作。

2.8255A.B.C口输出方波
1)实验内容
i.执行程序HW05.ASM,观察实验现象;
ii.通过实验板观察8255A.B.C口的电平变化(使用双头线将8255A.B.C口分别连至发光二极管Ll~L8,观察发光二极管变化情况)。

2)实验结果
可能为设备问题,8255A.B.C口一直处于低电平,灯不亮。

3.8255 PA口控制PB口
1)实验内容
i.用8芯线将8255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;
ii.运行程序HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。

2)实验结果
i.依次将开关K1~K8从低电平拨为高电平,灯L1~L8依次点亮;
ii.依次将开关K1~K8从高电平拨为低电平,灯L1~L8依次熄灭。

4.8255控制交通灯
1)实验内容
i.用双头线将8255 PA0~PA2口接至发光二极管L3~L1,PA3~PA5口接至发
光二极管L7~L5;
ii. 执行程序HW07.ASM,观察实验现象。

2)实验结果
i.初始态为四个路口的红灯全亮;东西路口的绿灯亮,南北路口的红灯亮,
东西路口方向通车;延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁;
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方
向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪
烁若干次后,再切换到东西路口方向;
ii.重复以上过程。

5.A/D 0809转换实验
1)实验内容
i.用双头线将可调电压区的VOUT接至ADC0809模数转换区的IN0,可调电压区
的VIN接至电源+5V,ADC0809模数转换区的CS4接至系统接口区的8000H端
口,ADC0809模数转换区的WR接至系统接口区的/IOWR端口,ADC0809模数
转换去的RD接至系统接口区的/IORD,ADC0809模数转换区的ADDA、ADDB、
ADDC接至GND,CLK接至单脉冲与时钟区的500K,用8芯线将数据总线JX0接
至ADC0809模数转换区的JX6;
ii.运行程序HW09.ASM,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节可调电压,该二位将随着电压变化而相应变化,变化
范围为00至FF。

2)实验结果
数码管上显示0809.59,调节可调电压,该两位数字随电压的升高变大,再随
电压的降低变小,变化内容为XX:59->FE->00->FE。

3)思考题
修改程序,用其它通道轮流采样显示(程序段见图十一),通过修改X的值,
依次改为08,00,09,10,10,实现0809的其他通道采样。

图十一其他通道轮流采样显示
五、实验总结
这是单片机的第三次实验,继硬件实验一熟悉实验环境之后的第二次上机动手操作。

实验中实验仪器不稳定,多发生故障,后来在其他同学的实验箱上完成实验。

这次实验,虽然进行的不是那么顺利,但是在实验中进一步熟悉了代码含义,初步了解硬件设计。

相关文档
最新文档