wordpress显示的是文件目录结构/优化推广网站淄博
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
#define NixieTubeSegmentCode P0//自定义数码管段码为单片机P0组引脚
#define NixieTubeBitCode P2//自定义数码管位码为单片机P2组引脚
sbit LED P1^0;//位定义LED灯为单片机P1.0脚
uchar Code NixieTubeBitCodeArray = [0xfe,0xfd,0xfb,0xf7];//定义数码管位码数组变量
uchar NixieTubeDisplayDataArray[0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00];//定义数码管显示0~F数据及符号“—”及熄灭数组变量
uchar NixieTubeCacheDataArray[] = [16,16,16,16];//定义数码管缓存数据数组变量
//uchar NixieTubeBootTimerFlag = 1;//定义数码管开机时间标志位变量
uint KeyPressNumber;//声明按键按下数值变量
//uint NixieTubeBootTimer = 0;//定义数码管开机时间变量
uint Timer0TimeCount;//声明定时器0定时计数变量
//void NixieTubeBootDisplay();//数码管开机显示函数
void NixieTubeDisplayDataSplit();//数码管显示数据分解函数
void NixieTubeDisplayData();//数码管显示数据函数
void Timer0Init(void);//定时器0初始化函数
void Timer1Init(void);//定时器1初始化函数 void main(void)//主函数
{Timer0Init();//定时器0初始化函数 Timer1Init();//定时器1初始化函数 //NixieTubeBootDisplay();//数码管开机显示函数while(1)//主循环{NixieTubeDisplayDataSplit();//数码管显示数据分解函数}}/*****void NixieTubeBootDisplay();//数码管开机显示函数{do{if(NixieTubeBootTimer = 1000 )//如果数码管开机时间等于1sLED = ~ LED;//LED灯亮灭更新}while(NixieTubeBootTimer < 5000);//当数码管开机时间小于5sNixieTubeBootTimerFlag = 0;//数码管开机时间标志位清0LED = 1;//LED灯熄灭}*****/void NixieTubeDisplayDataSplit()//数码管显示数据分解函数{NixieTubeCacheDataArray[0] = KeyPressNumber / 1000;//数码管千位数据显示NixieTubeCacheDataArray[1] = KeyPressNumber / 100 % 10;//数码管百位数据显示NixieTubeCacheDataArray[2] = KeyPressNumber / 10 % 10;//数码管十位数据显示NixieTubeCacheDataArray[3] = KeyPressNumber % 10;//数码管个位数据显示}void NixieTubeDisplayData()//数码管显示数据函数 { static uchar i = 0;//定义静态数码管位变化变量switch(i)//数码管位变化筛选{case 0 ://数码管千位显示NixieTubeSegmentCode = 0x00;//数码管段码消影NixieTubeSegmentCode = NixieTubeDisplayDataArray[NixieTubeCacheDataArray[0]];//数码管千位的段码显示NixieTubeBitCode = NixieTubeBitCodeArray[0];//数码管千位码显示i++;//数码管位变化自加1break;//跳出case 1 ://数码管百位显示NixieTubeSegmentCode = 0x00;//数码管段码消影NixieTubeSegmentCode = NixieTubeDisplayDataArray[NixieTubeCacheDataArray[1]];//数码管百位的段码显示NixieTubeBitCode = NixieTubeBitCodeArray[1];//数码管百位码显示i++;//数码管位变化自加1break;//跳出 case 2 ://数码管十位显示NixieTubeSegmentCode = 0x00;//数码管段码消影NixieTubeSegmentCode = NixieTubeDisplayDataArray[NixieTubeCacheDataArray[2]];//数码管十位的段码显示NixieTubeBitCode = NixieTubeBitCodeArray[2];//数码管十位码显示i++;//数码管位变化自加1break;//跳出case 3 ://数码管个位显示NixieTubeSegmentCode = 0x00;//数码管段码消影NixieTubeSegmentCode = NixieTubeDisplayDataArray[NixieTubeCacheDataArray[3]];//数码管个位的段码显示NixieTubeBitCode = NixieTubeBitCodeArray[3];//数码管个位码显示i = 0;//数码管位变化清0break;//跳出default:break;//跳出}}/*****关于8051系列单片机定时器初值(定时计数初值)计算的知识点*****//****时钟周期(又称振荡周期):单片机晶振频率的倒数 例:单片机晶振频率12MHz 则时钟周期=[1/(12*10^6)Hz]s=0.000000083s=0.000083ms=0.083us机器周期:单片机执行一条指令过程中需要完成一个基本操作(如:取指、译码、执行等基本操作)所需的时间 8051系列单片机的一个机器周期由6个S周期(状态周期)组成 一个时钟周期定义为一个节拍(用P表示) 二个节拍定义为一个状态周期(用S表示) 那么8051单片机的机器周期由6个状态周期组成 也就是说一个机器周期=6个状态周期=12个时钟周期=[12x[1/(12*10^6)Hz]s]s=0.000001s=0.001ms=1us指令周期:单片机取出一条指令且执行完这条指令所需的时间以上三者间的关系:指令周期>机器周期>时钟周期8051系列单片机定时器初值(定时计数初值)计算步骤如下(以单片机晶振频率为12MHz 定时器0工作模式为16位定时模式1 需要定时1ms来计算):1、一个机器周期=12个时钟周期=12乘以单片机晶振频率的倒数=12*[1/(12*10^6)Hz]s=0.000001s=0.001ms=1us2、定时时间=定时计数*一个机器周期 1ms=定时计数*1us 定时计数=1ms/1us=1000us/1us=1000次3、定时器初值(定时计数初值)=2^n-定时计数 n为几位定时器 此处n=16 则定时器初值(定时计数初值)=2^16-1000=65536-1000=64536 把64536转化成十六进制 拆开成高八位和低八位 高八位放TH0=0xfc或(65536-64536)/256 低八位放TL0=0x18或(65536-64536)%2564、综合公式:定时器初值(定时计数初值)=2^n-(晶振频率/几分频/定时频率) n为几位定时器 该公式常用于脉冲宽度调制中运算 例如:利用8051系列单片机晶振频率为12MHz的定时器0的16位定时模式1来产生1KHz方波脉冲 由此可知:定时时间=1/定时频率=1/1000Hz=0.001s=1ms=1000us 进而可得:定时器初值(定时计数初值)=2^n-(晶振频率/几分频/定时频率)=2^16-(12MHz/12/1KHz)=2^16-(12*10^6)Hz/12/1000Hz)=65536-1000=64536 把64536转化成十六进制 拆开成高八位和低八位 高八位放TH0=0xfc或(65536-64536)/256或Value >> 8 低八位放TL0=0x18或(65536-64536)%256或=Value 5、TH0 = Value >> 8;TL0 = Value;该两句代码解释如下:(1)、TH0 = Value >> 8相当于TH0 = (65536-10000)/256=55536/256=216.9375 分析:65536-10000=55536转化成二进制为11011000 11110000 55536/256=216.9375转化成二进制为11011000 由此可看出Value为(65536-10000)=55536的二进制数11011000 11110000右移8位就可以得到55536/256=216.9375的二进制数11011000(2)、TL0 = Value相当于TL0 = (65536-10000)%256=55536%256=240 分析:65536-10000=55536转化成二进制为11011000 11110000 55536%256=240转化成二进制为11110000 由此可看出Value为(65536-10000)=55536的二进制数11011000 11110000取低8位就可以得到55536%256=240的二进制数11110000****/void Timer0Init(void)//定时器0定时1ms初始化函数 晶振为12MHz{TMOD &= 0xf0;//设定定时器/计数器工作模式清0TMOD |= 0x01;//设定定时器/计数器为定时器 工作模式为16位定时器0模式1TH0 = 0xfc;//设定定时器0高8位初值 TL0 = 0x18;//设定定时器0低8位初值TF0 = 0;//定时器0溢出中断标志位清0ET0 = 1;//打开定时器中断开关EA = 1;//打开定时器中断总开关TR0 = 1//打开定时器0开关} void Timer1Init(void)//定时器1计数初始化函数 晶振为12MHz{TMOD &= 0x0f;//设定定时器/计数器工作模式清0TMOD |= 0x50;//设定定时器/计数器为计数器 工作模式为16位计数器1模式1TH1 = 0;//设定定时器1计数高8位初值TL1 = 0;//设定定时器1计数低8位初值TF1 = 0;//定时器1溢出中断标志位清0ET1 = 1;//打开定时器1中断开关EA = 1;//打开定时器中断总开关TR1 = 1//打开定时器1开关} void Timer0(void) interrupt 1//定时器0定时1ms中断函数 晶振为12MHz{TR0 = 0;//关定时器0开关Timer0TimeCount++;//定时器0定时计数自加if(Timer0TimeCount >= 1000)//1s时间到{TR1 = 0;//关闭定时器1开关Timer0TimeCount = 0;//定时器0定时计数清0KeyPressNumber = TH1 * 256 + TL1;//把单片机定时器1引脚P3.5产生的脉冲总数赋给按键按下数值变量TH1 = 0;//定时器1计数高8位清0TL1 = 0;//定时器1计数低8位清0TR1 = 1;//打开定时器1开关}/*****if(NixieTubeBootTimerFlag == 1)//数码管开机时间标志位置1{NixieTubeBootTimer++;//数码管开机时间自加}*****/NixieTubeDisplayData();//数码管显示数据函数TH0 = 0xfc;//设定定时器0高8位初值TL0 = 0x18;//设定定时器0低8位初值TR0 = 1;//开定时器0开关}
相关文章:

基于STC系列单片机实现定时器扫描数码管显示定时器/计数器产生频率的功能
#define uchar unsigned char//自定义无符号字符型为uchar #define uint unsigned int//自定义无符号整数型为uint #define NixieTubeSegmentCode P0//自定义数码管段码为单片机P0组引脚 #define NixieTubeBitCode P2//自定义数码管位码为单片机P2组引脚 sbit LED P1^0;//位定义…...

Linux环境开发工具yum、makefile的使用 【Linux】
文章目录 Linux软件包管理器 - yumLinux下安装软件的方式yum查找软件包如何实现本地机器和云服务器之间的文件互传卸载软件Linux编译器 - gcc/g 程序的翻译过程1.预编译(预处理)2.编译(生成汇编)3.汇编(生成机器可识别…...

第六章(6):Python中的函数—闭包和装饰器
1.闭包 在Python中,闭包是指函数与其相关的自由变量的一个整体。当一个函数返回了一个内部函数时,这个内部函数可以访问其定义所在的外部函数中的变量,即使这个外部函数已经返回了。这种特性就叫做闭包。 代码示意: def funca():x = 250def funcb():print(我仍然可以访问…...

Linux--安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学
一,操作系统介绍 1.1.什么是操作系统 操作系统(Operating System,简称OS)是一种系统软件,它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源,为应用程序提供接口和服务,并协调…...

基于SSM的个性化美食推荐系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

Django 全局配置 settings 详解
文章目录 1 概述1.1 Django 目录结构 2 常用配置:settings.py2.1 注册 APP:INSTALLED_APPS2.2 模板路径:TEMPLATES2.3 静态文件:STATICFILES_DIRS2.4 数据库:DATABASES2.5 允许访问的主机:ALLOWED_HOSTS 1 …...

uniapp接口请求api封装,规范化调用
封装规范和vue中的差不多,都是统一封装成一个request对象,然后在api.js里面调用。 先创建一个utils文件夹,然后里面创建一个request.js,代码如下: export const baseURL 基础url地址const request (options) > …...

色彩校正及OpenCV mcc模块介绍
一、术语 1.光:是电磁波,可见光是可被人眼感知的电磁波。可见光大约在400-700nm波段。光子携带的能量与波长成反比,400nm--700nm之间的单色光的颜色从紫色渐变成红色。 2.光谱:除了太阳光源外,LED灯、白炽灯等各种照明…...

2023mathorcup大数据数学建模竞赛A题坑洼道路识别67页完整高质量原创论文
大家好,从昨天肝到现在,终于完成了本次mathorcup大数据数学建模竞赛A题基于计算机视觉的坑洼道路检测和识别的完整论文了。 给大家看一下目录吧: 摘 要: 10 一、问题重述 12 二.问题分析 13 2.1问题一 13 2.2问题…...

【k8s】5、资源管理命令-声明式
目录 一、 yaml和json介绍 1、yuml语言介绍 2、k8s支持的文件格式 3、yaml和json的主要区别 二、声明式对象管理 1、命令式对象配置 2、声明式对象配置 3、声明式对象管理命令介绍 三、编写资源配置清单 1、 编写yaml文件 2、 启动并查看资源 3、创建service服务对外…...

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】
信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】 课本里章节里所有蓝色字体的思维导图...

【Flutter】Flutter 中的图片管理 图片优化的最佳实践
【Flutter】Flutter 中的图片管理 图片优化的最佳实践 文章目录 一、前言二、图片资源的重要性1. 对于项目复杂性的影响2. 性能和资源优化3. 国际化和多平台支持4. UI/UX 的角度看图片管理5. 图片资源与应用安全三、Flutter 中的图片资源分类1. Asset 图片2. 网络图片3. 本地文…...

dash--项目的前端展示简单基础
1.前置工作 创建虚拟环境: sudo apt-get install python3-venv # 安装 python3 -m venv venv # 在本目录下创建venv虚拟环境(也是一个文件夹。如果用不到这个虚拟环境以后就rm -rf venv) source venv/bin/activate # 激活虚拟环境临时使用清华…...

LeetCode 面试题 16.06. 最小差
文章目录 一、题目二、C# 题解 一、题目 给定两个整数数组 a 和 b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出&…...

css-表格样式
滑动表格 外层嵌套一个盒子设置固定大小,并添加overflow:hidden auto只有y轴滑动,隐藏x轴滑动 表头固定不滑动可以添加position:sticky;top:0 <div style"width:878px;height:685px;overflow:hidden auto" class"tableDiv">…...

Linux对网络通信的实现
一、NIO为什么很少注册OP_WRITE事件 1、OP_WRITE触发条件:当操作系统写缓冲区有空闲时就绪。一般情况下写缓冲区都有空闲空间,小块数据直接写入即可,没必要注册该操作类型,否则该条件不断就绪浪费cpu;但如果是写密集型…...

【开源】基于SpringBoot的车险自助理赔系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 车辆档案模块2.4 车辆理赔模块2.5 理赔照片模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 车辆表3.2.3 理赔表3.2.4 理赔照片表 四、系统展示五、核心代码5.1 查询车…...

减少磁盘读/写中延迟时间的方法(交替编号,错位命名)
目录 1.延迟时间的优化空间2.交替编号3.磁盘地址结构的设计1.若物理地址结构是(盘面号,柱面号,扇区号)2.若物理地址结构是(柱面号,盘面号,扇区号) 4.错位命名 关于磁盘延迟时间的概念请看博主的…...

Perl爬虫程序
以下是一个使用Perl爬虫程序,用于爬取图像。每行代码的中文解释如下: #!/usr/bin/perl use strict; use warnings; use Mojo::UserAgent; use JSON; # 创建一个Mojo::UserAgent实例 my $ua Mojo::UserAgent->new; # 使用获取代理 my $prox…...

UE5使用Dash插件实现程序化地形场景制作
目录 0 dash下载后激活 1 初步使用 2 导入bridge的资产路径 3 练习成果 4 参考链接 0 dash下载后激活 1 初步使用 Dash插件点击蓝色的A,可以使用。 通过输入不同提示命令,来激活不同的功能。 2 导入bridge的资产路径 这里需要注意是UAsserts…...

23种设计模式(10)——门面模式
门面模式(Facade Pattern)又叫作外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型设计模式。 其实,在日常编码工作中,我们都在有…...

磨人的Ts
const visibleData reactive<{ [key: number]: boolean }>({});这啥意思 这段代码的意思是创建了一个响应式对象visibleData,它是一个包含键为数字、值为布尔值的对象。 reactive函数是Vue 3 Composition API中的一个函数,它可以将一个普通对象…...

一个基于Excel模板快速生成Excel文档的小工具
介绍 DocumentGenerator是一个Excel快速生成工具,目标以后还能实现Word、pdf等的文件的生成。该程序独立运行,可通过HTTP接口调用其生成接口。 典型使用场景为如下: 使用者编写模板文件使用者准备模板文件的填充JSON数据内容使用者通过网络…...

服务器动态/静态/住宅/原生IP都是什么意思
在互联网的世界中,我们经常会听到关于IP地址的各种说法,比如服务器动态IP、静态IP、住宅IP和原生IP。那么这些术语究竟代表着什么意思呢?让我们一起来了解一下。 动态IP 动态IP(Dynamic IP)是指互联网服务提供商(ISP)在每次用户上网时,…...

缓解大模型幻觉问题的解决方案
本文记录大模型幻觉问题的相关内容。 参考:Mitigating LLM Hallucinations: a multifaceted approach 地址:https://amatriain.net/blog/hallucinations (图:解决大模型幻觉的不同方式) 什么是幻觉? 幻觉…...

Python装饰器进阶:深入理解与最佳实践
1、什么是装饰器 https://docs.python.org/zh-cn/3.7/glossary.html#term-decorator 官网介绍的很简单,返回值为另一个函数的函数,通常使用 wrapper 语法形式来进行函数变换。装饰器就是闭包的应用,是用来**装饰(修改或增强&…...

数据库数据恢复—Oracle数据库报错ORA-01110错误的数据恢复案例
Oracle数据库故障: 北京某公司一台运行oracle数据库的服务器,机房意外断电导致该服务器重启,重启后发现oracle数据库报错。该Oracle数据库没有备份。 Oracle数据库数据恢复过程: 1、北亚企安数据恢复工程师检查该oracle数据库的数…...

如何通过adb控制安卓手机wifi
一、准备工作 1、先用USB数据线 将手机和电脑连接在一起 1) 数据线连接手机和电脑,选择“传输文件”的连接方式; 2) 在手机上,打开“开发者选项”、“USB调试”; 2、在电脑上安装adb工具,参考…...

VR全景应用广泛体现在哪里?有何优势?
VR全景作为一种新型营销方式,正在逐渐走进人们的视线,它区别于以往单一角度的照片和视频,VR全景制作显得更加直观、更加真实、更加生动。VR全景通过VR技术将所拍摄的图片变成720度可观看的场景模式,把产品的特色以及魅力整体呈现展…...

【深度学习】Python使用指定gpu运行代码
命令行指定显卡GPU运行python脚本 在大型机构分配的服务器集群中,需要使用GPU的程序默认都会在第一张卡上进行,如果第一张卡倍别人占用或者显存不够的情况下,程序就会报错说没有显存容量,所以能够合理地利用GPU资源能帮助你更快更…...