单片机实验一计显示器Word文档下载推荐.docx
- 文档编号:13092851
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:7
- 大小:982.78KB
单片机实验一计显示器Word文档下载推荐.docx
《单片机实验一计显示器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机实验一计显示器Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
【实验方法】
实验电路原理图如图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<
reg51.h>
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++;
//表示不松开按键,数据计数不做任何处理。
后来才知道书上有对应的程序,觉得书上的延时子程序直接在前面写不是蛮好。
这样程序大了之后会不好找到主程序进行修改。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 显示器