实验课教案2

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

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

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

资源描述

1单片机原理实验九江学院谢辉程2实验一流水灯设计一、实验目的1、掌握单片机最小系统的设计方法。2、了解52系列单片机并行口输出/输入方式的工作原理及编程方法。3、掌握52系列单片机ISP(在系统可编程)技术。二、实验内容1、使用Wave6000软件编写、编译相关程序。2、使用ISPlay软件将程序写入单片机。3、利用单片机的P1口控制8个LED指示灯。3三、电路连线220X8VCC发光管显示区P10P11P12P13P14P15P16P174四、实验步骤1、将dip8开关全部拨到ON2、使用wave软件编辑、编译程序3、用下载头连接单片机和计算机4、使用isplay软件下载程序5、运行程序,排除程序错误6、观察并记录实验结果,写出实验报告5实验二数码管动态显示程序设计一、实验目的1、掌握利用数据口扩展LED数码管显示器的方法2、掌握LED动态显示方式二、实验内容1、设计显示子程序程序使6位LED数码管动态循环显示不同内容2、要求有滚动显示效果。三、实验原理。。。。。。6电路连线数码管动态显示区共阴极10K排阻VCCP0.0P0.0P0.2P0.3P0.4P0.5P0.6P0.7P2.2P2.3P2.4P2.5P2.6P2.7a1b2c3d4e5f6g7dp8d19d210d311d412d513d614D1LDS3661DH71、在一个数码管上显示一个字符P2←位码P0←段码暂停MOVP0,#4FHMOVP2,#10111111BSJMP$数码管动态显示区共阴极10K排阻VCCP0.0P0.0P0.2P0.3P0.4P0.5P0.6P0.7P2.2P2.3P2.4P2.5P2.6P2.7a1b2c3d4e5f6g7dp8d19d210d311d412d513d614d1d2d3d4d5d6D1LDS3661DH0100111111111082、多个数码管上显示不同字符显示子程序DS6显示1延时DS5显示2延时DS4显示3延时DS3显示4延时DS2显示5延时DS1显示6延时93、显示子程序程序流程DISPLAYR0←#30H:数据指针指向显存首地址(37H)←#01111111B:字位指针指向第一数码管A←((R0))A←查表求显示编码P0←AP2←(37H)R0←R0+1(37H)←(37H)右移一位延时1ms循环6次?返回说明:显示子程序显示缓冲区:35H~30H调用方法:将待显示数据存入显示缓冲区,再直接调用NY10查表求段码3FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71HTABMOVA,#8MOVDPTR,#TAB;DPTR=TABMOVCA,@A+DPTRA=8...A=7FHA+DPTR=TAB+8TAB:DB3FH,06H,5BH,4FHDB66H,6DH,7DH,07HDB7FH,6FH,77H,7CHDB39H,5EH,79H,71HDB76H,38H,00H114、显示内容的修改修改显示缓冲区35H~30H内容即可125、字母的显示将字母的段码加入码表将段码在码表中的偏移地址送入显示缓冲区调用DISPLAY136、滚动程序设计——乒乓机制可见显示区域35H~30H待显示字符3FH~3CH14滚动显示程序流程——显示内容的修改MAIN赋初值:(30H)←#12H(31H)←#00H(32H)←#11H(33H)←#11H(34H)←#0EH(35H)←#10H(3CH)←#12H(3DH)←#12H(3EH)←#12H(3FH)←#12H(3BH)←#100;循环次数MAIN调用DISPLAY循环100次?(3AH)←(3FH)(3FH)←(3EH)(3EH)←(3DH)(3DH)←(3CH)(3CH)←(35H)(35H)←(34H)(34H)←(33H)(33H)←(32H)(32H)←(31H)(31H)←(30H)(30H)←(3AH)(3BH)←#100YNTAB:DB3FH,06H,5BH,4FHDB66H,6DH,7DH,07HDB7FH,6FH,77H,7CHDB39H,5EH,79H,71HDB76H,38H,00H15实验三中断响应程序设计一、实验目的1、了解单片机中断控制的工作原理和中断方式的选择;2、掌握多个中断同时发生时中断优先权的设置方法3、掌握多个中断源的扩展方法二、实验内容1、利用单片机INT1口与开关K0、K1、K2、K3进行中断控制;2、在主程序中设计8个指示灯轮流亮,在外部中断中用K0、K1、K2、K3控制指示灯不同的花样。三、实验原理。。。。。。16220X8VCC发光管显示区11.059230p30p晶振区RSTP30P31P32K0K1K2K34K7x4VCC1312109874ls21BP10P11P12P13P14P15P16P17P10P11P12P13P14P15P16P17EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10AT89S52按键中断电路连线17实验四键盘接口程序设计一、实验目的1、掌握单片机独立键盘接口方法;2、掌握单片机键盘检测程序设计方法;3、掌握软件消除按键抖动方法;二、实验内容1、开机时数码管显示1002、按键key0一次数字加1,按键key1一次数字减1。加到999时再加1归零,减到000时再减1得999。3、按住键key2不放实现连加功能,前3s每0.2s加1,以后每0.1s加1。4、按住键key3不放实现连减功能,前3s每0.2s减1,以后每0.1s减1。18实验原理K0K1K2K34K7x4VCC1245674ls21AEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10AT89S52按键中断.19主程序设定初始值(30H)←#00H(31H)←#00H(32H)←#01H(33H)←#10H;全灭(34H)←#10H;全灭(35H)←#10H;全灭调用DISPLAY子程序设置中断IT1,EX1,EA主程序流程20DISPLAYR0←#30H:数据指针指向显存首地址(37H)←#01111111B:字位指针指向第一数码管A←((R0))A←查表求显示编码P0←AP2←(37H)R0←R0+1(37H)←(37H)右移一位延时1ms循环6次?返回说明:显示子程序显存:35H~30H调用方法:将待显示数据存入显存,再直接调用NY显示子程序流程21中断服务程序调用DISPLAY两次(延时12ms)P3.3为0?key0服务程序P3.4为0?P3.5为0?P3.6为0?P3.7为0?key1服务程序key2服务程序key3服务程序返回调用DISPLAY两次(延时12ms)P3.3为1?P3.3为1?YNYYNYYYYNNNNN调用DISPLAYINT1RET122ADDONE(30H)←(30H)+1(30H)=#A?(32H)←#0(30H)←#0(31H)←(31H)+1(31H)=#A?(31H)←#0(32H)←(32H)+1(32H)=#A?返回NYYYNN加1子程序SUBONE(30H)←(30H)-1(30H)=#FF?(32H)←#9(30H)←#9(31H)←(31H)-1(31H)=#FF?(31H)←#9(32H)←(32H)-1(32H)=#FF?返回NYYYNN减1子程序23key0服务程序调用ADDONE子程序跳转至INT1RET1key1服务程序调用SUBONE子程序跳转至INT1RET1按键服务程序流程124key2服务程序调用ADDONE子程序调用DISPLAY子程序P3.3=0?循环33次?调用DISPLAY子程序2次(延时12ms)P3.3=1?跳转至INT1RET1共循环500次?调用ADDONE子程序调用DISPLAY子程序P3.3=0?循环16次?注释:调用DISPLAY33次约0.2s注释:调用DISPLAY500次约3s注释:调用DISPLAY16次约0.1s注释:key2服务程序中每调用DISPLAY一次即每6ms检测P3.3(INT1)引脚状态一次,若为0说明按键仍未放开,则前3s每调用DISPLAY33次即0.2s调用ADDONE子程序一次实现加1.以后每调用DISPLAY16次即每0.1s加1,检测到P3.3为高时跳转调用DISPLAY子程序2次(延时12ms)P3.3=1?跳转至INT1RET1NYNNNNNYYYYYY25追加任务1、开机时数码管显示1002、按键key0一次数字加1,长按按键key0一次数字减1。加到999时再加1归零,减到000时再减1得999。3、按键key1一次数字加10,长按按键key1一次数字减10。加到990时再加10归零,减到000时再减10得990。4、按住键key2不放实现连加功能,前3s每0.2s加1,以后每0.1s加1。5、按住键key3不放实现连减功能,前3s每0.2s减1,以后每0.1s减1。26实验五定时/计数器的应用一、实验目的1、掌握89s52单片机定时/计数器的工作方式和编程原理。2、掌握定时方法及定时器中断方法。二、实验内容利用单片机的定时/计数器设计一个15s倒计时器,按key0后启动,要求精确显示到百分之一秒。发挥部分:1、定时结束后有提示音报警,并可重新定时2、定时时间可设置,最多30s。3、定时过程中可暂停三、实验原理要精确显示1s%,则定时时间应设为10ms,单片机外接11.0592M晶振,定时初值自己计算。每中断一次百分秒位减一。流程图如下:27主程序设定定时初值(TL0、TH0)设定定时器工作模式(TMOD)允许T0中断(ET0、EA)启动T0(TR0)设定倒计时及显示初值(35H)=(34H)=全灭(33H)=1;十秒位(32H)=5;秒位(31H)=0;十分秒位(30H)=0;百分秒位调用DISPLAY子程序T0中断服务程序重装定时初值调用SUBONE子程序中断返回key0按下?调用DISPLAY2次(12ms)P3.4为0?调用DISPLAYNNYYDISPLAY子程序设计参考实验二,SUBONE子程序设计参考实验四。实验六:电子音乐盒设计一.实验目的1.掌握89s52单片机定时/计数器的工作方式和编程原理。2.掌握定时方法及定时器中断方法。3.掌握扬声器发声原理及驱动电路设计方法。4.了解基本乐理。二.实验内容设计一个简易电子音乐盒,能播放一段简单音乐。三.实验原理详见课件。29实验七:基于DS18B20的数字温度计设计一、实验目的1、了解单总线器件的工作方式和编程原理。2、掌握DS18B20和单片机接口设计方法。二、实验内容利用单片机实验板设计温度测量程序,精确到0.1°C发挥部分:1、超过设定温度范围报警(声、光、显示)2、温度控制(模拟)三、实验原理见课件30实验步骤:1、设计初始化子程序并验证2、设计读取、写入一字节子程序3、设计转换精度设定子程序4、设计发转换温度命令子程序5、设计读取温度子程序6、综合验证步骤2~67、设计温度数据计算子程序8、显示测量结果9、系统统调31实验八:基于DS1302的精密时钟设计一、实验目的:1、掌握定时/计数器应用方法;2、掌握数字钟的设计方法二、实验内容:基本功能:设计一实时时钟,能显示时、分、秒、年、月、日和星期发挥部分:1、可以设定时间2、可以根

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

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

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

×
保存成功