(精)第2-3讲 Keil使用(单片机控制LED灯).ppt
文本预览下载声明
第2讲 单片机控制LED灯 Keil软件介绍 如下图在“文件名”中输入您的第一个C程序项目名称,这里我们用“test”, “保存”后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名 2、选择所用的单片机类型 Atmal下的AT89C52 3、新建单片机源文件(.ASM) 4、编辑源文件 注意:Tab键的使用 5、保存源文件为xxx.asm文件 注意:文件的后缀名 6、向项目中添加文件 8、选择程序存储目标 9、创建EPROM可以存储的HEX文件 12、连接到仿真器 操作:先按仿真器的“复位”按钮,再“开始Debug” 13、观察程序存储器 操作:在“Address”中输入:0000,或者c:0000 14、观察数据存储器(运行程序前) 操作:在“Address”中输入:D:0000 15、观察数据存储器(运行程序后) 总结(Keil过程) (1)新建一个Project项目文件(.uv2) 选择单片机型号(Atmel-AT89C51) (2)编辑源文件并存盘(.ASM) (3)将源程序添加到工程中 (4)设置Keil工程目标项 Output:Create HEX files Debug: Use Keil Monitor-51 Driver (5)汇编源程序,生成HEX文件 (6)运行调试 Debug—Start/Stop Debug Session 连接仿真器(注意复位) 运行:Go、Step、Step Over、Stop 实例:单片机控制LED灯 从P1输出数据,控制LED(观察:低电平/高电平发亮?): MOV P1,#00H 或者 MOV P1,#0FFH 如何使LED灯闪烁? 按照Keil使用方法,连接仿真器,完成这个实验,总结实验过程! 硬件线路 回顾一下 保存源文件时,要输入.ASM 源程序修改后,除了保存之外,还要重新汇编(检查程序错误,一定要0 Error方可)编译生成HEX文件(机器码) 如何控制各个窗口? 运行:Go (Run,运行整个程序) Step(单步运行) Step Over(过程单步:将一个子程序这个过程作为单步运行) Stop Running(停止运行) 断点的设置与运行 观察(Memory Window) 复杂问题 几个发光管亮的情况 几个发光管循环亮的情况 部分源代码 一个发光管显示的例子 ORG 0000H START: MOV P1,#0FEH SJMP $ END 部分源程序 一个发光管闪烁的程序 ORG 0000H START:MOV P1,#0FEH ACALL DELAY MOV P1,#0FFH ACALL DELAY SJMP START 观察:延时程序的延时时间 Sec=0.06s=60ms 如何计算,以后会讲 部分源程序发光管循环(流水灯)程序 ORG 0000H START: MOV A,#0FEH S1: MOV P1,A RL A ACALL DELAY SJMP S1 DELAY: …… END 讨论 任意变化怎么办? 运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。 方法:把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。 发光管任意变换的程序 ORG 0000H START: MOV DPTR,# TAB ;流水花样表首地址送DPTR LOOP: CLR A ;累加器清零 MOVC A,@A+DPTR ;取数据表中的值 CJNE A,#0FFH,SHOW;检查流水结束标志 AJMP START ;所有花样流完,则从头开始重复流 SHOW: MOV P1,A ;将数据送到P1口 ACALL DELAY ;调用延时子程序 INC DPTR ;取数据表指针指向下一数据 AJMP LOOP ;继续查表取数据 TAB: ;下面是流水花样数据表,用户可据要求任意编写 DB ;二进制表示的流水花样数据,从低到高左移 DB
显示全部