中南大学单片机

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机实验报告学院:信息科学与工程学院专业班级:姓名:指导老师:杨迎泽实验一单片机I/O口应用实验_P3.3口输入P1口输出一、实验目的1、掌握单片机P3口、P1口简单使用。2、学习延时程序的编写和使用。二、实验内容1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16进制加一的方式点亮发光二极管。三、实验说明1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。2、延时子程序的延时计算。对于延时的程序DELAY:MOVR6,#00HDELAY1:MOVR7,#80HDJNZR7,$DJNZR6,DELAY1查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:(((128+1)×256)+1)×2×(12÷6000000)=132.1ms。四、实验原理图图(1-1)五、实验程序框图六、实验步骤1、P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。2、调试、运行程序test1中的MCUIO.ASM。3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。七、实验程序#includereg51.h/*===头文件包含===*/sbitP3_3=P3^3;voidtime(void);main(){P3.3真的为高吗?P3.3为低吗?开始P3.3为高吗?延时延时A+1送P1口循环NNNYYY主程序:图(1-2)NNYR6设初值FFH延时子程序:R7设初值FFHR7-1=0否?R6-1=0否?返回Y图(1-3)B=0;P1=0X00;while(1){while(1){if(P3_3)continue;time();if(!P3_3)break;}while(1){if(!P3_3)continue;time();if(P3_3)break;}B++;ACC=B;P1=ACC;}}voidtime(void){unsignedinti;for(i=0;i0xFFF;i++);}实验二单片机I/O口应用实验_工业顺序控制一、实验目的二、实验预备知识在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。三、实验内容8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。四、实验说明实验中用外部中断0,编中断服务程序的关键是:1、保护进入中断时的状态,并在退出中断之前恢复进入中断前的状态。2、必须在中断程序中设定是否允许中断重入,即设置EX0位。一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。五、实验接线图图(2-1)六、实验程序框图恢复现场故障清除了吗?返回报警保护现场关输出中断服务子程序:YN图(2-3)主程序:开始···中断、P1口、P3口初始化P1口全低工序2延时工序1延时等开工工序7延时····图(2-2)七、实验步骤1、P3.4连K1,P3.3连K2,P1.0~P1.6分别连到L0~L6,P1.7连SIN(电子音响驱动控制区),其卧式开关打在音乐上,短路片选择左边为蜂鸣器,下边为喇叭。2、K1开关拨在上面,K2拨在上面。3、调试、运行程序test2中的GYSX.ASM。4、K1拨至下面(低电平),各道工序应正常运行。5、K2拨至下面(低电平),应有声音报警(人为设置故障)。6、K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。八.实验程序ORG0000HAJMP0030HORG0013HLJMPHA2S3ORG0030HHA2S:MOVP1,#0fFHORLP3,#00HHA2S1:JBP3.4,HA2S1ORLIE,#84HORLIP,#04HMOVPSW,#00HMOVSP,#53HHA2S2:MOVP1,#081HACALLHA2S7MOVP1,#082HACALLHA2S7MOVP1,#084HACALLHA2S7MOVP1,#088HACALLHA2S7MOVP1,#090HACALLHA2S7MOVP1,#0A0HACALLHA2S7MOVP1,#0C0HACALLHA2S7SJMPHA2S2HA2S3:MOVB,R2HA2S5:SETBP1.7ACALLHA2S6CLRP1.7ACALLHA2S6JNBP3.3,HA2S5MOVR2,BRETIHA2S6:MOVR2,#06HACALLDELAYRETHA2S7:MOVR2,#30HACALLDELAYRETDELAY:PUSH02HDELAY1:PUSH02HDELAY2:PUSH02HDELAY3:DJNZR2,DELAY3POP02HDJNZR2,DELAY2POP02HDJNZR2,DELAY1POP02HDJNZR2,DELAYRETEND实验五A/D转换实验一、实验目的1、掌握A/D2、了解A/D芯片08093、二、利用实验仪上的0809做A/D转换实验,实验仪上的电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过显示接口芯片8279三、A/D转换器大致分有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/DADC0809属第二类,是8位A/D转换器。每采集一次一般需100μs。由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。四、实验接线图显示部分原理图参考键盘显示控制器8279应用实验。IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EOC7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10UB43ADC0809123UB42A74LS02456UB42B74LS02RDWRD0D1D2GNDD7D0D1D2D3D4D5D6EOC/EOC56U1C74HC04R08094.7KVCCVCCIN0VoutCLK_0809500KHZCS_0809Y0图(5-1)五、实验程序框图开始0809初始化初始显示0809--000809通道0采样数码管显示采样值图(5-2)六、1、把0809的0通道IN0用插针线接至电位器模拟电压产生区Vout插孔(0~5V)。2、0809的时钟CLK_0809插孔与固定脉冲输出端500KHz相连。3、0809的片选CS_0809连接至系统译码Y0。4、将8279键盘接口显示部分的DU(a-h)用8芯线连接至数码管显示区的DU(a-h),BIT(BIT0-BIT7)连接至数码管显示区的BIT(BIT0-BIT7);将8279CS连接到系统译码Y6,8279CLK连接到固定脉冲的1MHZ。5、调试、运行程序test5中AD0809.ASM,在数码管上显示当前采集的电压值转换后的数字量,调节模拟电压的电位器,数码管显示将随着电压变化而相应变化,典型值为:0V—00H,2.5V—80H,5V—FFH。七、ORG0000HAJMPSTARTORG0030H;?START:LCALLFORMATMOVA,#00HMOVDPTR,#8000HMOVX@DPTR,ALCALLDY1MOVXA,@DPTRLCALLCONVERLCALLDISP8279LCALLDELAYAJMPSTARTFORMAT:MOV78H,#0H;;MOV79H,#8H;MOV7AH,#0H;MOV7BH,#9H;MOV7CH,#12H;-MOV7DH,#12H;-MOV7EH,#0H;0MOV7FH,#0H;0RETCONVER:MOVR0,AANLA,#0FHMOV7FH,AMOVA,R0SWAPAANLA,#0FHMOV7EH,ARETDISP8279:;显示子程序,缓冲区为78H-7FHC8279EQU0E001H;)7fffHD8279EQU0E000H;7FFEHMOVDPTR,#C8279MOVA,#0HMOVX@DPTR,A;写8279方式字MOVA,#2aHMOVX@DPTR,A;写分频系数MOVA,#0D0HMOVX@DPTR,A;清显示MOVA,#90HMOVX@DPTR,A;设置从左边开始写入数据DISP1:MOVXA,@DPTRJBACC.7,DISP1;读8279工作是否正常MOVR0,#78H;显示缓冲首址MOVR1,#08HDISP2:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTR;查字型MOVDPTR,#D8279cplaMOVX@DPTR,A;送字型到8279显示INCR0DJNZR1,DISP2RET;字型代码TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,08EH;8,9,A,B,C,D,E,FDB08CH,0C1H,0BFH,91H,89H,0C7H,0FFH,07FH;P(10),U(11),-(12),Y(13),H(14),L(15),关(16),.(17)CLEAR8279:MOVDPTR,#C8279;清显示子程序MOVA,#0D0HMOVX@DPTR,ARETDY:PUSH02H;延时子程序DELAY1:PUSH02HDELAY2:PUSH02HDELAY3:DJNZR2,DELAY3POP02HDJNZR2,DELAY2POP02HDJNZR2,DELAY1POP02HDJNZR2,DYRETDY1:MOVR7,#0FFhDJNZR7,$RETDELAY:MOVR6,#0FFhDELY2:MOVR7,#0FFhDELY1:DJNZR7,DELY1DJNZR6,DELY2RETEND实验十电子音响实验一、实验目的了解计算机发出不同音调声音的编程方法。二、实验内容用定时器产生不同频率的方法,组成的乐谱由单片机进行信息处理,经过放大后用8031的P1.0口输出音乐。三、预备知识1、要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用计时器计时(此半周期时间),计时到后即反向输出,重复此过程即得到此频率的脉冲。2、让定时器工作在计数方式,改变计数值TH0及TL0,以产生不同的频率。3、每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍。4、低音1至高音1所对应的频率(Hz)依次是:131、147、165、175、196、220、247、262、294、330、349、392、440、494、523。乘以二就提升该声音一个八度音阶,减半则降一个八度。四、实验线路图RD321KGC419012RD3115GNDVCCRD335.6KSINA1B2FMQ123J3_1LB1+LB1-RD32'1KVCCSPEAKERP1.0图(10-1)五、实验步骤1、把P1.0用插针连至SIN插孔上(电子音响驱动区的短路片连到右边LB,选喇叭,开关SWT1拔在音乐上,如果是DV

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功