计数显示器c语言程序,单片机计数显示器.doc
单片机计数显示器
电子秒表显示器
设计要求及目的
设计要求:在Keil C中用C51语言编程,并在Proteus中模拟51单片机的电子秒表显示器,并在电子秒表显示器中加入中断和定时,使得电子秒表显示器反复的显示某个区间(0~60)的值。
设计目的:熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法,同时,掌握C51语言的编程方式和数据结构,掌握中断和定时的概念以及在51系列单片机中的应用。
实验环境
操作平台:Windows 编程软件:Keil C 模拟仿真软件:Proteus8
元器件列表
元件类别电路符号元件名称Microprocessor ICsU180C51MiscellaneousX1/12MHzCRYSTALCapacitorsC1~C2/1nFCAPCapacitorsC3/22uFCAP-ELECResistors PacksRP1/7~100 ΩRESPACK-7ResistorsR1/100 ΩRESOptoelectronicsLED1~LED27SEG-COM-CAT-GRNSwitches&RelaysBUTBUTTON表格 1 元器件清单
实验原理
实验电路原理图如图1所示,图中有如下5个分支点路:由共阴极数码管LED1和LED2、P0口、P2口、上拉电阻RP1以及Vcc组成的输出电路;由按钮开关BUT、P3.7、P3.4和接地点组成的输入电路;由C1、C2、晶振X1、引脚XTAL1、XTAL2与接地点组成的时钟电路;由C3、R1、引脚RST和Vcc组成的上电复位电路;由Vcc和引脚EA组成片内ROM选择电路(简称片选电路)。
图表 1 实验原理图
数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数器到60时清零,并从“00”重新开始,如此周而反复。
软件编程原理:采用T0定时方式1中断法编程,其中1s定时采用20次50ms定时中断的方案实现。程序设计的流程图如图2所示。
图表2 程序流程图
程序源代码
#include
unsigned char count1=0;//中断计数器
unsigned char count2=0;//计数器变量
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //LED显示字符
timer0() interrupt 1{//T0中断函数
count1++;//计数器增1
if(count1==20){count1=0; count2++;
}
if(count2==60) count2=0;//计数器达到 60时清零
P0=table[count2/10];//显示十位数字
P2=table[count2%10]; //显示个位数字
TH0=0x3c; TL0=0xb0;
main(){
TMOD=0x01;//设置T0技术方式为1
TH0=0x3c;//计数初值
TL0=0xb0;
P0=table[count2/10];//显示初值"00"
P2=table[count2%10]
ET0=1;
EA=1;//开启中断
TR0=1;//启动T0
while(1); //循环
实验结果
图表3 数码管初始显示
图表4 数码管经过一个定时周期显示
说明:图3显示的是初始时刻数码管的显示(“00”),图4显示的是数码管在经过一个定时周期60s后显示的值(“59”)。当数码管显示如图4所示时,在下一时刻,数目管将从“00”开始重新显示,如此反复。
总结
通过一个学期的单片机知识的学习和平时实验课的学习,使我对51单片机的原理有了深刻的认识,并对51单片机的应用有了一定的了解和掌握。同时,通过本次设计计数显示器的实验学习,使我对51系列单片机的中断、定时的概念以及有关单片机的并行I/O口有了很好的理解,并学会了与中断和定时相关的编程,不仅如此,在对51系列单片机的C语言编程方面有了更好的提高。但是,在实验过程中,也存在很多的问题等待自己去进一步的学习,比如对模拟仿真软件的使用不够熟练、在定时和中断的编程方面有时不能灵活运用等。
计数显示器c语言程序,单片机计数显示器.doc相关推荐
- 51芯片4*4列阵按键c语言程序,单片机城中社稷.doc
单片机城中社稷 基于单片机的乳粉包装称重控制设计 摘 要 本论文在分析了国内外称重技术发展的基础上,着重对一个用于工业控制且功能较齐全的自动称重系统进行设计.随着自动化和管理现代化的进展,自动在线称重 ...
- 单片机发射红外c语言程序,单片机模拟红外发射源程序IR-send
单片机模拟红外遥控器发射的C语言程序 //********************************************单片机红外发射**************************** ...
- C语言 int 转单精度浮点,单精度浮点数与十六进制转换 C语言程序 单片机也可用...
单精度浮点数与十六进制转换 C语言程序 单片机也可用 #include float Hex_To_Decimal(unsigned char *Byte,int num)//十六进制到浮点数 { // ...
- DSB算法C语言程序,单片机中使用DSB温度传感器C语言程序.doc
单片机中使用DSB温度传感器C语言程序 单片机中使用DS18B20温度传感器C语言程序(参考1) /************************************************** ...
- c语言线性顺序表,C语言程序——线性顺序表.doc
C语言程序--线性顺序表.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...
- c语言程序设计基础的考试题,c语言程序设计基础的考试题.doc
c语言程序设计基础的考试题.doc 程序设计基础(考试题) 读程序,写出程序的执行结果 1.若a是int型变量,且a=5,则下面表达式的值为:____3_______. (a+100)%2+a/2 2 ...
- 0 99的计数器的C语言程序,单片机0~99计数器.doc
单片机0~99计数器 目录 设计任务-------------------- .3 00~~99手动计数器设计程序框图-----------3 00~~99手动计数器的主程序------------- ...
- 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)
原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...
- adc0809 c语言程序,单片机C语言程序设计:ADC0809数模转换与显示
描述 本文分享ADC0809数模转换与显示的单片机C语言程序设计与电路图. ADC0809 数模转换与显示c语言程序 /*名称:ADC0809数模转换与显示 说明:ADC0809采样通道3输入的 模拟 ...
- fm24c16c语言程序,单片机读写24C01~24C16程序
单片机读写24C01~24C16程序,24C02 read / write process 关键字:单片机读写24C01~24C16程序 单片机读写24C01~24C16程序 AT89S52 晶振频率 ...
最新文章
- 关于Github(1)
- Ubuntu在命令行下不能够切换字母的大小写,只能输入大写字母
- Elasticsearch的智能判断:动态添加数据映射
- 工程之道,深度学习推理性能业界最佳优化实践
- 数据库开发——MySQL——基本操作
- 发现Java程序中的Bug
- 前端导出文件,后端返回文件流过大直接干崩溃
- idea部署springboot项目到外部tomcat
- 【转】SharePoint 2013 开发——开发并部署webpart
- 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...
- java根据周数获取日期_java获取日期的周数和所属年份
- c++gdal如何在大图像中截取小图像并获取其图像信息_如何模拟不规则形状并构建几何模型
- Ubuntu 用vsftpd 配置FTP服务器教程详解
- LCD12864资料汇总(HDG12864F详细说明及驱动源码)
- php 调用speex解码库,怎么增加speex解码库
- 如何高效率的学习Web前端,个人经验分享
- fastq文件转化成bam文件
- 分享一个很棒的免费壁纸网站
- 电源硬件设计----升降压变换器(负压输出)基础
- 开正式发票到底谁交税