单片机数码管显示实验报告Word格式文档下载.docx
- 文档编号:3644529
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:13
- 大小:13.20KB
单片机数码管显示实验报告Word格式文档下载.docx
《单片机数码管显示实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机数码管显示实验报告Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。
{
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引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
这是前期准备工作。
第二部分是硬件部分:
依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。
第三部分是软件部分:
先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。
第四部分是软件画图部分:
设计好电路后进行画图,包括电路图和仿真图的绘制。
第五部分是软件仿真部分:
软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。
第六部分是硬件实现部分:
连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。
最后进行功能扩展,在已经正确的设计基础上,添加额外的功能
以下为具体的数字时钟实现程序段:
#define
uchar
uint
sec,sec1,min,min1,hou,hou1,t,num,temp;
num1,num2,num3,n,k=0;
table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40};
keyscan();
control();
void
display(uchar,uchar,uchar,uchar,uchar,uchar,uchar,uchar
);
delay(uint
z)
x,y;
for(x=z;
x0;
x--)
for(y=110;
y0;
y--);
main(){
while
(1){
TR0=0;
control();
TR0=1;
if(t==20){
t=0;
num1++;
if(num1==60){
num1=0;
num2++;
if(num2==60){
num2=0;
num3++;
if(num323)
num3=0;
sec1=num1/10;
sec=num1%10;
min1=num2/10;
min=num2%10;
hou1=num3/10;
hou=num3%10;
display(hou1,hou,10,min1,min,10,sec1,sec);
init(){
num1=0,num2=0,num3=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
time0()
interrupt1
t++;
display(uchar
a,uchar
b,uchar
c,uchar
d,uchar
e,uchar
f,uchar
k,uchar
h){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数码管 显示 实验 报告