51单片机

您所在的位置:网站首页 单个数码管显示程序c语言 51单片机

51单片机

2024-07-15 20:50| 来源: 网络整理| 查看: 265

一、实验任务 实现两个数码管同时显示0-9,间隔时间为1s;实现两个数码管秒表设计。 二、实验目的及原理

1.实验目的:了解数码管的分类、基本构造、显示原理、段码编排规则;掌握数码管的常用驱动方式、动态与静态显示原理;理解Proteus LED 数码管显示电路原理;掌握Keil C语言实现数码管0-9的编程思路。

2、实验原理:数码管由8个发光二极管组成,通过控制这8个灯的亮灭显示不同的数字。

三、实验中使用的仪器与材料

Keil、PZ-ISP、普中科技51单片机、数码管、发光二极管

四、实验方案、步骤及原始记录(数据、图表、计算等)

1.任务一:实现两个数码管同时显示0-9,间隔时间为1s

(1)用keil编写程序,输出hex文件

​​​​​​​

(2)将输出的hex文件烧录到开发板上

2.任务二:实现两个数码管秒表设计

(1)用keil编写程序,输出hex文件

#include #define GPIO_DIG P0 void Delay10ms(unsigned int c); //延时函数声明 //控制数码管显示0-9数字 unsigned char code DIG_CODE[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //主函数 void main(void) { unsigned char i = 7; //个位 unsigned char j = 0; unsigned char t = 5; //十位 while(1) { for(j=0;j0;c--) { for(b=38;b>0;b--) { for(a=130;a>0;a--); } } }

(2)将输出的hex文件烧录到开发板上

五、实验结果及分析、实验过程中遇到问题及处理过程说明

1.任务一结果:

2.任务二结果:

3.遇到的问题及处理过程

       在完成任务1时将程序烧录在开发板上,只能实现1个数码管的数字显示,不知该如何选择数码管,从原理图入手却又看不懂,于是结合网上资料和原理图,发现74HC138译码器可用于控制数码管的选择,增补P2=0x..后,又出现两个灯无法同时亮的问题,网上查资料得可利用余晖效应,通过两个数码管不断地短时间内交替亮,使人产生两个数码管同时亮的错觉,反映到编程上即可用循环+延时。

六、实验总结及心得体会

       通过本次实验,我了解了数码管的显示原理,学会了用C语言实现数码管显示0-9的编程思路及数码管的位选。编程时一定要软硬结合,依据原理图编程,会看原理图上的标签,都是一一对应的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3