- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1 闪烁灯实验2 模拟开关灯实验3 多路开关状态指示实验4 广告灯设计实验5 广告灯(利用取表方式)实验6 报警器实验7 I/O并行口直接驱动LED显示实验8 按键识别方法之一实验9 00~99计数器实验10 动态数码显示技术 1. 实验目的 2. 实验设备 3. 实验原理 (1) 延时程序的设计方法。图8-1所示石英晶体的晶振频率为12 MHz, 因此, 1个机器周期为1 μs。 机器周期 微秒 MOV R6, #20 2个 2 D1: MOV R7, #248 2个 2 2+2×248=49 820×498 DJNZ R7, $ 2个 2×248 +2+40 DJNZ R6, D1 2个 2×20=40 =10 002 因此, 上面的延时程序时间为10.002 ms。 由以上可知, 当R6=10、R7=248时, 延时5 ms; 当R6=20、R7=248时, 延时10 ms。以此为基本的计时单位, 如本实验要求0.2 s=200 ms, 10 ms×R5=200 ms, 则R5=20, 那么延时子程序如下: DELAY: MOV R5, #20D1: MOV R6, #20D2: MOV R7, #248 DJNZ R7, $ DJNZ R6, D2 DJNZ R5, D1 RET (2) 输出控制。如图8-1所示, 当P1.0端口输出高电平, 即P1.0=1时, 根据发光二极管的单向导电性可知, 这时发光二极管L1熄灭; 当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮; 我们可以使用SETB P1.0指令使P1.0端口输出高电平, 使用CLR P1.0指令使P1.0端口输出低电平。 4. 实验线路(见图8-1) 5. 实验步骤 把“单片机系统”区域中的P1.0端口用导线连接到“8路发光二极管指示模块”区域中的L1端口上。 6. 程序框图与参考程序 (1) 程序框图如图8-2所示。 (2) 参考程序。 ① 汇编程序如下: ORG 0 START:CLR P1.0 LCALL DELAY SETB P1.0 LCALL DELAY LJMP START DELAY:MOV R5, #20 ; 延时子程序, 延时0.2 s D1: MOV R6, #20 D2: MOV R7, #248 DJNZ R7, $ DJNZ R6, D2 DJNZ R5, D1 RET END ② C语言源程序如下: #include 〈AT89X51.H〉 sbit L1=P1^0; void delay02s(void) //延时0.2 s子程序 { unsigned char i, j, k; for(i=20; i0; i--) for(j=20; j0; j--) for(k=248; k0; k--); } void main(void){ while(1) { L1=0; delay02s(); L1=1; delay02s(); }} 1. 实验目的 2. 实验设备 3. 实验原理 (1) 开关状态的检测过程。 (2) 输出控制。 4. 实验线路(见图8-3) 5. 实验步骤 (1) 把“单片机系统”区域中的P1.0端口用导线连接到“8路发光二极管指示模块”区域中的L1端口上; (2) 把“单片机系统”区域中的P3.0端口用导线连接到“8路拨动开关”区域中的S1端口上。 6. 程序框图与参考程序 (1) 程序框图如图8-4所示。 (2) 参考程序。 ①
文档评论(0)