单片机实验一计显示器.docx

上传人:b****9 文档编号:161151 上传时间:2022-10-04 格式:DOCX 页数:7 大小:982.78KB
下载 相关 举报
单片机实验一计显示器.docx_第1页
第1页 / 共7页
单片机实验一计显示器.docx_第2页
第2页 / 共7页
单片机实验一计显示器.docx_第3页
第3页 / 共7页
单片机实验一计显示器.docx_第4页
第4页 / 共7页
单片机实验一计显示器.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机实验一计显示器.docx

《单片机实验一计显示器.docx》由会员分享,可在线阅读,更多相关《单片机实验一计显示器.docx(7页珍藏版)》请在冰豆网上搜索。

单片机实验一计显示器.docx

单片机原理及应用实验报告一

实验名称:

计数显示器实验指导老师:

学生姓名:

班级:

学号:

【实验目的】

熟悉51单片机的基本输入\输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法。

【实验方法】

实验电路原理图如图1.1所示,图中含有如下五个分支电路:

共阴极数码管LED1和LED2,P0口,P2口,上拉电阻RP1以及Vcc组成的输出电路;由按钮开关BUT,P3.7和接地点组成的输入电阻;由C1,C2,晶振X1,引脚

XTAL1,XTAL2与接地点组成的时钟电路;由C3,R1,引脚RST和Vcc组成的上电复位电路;由Vcc和引脚(EA非)组成的片内ROM选择电路(简称片选电路)

在编程软件的配合下,该电路可实现如下计数功能显示,可统计按钮BUT的按压次数,并将按压的结果以十进制形式显示出来;当显示值达到99后可自动从一开始循环。

图1.1

【实验内容】

观察ProteusISIS模块的软件结构,熟悉菜单栏,工具栏,对话框等基本单元功能,如图1.2

图1.2

选择元件(1.3),画导线(1.4),画总线(1.5),修改参数(1.6)等基本操作

图1.3

图1.4

图1.5

图1.6

学会可执行文件加载及程序仿真运行方法;如图1.7

图1.7

验证计数显示器的共能。

【电路原理图分析】

上拉电阻的存在是因为P0口不能正常输出信号“1”(因为漏极开路),所以接

上拉电阻是必须的。

【实验程序】

#include

voiddelay(unsignedintc) ;//申明延时函数,延时时间为c*10mssbitkey=P3^7; //位申明

unsignedcharcodeduanma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//0、1、2、3、4、5、6、7、8、9的显示码

voidmain()

{ inta,b;

inti=0;while

(1)

{

if(key!

=1)

{

delay

(1); //延时消抖(实际电路中会出现颤抖)

if(key==1) //判断按键是否松开,松开之后才会自加一,不然计数不作处理i++;

}

if(i==100)i=1;

a=i/10;b=i%10;

P0=duanma[a]; //输出相应的十位

P2=duanma[b]; //输出相应的各位

}

}

voiddelay(unsignedintc) //延时程序10ms

{

unsignedchara,b;

for(;c>0;c--)

{

for(b=0;b<38;b++)

{

for(a=0;a<130;a++);

}

}

}

【仿真运行截图】

【实验小结】

由于C语言有比较好的移植性,所以我从我的单片机教程上移植了数码显示管的断码,本着是16个I/0口控制两个数码管就没用到相应的74LS138译码器来选择哪个数码管显示(即位选),就是实验程序调试时发现延时的时间控制不是那么好控制,远远没有定时器那么精确。

出现过一次问题是因为没有设置按键松手检测,导致按一次开关数码管会

跳几个数值。

外加了一个if(key==1)i++;//表示不松开按键,数据计数不做任何处理。

后来才知道书上有对应的程序,觉得书上的延时子程序直接在前面写不是蛮好。

这样程序大了之后会不好找到主程序进行修改。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1