51单片机用中断实现流水灯,数码管和点阵同时显示
小白自备笔记···
····
数码管1S左移,6位数码管从999999每一秒钟减一倒着计数,点阵9-0倒计时显示。
#include<reg52.h> //头文件
#include<intrins.h> //库函数头文件
#define uint unsigned int //宏定义
#define uchar unsigned char
#define ulong unsigned long
uchar flag=0; //定义变量
static uint index=0;
sbit LED=P0^0;
sbit ADDR0=P1^0; //位声明
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
uchar code ledchar[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //数码管真值表
uchar ledbuff[7]={0xff,0xff,0xff,0xff,0xff,0xff,0xff};
uchar code image[10][8]={0xFF,0xC3,0xDB,0xDB,0xC3,0xDF,0xC3,0xFF, //90xFF,0xC3,0xDB,0xC3,0xDB,0xDB,0xC3,0xFF,0xFF,0xC3,0xDF,0xEF,0xF7,0xF7,0xF7,0xFF,0xFF,0xC3,0xFB,0xC3,0xDB,0xDB,0xC3,0xFF,0xFF,0xC3,0xFB,0xC3,0xDF,0xDF,0xC3,0xFF,0xEF,0xE7,0xEB,0xED,0x81,0xEF,0xEF,0xFF,0xFF,0xC3,0xDF,0xC3,0xDF,0xDF,0xC3,0xFF,0xFF,0xC3,0xDF,0xDF,0xC3,0xFB,0xC3,0xFF,0xFF,0xF3,0xF7,0xF7,0xF7,0xF7,0xE3,0xFF,0xFF,0xE7,0xDB,0xDB,0xDB,0xDB,0xE7,0xFF};
void main()
{ static uchar j=0;ulong sec=999999;EA=1; //使能总中断ENLED=0; //74HC138的4、5脚低电平有效 TMOD=0x10;TH1=0xFC;TL1=0x67;//定时一毫秒ET1=1;TR1=1;while(1){if(flag==1) //判断一秒定时标志{flag=0; //S秒定时清0标志sec--; //秒定时加1ledbuff[0]=ledchar[sec%10];ledbuff[1]=ledchar[sec/10%10];ledbuff[2]=ledchar[sec/100%10];ledbuff[3]=ledchar[sec/1000%10];ledbuff[4]=ledchar[sec/10000%10];ledbuff[5]=ledchar[sec/100000%10];ledbuff[6]=~(0x01<<j);j++;if(j>=8){j=0;}index++;if(index>=10){index=0;}}} }
void interruptT0() interrupt 3
{static uint cnt=0;static uchar i=0;TH1=0xFC;TL1=0x67;switch(i){case 0 : ADDR3=1; ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=ledbuff[0];break; //数码管刷新case 1 :ADDR3=1; ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=ledbuff[1];break;case 2 :ADDR3=1; ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=ledbuff[2];break;case 3 :ADDR3=1; ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=ledbuff[3];break;case 4 :ADDR3=1; ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=ledbuff[4];break;case 5 :ADDR3=1; ADDR2=1;ADDR1=0;ADDR0=1;i++;P0=ledbuff[5];break; case 6:ADDR3=1; ADDR2=1;ADDR1=1;ADDR0=0;i++;P0=ledbuff[6];break; //led流水刷新case 7 : ADDR3=0; ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=image[index][0];break; //点阵刷新case 8 :ADDR3=0; ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=image[index][1];break;case 9 :ADDR3=0; ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=image[index][2];break;case 10 :ADDR3=0; ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=image[index][3];break;case 11 :ADDR3=0; ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=image[index][4];break;case 12 :ADDR3=0; ADDR2=1;ADDR1=0;ADDR0=1;i++;P0=image[index][5];break; case 13:ADDR3=0; ADDR2=1;ADDR1=1;ADDR0=0;i++;P0=image[index][6];break;case 14:ADDR3=0; ADDR2=1;ADDR1=1;ADDR0=1;i=0;P0=image[index][7];break;default:break;} cnt++;if(cnt>=1000){cnt=0;flag=1;}
}
51单片机用中断实现流水灯,数码管和点阵同时显示相关推荐
- 中断控制流水灯c语言程序,51单片机按键中断控制流水灯
满意答案 levis501523 2018.01.03 采纳率:58% 等级:12 已帮助:8301人 #include #include #define uchar unsigned char ...
- 51单片机-LED模块-来回流水灯
51单片机-LED模块-来回流水灯 1. 视频 哔哩哔哩视频地址: https://www.bilibili.com/video/av89552821 51单片机-LED模块-来回流水灯 2. 文件 ...
- 51单片机 74HC154译码器制作流水灯+Proteus仿真
51单片机 74HC154译码器制作流水灯+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uint unsigned int #d ...
- 51单片机AT24C02写读流水灯实例+Proteus仿真
51单片机AT24C02写读流水灯实例+Proteus仿真 Proteus仿真 这个流水灯的状态是通过读取AT24C02地址中的数值来改变的.(有点废AT24C02) 程序代码 #include &l ...
- 51单片机通过CD4051实现流水灯效果+Proteus仿真
51单片机通过CD4051实现流水灯效果+Proteus仿真 Proteus仿真效果 CD4051 CD4051是一款八选一模拟开关电路,内置3个地址选择端(A0-A2),低有效的使能输入端( E), ...
- 51单片机学习笔记5 流水灯实现及蜂鸣器控制
51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...
- 单片机串口中断控制流水灯c语言,基于单片机AT89C51控制的中断控制流水灯_课程设计报告...
<基于单片机AT89C51控制的中断控制流水灯_课程设计报告>由会员分享,可在线阅读,更多相关<基于单片机AT89C51控制的中断控制流水灯_课程设计报告(25页珍藏版)>请在 ...
- 51单片机C语言led流水灯及数码管实现秒表
51单片机C语言练习题 单片机型号 普中科技的 led练习题 led小灯闪烁 #include<reg52.h> sbit LED = P0^0; void main() {unsigne ...
- 基于51单片机的心形流水灯
心形流水灯套件 1 设计目的 (1)掌握单片机芯片AT89C51的基本功能和使用. (2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用. (3)了解音乐的基本知识. (4)提高数字电子电 ...
最新文章
- J2ME开发心得-数组的使用
- Tkinter图片按钮
- 基于python+opencv的图像目标区域自动提取
- 不当IT民工——技术带来质的飞跃
- 编译原理完整学习笔记(三):词法分析
- 微信emoji表情数据如何添加到json中
- 说明书中电磁兼容部分指南和制造商的声明怎么写?
- 小米手机每次安装应用都需要属于小米账号密码
- 无油螺杆鼓风机-市场现状及未来发展趋势
- 如何将数据存入mysql_怎样将数据存入mysql数据库
- 结构体所占字节数的计算
- ISIS Neighbor Net Type DIS
- 一图看懂| 人工智能知识体系大全
- java本地缓存简介
- iPhone微信浏览器某些元素点击无效
- 获取文件哈希值_图解:什么是哈希?
- 什么是pisa测试_什么是pisa考试?
- docker build过程中出错 no such host
- matlab绿色 不伤眼,蓝光和超清哪个伤眼睛 伤害都很低不用过多担心
- 【汇编】 INT 21H 命令
热门文章
- 如何用计算机跟男神表白,如何向男生表白 跟喜欢的男生表白的话
- 如何快速把整站英文网站翻译成中文网站?
- transforms.Resize()的用法
- ROS-Industrial工业机器人培训课程资料-2019更新-Melodic、Kinetic、Indigo
- fanuc工业机器人系统运行速度设置
- iOS 开发 百度地图 在模拟器上只显示网格!
- 2021年土建方向-岗位技能(质量员)多少分及格及土建方向-岗位技能(质量员)模拟考试题库
- 计算机的基本组成部分
- 全球区块链第26周看点 | G20中方发言人:中国在数字货币、加密资产等领域做得较好...
- 屏幕,保护眼睛的设置