//实例64:用数码管显示动态检测结果
#include<reg51.h> // 包含51单片机寄存器定义的头文件
#include<stdlib.h> //包含随机函数rand()的定义文件
unsigned char i; //记录中断次数
unsigned int x; //随机检测的数据
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示0~9的段码表
/***********************************************************************
函数功能:快速动态扫描延时,延时约0.9毫秒
************************************************************************/
void delay(void)
{
unsigned int i;
for(i=0;i<300;i++)
;
}
/***********************************************************************
函数功能:4位数的数码显示器显示
入口参数:k
出口参数:无
************************************************************************/
void display(unsigned int k)
{
P2=0xfe; //即P2=1111 1110B,P2.0引脚输出低电平,数码显示器DS0接通电源
P0=Tab[k/1000]; //显示千位
delay();
P2=0xfd ; //即P2=1111 1101B,P2.1引脚输出低电平,数码显示器DS1接通电源
P0=Tab[(k%1000)/100]; //显示百位
delay();
P2=0xfb; //即P2=1111 1011B,P2.2引脚输出低电平,数码显示器DS2接通电源
P0=Tab[(k%100)/10]; //显示十位
delay();
P2=0xf7; //即P2=1111 0111B ,P2.3引脚输出低电平,数码显示器DS3接通电源
P0=Tab[k%10];//显示个位
delay();
P2=0xff; //关闭所有显示器
}
void main(void) //主函数
{
TMOD=0x01; //使用定时器T0
TH0=(65536-46083)/256; //将定时器计时时间设定为46083×1.085微秒=50000微秒=50毫秒
TL0=(65536-46083)%256;
EA=1; //开启总中断
ET0=1; //定时器T0中断允许
TR0=1; //启动定时器T0开始运行
while(1)
{
display(x); //调用检测结果的显示程序
}
}
/********************************************************
函数功能:定时器T0的中断服务程序
*******************************************************/
void Time0(void) interrupt 1 using 1
{
TR0=0; //关闭定时器T0
i++; //每来一次中断,i自加1
if(i==20) //够20次中断,即1秒钟进行一次检测结果采样
{
x=rand()/10; //随机产生一个从0到32767的整数,再将其除以10,获得一个随机4位数,模拟检测结果
i=0; //将i清0,重新统计中断次数
}
TH0=(65536-46083)/256; //重新给计数器T0赋初值
TL0=(65536-46083)%256;
TR0=1; //启动定时器T0
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于C语言实现用数码管显示动态检测结果(含源代码+使用说明).zip (4个子文件)
330-用数码管显示动态检测结果
ex64.DSN 80KB
Last Loaded ex64.DBK 80KB
ex64.c 2KB
ex64.hex 1KB
共 4 条
- 1
资源评论
CyMylive.
- 粉丝: 6610
- 资源: 3万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python爬取大众点评数据.zip
- 计算机视觉(CV)open CV 人脸识别程序.docx
- python 端午节游戏,选择三个传统的端午节活动之一:包粽子、赛龙舟或挂艾草 根据玩家的选择,游戏会描述相应的情节,并在完成后
- C语言各版块实验题库、实验汇报以及实验教学案例资源
- 数据库连接(MySQL与VS2022)_vs2022 mysql-CSDN博客 (2024_6_1 19_11_34).html
- Flappy bird小游戏
- 数电实验五:555单稳态触发电路、555单稳态触发电路、555构成的施密特触发器
- MySQLTuner,一个用Perl编写的脚本,它允许你快速审查MySQL安装情况,并进行调整以提高性能和稳定性
- 冒泡排序 基础排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序.zip
- 数电实验四:加法计数器、减法计数器、加法器、建议数字钟、74LS192功能测试
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功