单片机数码管显示实验报告Word文件下载.docx
- 文档编号:13079187
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:13
- 大小:13.20KB
单片机数码管显示实验报告Word文件下载.docx
《单片机数码管显示实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机数码管显示实验报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
unsigned
char
code
dispcode[]=
{0x30,0xfc,0xa2,0xa4,0x6c,0x25,0x21,0xbc,0x20,0x24};
void
init()
{
key0=1;
key1=1;
key2=1;
}
delayms(int
a)
{
b=0;
for(a;
a0;
a--)
for(b=110;
b0;
b--);
judge()
if(key0==0)
delayms(100);
red=0;
yell=1;
gre=1;
num++;
if(num==10)
if(key1==0)
{
delayms(5);
red=1;
yell=0;
if(key2==0)
gre=0;
return0;
xianshi()
P0=dispcode[num];
LED1=0;
LED2=1;
main()
init();
while
(1)
judge();
xianshi();
五、实验步骤
六、附录
篇二:
单片机实验两位数码管显示报告一、实验目的
1、在之前单键实验和中断控制数码管“静态”显示实验的基础上,把单键判断、数码管显示和中断结合起来编写中断程序实现单键控制一位数码管;
2、在实现控制一位数码管显示的基础上用单键控(转载于:
www.cdFDs.cOM池锝网:
单片机数码管显示实验报告)制两位数码管显示。
二、实验所需器材与软件硬件:
电脑、传输线、AT89S52单片机软件:
编程软件Keil
uVision3;
读写软件MePro
V5.02三、实验程序的及其分析:
1、单键控制一位数码管显示主要设计思路:
在中断主程序后加入单键判断键按下情况判断语句,把数码管显示程序放在中断子程序中。
当有键按下且有中断请求时,重新给数码管显示偏移地址赋值,从而改变显示内容。
程序:
ORG0000H
AJMP
MAIN;
转向主程序
ORG001BH;
中断矢量地址
T_INT;
转向中断服务程序
MAIN:
;
主程序标号
MOV
R3,#0;
表偏移地址
DPTR,#TAB;
把表头地址赋值给寄存器DPTR
TMOD,#10H;
设定定时器工作于模式1
TH1,#0FEH;
定时器赋初值
TL1,#0EH
SETB
ET1;
开中断
EA
TR1;
启动定时器
LOOP1:
JNB
P1.4,LOOP4
LOOP1
LOOP4:
ACALL
DELAY
P1.4,LOOP_ADD单键按下判断程序
LOOP_ADD:
INC
R3
CJNE
R3,#10,LOOP8
R3,#0
LOOP8:
T_INT:
TH1,#0FEH
A,R3中断程序内嵌的数码管显示程序MOVC
A,@A+DPTR
P0,A
MOV
P2,#11111110B
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;
表内容
DB80H,90H
DELAY:
R5,#64H
LOOP5:
R7,#0FFH
LOOP6:
NOP
NOP用于单键按下防抖动的延时程序
DJNZ
R7,LOOP6
R5,LOOP5
RET
2、单键控制两位数码管显示设计思路:
用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位,使每次执行中断程序时显示一位数,循环两次中断程序后“静态”
显示两位数字。
MAIN
ORG001BH
T_INT
R0,#0;
用来判断中断程序显示内容的位数
把数码管显示的个位偏移地址存放在R3MOV
R1,#0;
把数码管显示的十位偏移地址存放在R1MOV
R4,#0FEH;
数码管位码内容
R2,#0;
用于计算数码管位码移位次数
把表头地址赋给DPTR
TMOD,#10H
TH1,#0FEH
ET1中断启动初始化
TR1
P1.4,LOOP4;
键按下判断程序
P1.4,LOOP_ADD
R3;
当有键按下时,个位偏移地址加一位CJNE
R3,#10,LOOP8;
判断个位显示的数值是否超过9INC
R1;
个位数值到9后十位进一位
使个位显示为“0”
R1,#10,LOOP8;
判断十位显示数值是否超过9
显示满“99”后将数码管置“00”LOOP8:
R0,#2,LOOP10
A,R3
R0数码管个位和十位切换操作指令AJMP
LOOP11
LOOP10:
A,R1
R0,#2
LOOP11:
MOVC
A,@A+DPTR
P2,R4
A,R4
RL
A;
显示完一个数码管后对位码向左移一位MOV
R4,A
R2;
记录移位次数
R2,#2,LOOP9;
当移位次数为两次时,执行位码赋初始值指令MOV
令位码返回初始值
移位次数清零
LOOP9:
R5,#99H
NOP键防抖动延时判断程序
四、实验结果分析经过艰辛的调试工作,单键的按下判断程序能成功区分抖动键,实现按下与否判断,一位数码管和两位数码管显示均能按预定要求工作,但两位数码管显示程序设计逻辑有局限性,在自己所设计逻辑的模式下难以向上扩展,要实现三位以上数码管显示时有很大困难。
五、实验心得体会每一次的实验内容都是在之前实验基础上进行的,因此,从多次实验经验来看,要想顺利完成当次实验,课前回顾之前所做实验内容也是颇为重要的。
在写程序时应先想好程序设计基本思路,避免在原来的程序模板中漫无目的地插入程序,靠投机取巧实现实验要求,每次在实验中都有深深的体会,在编程序前想好思路,然后循着思路琢磨着怎么实现会比较容易,且能更好掌握程序逻辑结构,免得实现了实验要求,自己却看懂所写的程序。
在这次实验中,虽然实现了两位数码管的显示,但是数码管显示的个位和十位是通过存放在两个寄存器中实现的,再向上扩展至多位数码管显示却是难以实现,因此不是一个优良的程序结构,这也是这次实验最难突破的难点。
注:
1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
篇三:
单片机数字时钟实验报告数字时钟实验报告一、实验目的
1、熟悉单片机的结构和各引脚的的功能以及如何用程序控制。
2、学习用单片机对数字时钟控制、按键扫描及LED数码管显示的设计方法。
3、了解键盘的结构以及工作原理,通过单片机的定义实现对数码管时钟的调整。
二、实验要求
1、可以正常准确的显示时间.
2、可以通过键盘输入来对时间进行调整.
3、能够以两种时钟表示方式显示时间.
4、自由发挥其他功能.
三、实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
利用键盘实现对时钟的调整,定义四个按键,按下第一个按键位置跳变到“分”,在按定义的第二个键每按一次数字加一,当数字到59时再按一次,直接跳变到00;
用第三个键控制“时”的12小时制还是24小时制,对键盘扫描,如果发现该键被按下,则表示为12进制,每按一次第四个按键数字加一,当到达12时,再按一次直接跳到1,如果没有发现该按键,则默认为24小时制,当数字是23时,再按一次跳变到00,再按一下第一个键退出对事件的调整。
四、实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
第二部分是硬
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数码管 显示 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)