求单片机实验七段数码管显示实验程序

求单片机实验七段数码管显示实验程序,第1张

/* ch03-3-4.c - 七段LED数码管实验程序 */

//==声明区=================================================

#include<reg51.h>//定义8051寄存器的头文件,P2-17~19

#define SEG P0 //定义七段LED数码管接至Port 0

/*声明七段LED数码管驱动信号数组(共阳)*/

char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //数字0-4

0x92,0x83,0xf8,0x80,0x98}//数字5-9

void delay(int) //声明延迟函数

//==主程序==========================================

main() //主程序开始

{ unsigned char i//声明无符号变量i

while(1)//无穷循环,程序一直跑

for(i=0i<10i++) //显示0-9,共10次闭虚族

{ SEG=TAB[i]//显示数字

delay(500) //延迟500×1m=0.5秒

} //for循环结束

} //主程序结束

//==子程序==========================================

/* 延迟函数,延迟约x×1ms */

void delay (int x) //延迟函数誉逗开始

{int i,j //声明整形变量i,j

for (i=0i<xi++) //计数x次,延迟x×1ms

for (j=0j<160j++) //计数120次,延迟1ms

} //延迟函数结束轿弊

1.题目及要求

1.1题目:七段码电子表显示程序

1.2要求

1.七段码电子表显示程序

2.菜单选择:设置时,分,秒,开始,退出等

3.模拟七段码管显示时,分,秒

4.要求界面美

2.功能设计

说明:esc键退出 s键设置时间

数据段

(1)Disptime , showtime 显示时钟

(2)定义定义0-9十个图形数字,以便模拟七段码显示时钟

宏定义

(1)Clear定义清屏宏

(2)rowcol 定义光标定位宏

(3)crlf 回车换行宏

(4)display显示字符串宏

(5)change 计算时间宏

函数

(1) main 主函数

(2) play 主要完成显示七段码电子表显示

(3) prog0 到prog10完成七段码到一般显示的转换

(4) moveshape 显示七段码电子表

(5) delay 延迟函纳扒肢数

(6) exit 返回DOS函数

3.设此卜计详细

3.1设计方法

(1)Clears清屏宏 用到了BIOS中断06H。

(2)rowcol光标定位宏 用到了BIOS中断02H。

(3) crlf 回车换行宏 用到了DOS中断的0ah, 0dh

(4) display显示字符串宏 用到了DOS中断的09h

(5) change 计算时间宏 用户自己定义的宏,方便以后使用

(6)main 主函数 主要调用子函数实现功能

(7)delayr 延迟函数 用双重循环实现,根据不同机子设置不同的参数

(8)exit 返回DOS函数 ,也就是结束函数。调用int 21h中的04h

(9) moveshape 显示七段码电子表函数。利用int 21h中的09h

目 录

1题目及要求2

2功能设计2

3详细设计2

3.1设计方法2

3.2流程洞世图2

3.3重点,难点6

4总结心得体会7

5参考文献7

6附:源程序7 谢谢请采纳

三菱编程手册中这样表述MOV指令的功能:

首先,FNC12 MOV是利用手持编程器FX10P或FX20P录入时的功能编号,符号D表示该指令可以进行双字传送,符号P表示该指令可以采用脉冲型。

例如:

第 1 页

该程序段完成的功能是传送K1X000的数据唤拆到K1Y000,进行输出。根据前面的功能指令概述,K1X000是指X003X002X001X000,K1Y000是指Y003Y002Y001Y000,注意是一一对应传递,设X003X002X001X000输入端分别为1011,则在X005为1时使Y003Y002Y001Y000对应也变为1011。(大家可以在软件上调一下,加深印象)

注意,每一个扫描周期都传送1次。

第 2 页塌斗

上面程序MOV K9 D0,中当X000为1时,D0内容为:

当X005为1时:

第 3 页

注意,每一个扫描周期都传送1次。

以下也是MOV指令的一些用法:

注意,每一个扫描周期都传送1次。

其次,DMOV的用法:

注意,每一个扫描周期都传送1次。和衫枣

第 4 页

再次,MOVP和DMOVP用法:

当X000由0变为1时(脉冲产生时)将K9传送至D0,当X000保持为1时,无论再执行多少个扫描周期,D0中数据保持K9,即只传送1次。

同理DMOVP可自行实验。

传送指令MOV的例子—减压起动

第 5 页

以上为I/O接线图。

以上为元器件动作过程分析。

第 6 页

用MOV控制三个灯依次闪烁一秒 SWOPC-FXGP/WIN-C


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12252263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存