51单片机C语言led流水灯及数码管实现秒表

51单片机C语言练习题

单片机型号

普中科技的
在这里插入图片描述

led练习题

led小灯闪烁

#include<reg52.h>
sbit LED = P0^0;
void main()
{unsigned int i=0;while(1){LED = 1;for(i=0;i<60000;i++);LED = 0;for(i=0;i<60000;i++);}
}

led流水灯

#include<reg52.h>void main()
{unsigned char LED = 0x01;unsigned int i=0;while(1){P0 = LED;LED = LED << 1;//从左向右依次点亮LEDif(LED == 0) //点亮第八盏后,点亮第一盏{LED = 0x01;}for(i=0;i<40000;i++);//延迟}
}

每隔一秒点亮一次 led,led闪烁,定时器实现

  • 配置定时器工作模式
  • 定时器赋初值
  • 启动定时器
  • 判断定时器是否溢出
#include<reg52.h>
sbit LED = P0^0;
void main()
{unsigned char cnt = 0;unsigned int i=0;TMOD = 0x01;TH0 = 0xD8;TL0 = 0xF0;TR0 = 1;LED = 0;while(1){if(TF0 == 1){TF0 = 0;TH0 = 0xD8;TL0 = 0xF0;cnt++;if(cnt == 100){cnt = 0;LED = ~LED;}}}}

数码管练习题

静态数码管依次显示0-F,每隔一秒更换一次

#include<reg52.h>
unsigned char code segCodeTable[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void main()
{unsigned char cnt = 0;unsigned int i=0;TMOD = 0x01;TH0 = 0xD8;TL0 = 0xF0;TR0 = 1;while(1){if(TF0 == 1){TF0 = 0;TH0 = 0xD8;TL0 = 0xF0;cnt++;if(cnt == 100){cnt = 0;P0 = segCodeTable[i];i++;}if(i == 16){i = 0;}}}}

数码管实现秒表

#include<reg52.h>
//共阴极数码管
unsigned char code segCodeTable[16] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79};
unsigned char code posCodeTable[8] = {
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选控制   查表的方法控制
//数码管显示缓冲区,初始时刻为全零
unsigned char LEDBuffer[6] = {0x3f,0x3f,0x3f,0x3f,0x3f,0x3f };
void main()
{	  unsigned int cnt = 0;unsigned long sec = 0;unsigned char i = 0;TMOD = 0x01;TH0 = 0xFC;TL0 = 0x18;TR0 = 1;while(1){if(TF0 == 1){TF0 = 0;TH0 = 0xFC;TL0 = 0x18;cnt++;if(cnt == 1000){cnt = 0;sec++;//每隔一秒刷新一次数码管显示缓冲区LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];LEDBuffer[3] = segCodeTable[sec/1000%10];LEDBuffer[4] = segCodeTable[sec/10000%10];LEDBuffer[5] = segCodeTable[sec/100000];}//每隔1ms输出一次段码与位码P0 = LEDBuffer[i];P1 = posCodeTable[i];i++;if(i == 6){i = 0;}}}}

中断方式实现数码管秒表

#include<reg52.h>
//共阴极数码管
unsigned char code segCodeTable[16] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79};
unsigned char code posCodeTable[8] = {
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选控制   查表的方法控制
//数码管显示缓冲区,初始时刻为全零
unsigned char LEDBuffer[6] = {0x3f,0x3f,0x3f,0x3f,0x3f,0x3f };
unsigned char i = 0;
unsigned char flag1s = 0;unsigned int cnt = 0;
void main()
{	  unsigned long sec = 0;TMOD = 0x01;TH0 = 0xFC;TL0 = 0x18;TR0 = 1;EA = 1;ET0 = 1;while(1){if(flag1s == 1){sec++;flag1s = 0;//每隔一秒刷新一次数码管显示缓冲区LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];LEDBuffer[3] = segCodeTable[sec/1000%10];LEDBuffer[4] = segCodeTable[sec/10000%10];LEDBuffer[5] = segCodeTable[sec/100000];}}}void InterruptTime0() interrupt 1
{TH0 = 0xFC;TL0 = 0x18;cnt++;if(cnt == 1000){cnt = 0;flag1s = 1;}//每隔1ms输出一次段码与位码P0 = LEDBuffer[i];P1 = posCodeTable[i];i++;if(i == 6){i = 0;}
}

数码管高位为零不显示

#include<reg52.h>
//共阴极数码管
unsigned char code segCodeTable[16] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79};
unsigned char code posCodeTable[8] = {
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选控制   查表的方法控制
//数码管显示缓冲区
unsigned char LEDBuffer[8] = {0x3f,0x00,0x00,0x00,
0x00,0x00,0x00,0x00};
unsigned int  cnt = 0;
unsigned char i = 0;
unsigned char flag1s = 0;
unsigned char temp = 0x7f;
void main()
{unsigned long sec = 0;TMOD = 0x01;TH0 = 0xFC;TL0 = 0x18;TR0 = 1;EA =1;ET0 =1;while(1){if(flag1s == 1){flag1s = 0;//刷新数码管显示缓冲区sec++;if(sec>=0&&sec<10){LEDBuffer[0] = segCodeTable[sec%10];}else if(sec>=10&&sec<100)	//sec小于10,不更新数码管高位显示缓冲区{LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];}else if(sec>=100&&sec<1000){LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];}else if(sec>=1000&&sec<10000){LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];LEDBuffer[3] = segCodeTable[sec/1000%10];}else if(sec>=10000&&sec<100000){LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];LEDBuffer[3] = segCodeTable[sec/1000%10];LEDBuffer[4] = segCodeTable[sec/10000%10];}else if(sec>=100000){LEDBuffer[0] = segCodeTable[sec%10];LEDBuffer[1] = segCodeTable[sec/10%10];LEDBuffer[2] = segCodeTable[sec/100%10];LEDBuffer[3] = segCodeTable[sec/1000%10];LEDBuffer[4] = segCodeTable[sec/10000%10];LEDBuffer[5] = segCodeTable[sec/100000];}			}}
}void InterruptTimer0() interrupt 1
{TH0 = 0xFC;TL0 = 0x18;cnt++;if(cnt == 1000){cnt = 0;flag1s = 1;}//每隔一ms输出一次段码和位码P0 = LEDBuffer[i];P1 = posCodeTable[i];i++;if(i == 6){i = 0;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

extjs中元数据_Extjs中Store小总结

http://blog.csdn.net/without0815/article/details/77981701.什么是store&#xff1f;Store类似于一个本地仓库(即数据存储器),包括有 ArrayStore,DirectStore,GroupingStore,JsonStore,XmlStore(都是store的子类)最终主要用于提供给panel去显示.Store由Proxy(数据源)和DataRe…

内聚和耦合(自己的理解)

网上对于内聚和耦合的资料太多&#xff0c;这里结合我的感受和其他人的答案http://blog.csdn.net/zhiquan/article/details/4255161谈谈自己的理解 以下是我对内聚和耦合的理解&#xff08;例子来源于生活&#xff09;。 1.内聚&#xff1a; i.偶然内聚&#xff1a;如果一个模块…

UIButton return(textField textView)

首先设置TextField 或 TextView的 delegate /UITextView - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {if ([text isEqualToString:"\n"]) {NSLog("点击return");return NO;}retur…

(转)交换机攻击方法描述

利用交换机漏洞的攻击方法如下&#xff1a;一、生成树攻击生成树协议(STP)可以防止冗余的交换环境出现回路。要是网络有回路&#xff0c;就会变得拥塞不堪&#xff0c;从而出现广播风暴&#xff0c;引起MAC表不一致&#xff0c;最终使网络崩溃。使用STP的所有交换机都通过网桥协…

数据结构-顺序表(C语言实现)

主函数代码&#xff08;main.c&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include "sqlist.h" int main() {sqlist *list NULL,*list_next NULL;int pos 0;int i, err, value;int arr[10] { 10,20,30,40,50,60,70,80,90,100 };i…

shell的logo含义_Shell(壳牌石油)标志历史

荷兰皇家壳牌集团(Royal Dutch Shell&#xff0c;又译蚬壳)是世界第二大石油公司&#xff0c;总部位于荷兰海牙。荷兰皇家壳牌集团由荷兰皇家石油与英国的壳牌两家公司合并组成。荷兰皇家石油于1890年创立&#xff0c;并获得荷兰女王特别授权&#xff0c;因此被命名为荷兰皇家石…

无用的设计模式之装饰者模式

为什么80%的码农都做不了架构师&#xff1f;>>> 前言 装饰者设计模式本来是很常用的模式&#xff0c;常用到随处可见&#xff0c;jdk的bio设计都是遵循这个模式的&#xff0c;偶然的机会发现&#xff0c;貌似jdk中bio的装饰者模式和设计模式中的装饰者设计模式却有…

winform 程序制作自己的数字签名(续)

在上一篇文章《winform 程序制作自己的数字签名》中我们已经可以得到我们程序定制的数字签名了&#xff0c;但是比较讨厌的是每次编译之后&#xff0c;数字签名需要重新手动添加。 我们需要的是在程序编译时自动添加数字签名。 那实际上vs已经提供了此功能&#xff0c;具体操作…

转-HTC 手机生产日期,产地查询 以及 SN码 IMEI码 查询等问题汇总

问&#xff1a;什么是IMEI码&#xff1f;什么是SN码&#xff1f; 答&#xff1a;IMEI码&#xff0c;国际移动装备辨识码&#xff08;International Mobile Equipment Identity number&#xff0c;IMEI&#xff09;。SN码即Serial Number&#xff0c;产品序列号。 问&#xff1a…

数据结构带头结点单向不循环链表(C语言版)

main.c,负责测试 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<stdlib.h> #include "linklist.h" int main() {LNode* listNULL;int i 0,err 0;datatype a 40,return_value0;datatype arr[] { 20,10,90,100,50,40,20,60,70,80 }…

Django设置TIME_ZONE和LANGUAGE_CODE为中国区域

Django默认的timezone是 TIME_ZONE America/Chicago LANGUAGE_CODE en-us 设置为中国区域&#xff1a; TIME_ZONE Asia/Shanghai LANGUAGE_CODE zh-cn 另外你可以根据情况设置 \Lib\site-packages\django\conf\global_settings.py 里面的时区转载于:https://www.cnblogs.co…

每天10分钟用python学数据分析_用Python做数据分析,Numpy,Pandas,matp

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼用Python做数据分析&#xff0c;Numpy&#xff0c;Pandas&#xff0c;matplotlib是怎么也绕不开的三个包&#xff0c;我最开始学习pandas是看的《利用Python进行数据分析》&#xff0c;看了好几遍&#xff0c;不是从头到尾看了好几…

使用Shell脚本查询服务器硬件信息

1、为了方便查询服务器的硬件信息&#xff0c;将需要查询的内容整理成Shell脚本&#xff0c;输出自己想要的格式。其实就是通过dmidecode命令输出&#xff0c;然后通过sed&#xff0c;awk&#xff0c;cut命令的处理。2、此脚步适用于HP DL系列的服务器&#xff0c;Dell PowerEd…

SQL Server 数据库维护脚本合集[005]-删除数据库所有用户表

--*****************************************************************************-- 作 者: qwu;-- 用 途: 删除数据库所有用户表;-- 版 本: v1.0-- 创建日期: 2011-3-23;-- 用 法: 设置use [数据库名],-- 注 意: !!!!!!!!慎用!!!!!!!!!;-- 修改历史: …

数据结构无头结点单向不循环链表(C语言版)

main.c(负责测试&#xff09; #include <stdlib.h> #include <stdio.h> #include <time.h> #include "nohead.h" int main() {LNode *list NULL;struct score_st data[10],mydata,data1;int i 0;srand((unsigned)time(NULL));//初始化数组for (…

ad network

全称&#xff1a;Advertising network。即“在线广告联盟”。一种介于想出售广告空间的网站与想在网站上刊登广告的广告主之间的平台。比较知名的公司有Google的AdSense、好耶、仁合传媒、传漾Adsame以及ValueClick等 Ad Network的本质真相是什么? 随视传媒COO薛晨女士在11月1…

python123查找指定字符输入m_大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编....

Presentation on theme: "大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编."— Presentation transcript:大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编第五章 字符串与正则…

C#生成带Logo二维码

1.下载ThoughtWorks.QRCode引用并添加在工程中 2.在实现类QRCodeEncoderDemo中引入Dll&#xff0c;添加方法 using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Drawing2D;using System.Linq;using System.Web;using ThoughtWorks.QRC…

【原】基础篇:第一篇,本节主要向大家介绍Ext的最基础的话题

http://www.cnblogs.com/mogen_yin/archive/2009/04/30/1447236.html ExtJS是一个Ajax框架&#xff0c;是一个用javascript写的&#xff0c;用于在客户端创建丰富多彩的web应用程序界面。ExtJS可以用来开发RIA也即富客户端的AJAX应用 ExtJS是一个用javascript写的&#xff0c;主…

linux_base-f10-10_7 linuxulator is not (kld)loaded

# cd linux_base-f10/# make install clean> linux_base-f10-10_7 linuxulator is not (kld)loaded.*** Error code 1 解决办法&#xff1a;kldload linux 再重新执行make install clean命令即可。转载于:https://www.cnblogs.com/seasonsstory/p/3148870.html