#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLED_DATP0sbitLED_SEG0=P2^7;sbitLED_SEG1=P2^6;sbitLED_SEG2=P2^5;sbitLED_SEG3=P2^4;#defineTIME_CYLC100//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100#definePLUS_PER10//码盘的齿数,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈#defineK1.65//校准系数unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchardataDisbuf[4];//显示缓冲区uintTcounter=0;//时间计数器bitFlag_Fresh=0;//刷新标志bitFlag_clac=0;//计算转速标志bitFlag_Err=0;//超量程标志voidDisplayFresh();//在数码管上显示一个四位数voidClacSpeed();//计算转速,并把结果放入数码管缓冲区voidinit_timer();//初始化定时器T0\T1voidDelay(uintms);//延时函数voidit_timer0()interrupt1/*interruptaddressis0x000b*/{TF0=0;//定时器T0用于数码管的动态刷新TH0=0xC0;TL0=0x00;Flag_Fresh=1;Tcounter++;if(Tcounter>TIME_CYLC){Flag_clac=1;//周期到,该重新计算转速了}}voidit_timer1()interrupt3/*interruptaddressis0x001b*/{TF1=0;//定时器T1用于单位时间内收到的脉冲数//要速度不是很快,T1永远不会益处Flag_Err=1;//如果速度很高,我们应考虑另外一种测速方法:T测速法}voidmain(void){Disbuf[0]=0;//开机时,初始化为0000Disbuf[1]=0;Disbuf[2]=0;Disbuf[3]=0;init_timer();while(1){if(Flag_Fresh){Flag_Fresh=0;DisplayFresh();//定时刷新数码管显示}if(Flag_clac){Flag_clac=0;ClacSpeed();//计算转速,并把结果放入数码管缓冲区Tcounter=0;//周期定时清零TH1=TL1=0x00;//脉冲计数清零}if(Flag_Err)//超量程处理{Disbuf[0]=0x9e;//开机时,初始化为0000Disbuf[1]=0x9e;Disbuf[2]=0x9e;Disbuf[3]=0x9e;while(1){DisplayFresh();//不再测速等待复位i}}}}//在数码管上显示一个四位数voidDisplayFresh(){P2|=0xF0;LED_SEG0=0;LED_DAT=table[Disbuf[0]];Delay(1);P2|=0xF0;LED_SEG1=0;LED_DAT=table[Disbuf[1]];Delay(1);P2|=0xF0;LED_SEG2=0;LED_DAT=table[Disbuf[2]];Delay(1);P2|=0xF0;LED_SEG3=0;LED_DAT=table[Disbuf[3]];Delay(1);P2|=0xF0;}//计算转速,并
2024/3/2 19:19:54 400KB 光电传感器、测速、protus、pcb
1
89C51/52单片机头文件内容详解sfrP0=0x80;//P0口sfrP1=0x90;//P1口sfrP2=0xA0;//P2口sfrP3=0xB0;//P3口sfrPSW=0xD0;//程序状态字,具体位意义见位定义sfrACC=0xE0;//累加器,程序员最常用的sfrB=0xF0;//寄存器,主要用于乘除sfrSP=0x81;//堆栈指针,初始化为07;
先加1后压栈,先出栈再减1,sfrDPL=0x82;sfrDPH=0x83;//数据指针,用途大sfrPCON=0x87;//电源控制sfrTCON=0x88;//Timer/Counter控制sfrTMOD=0x89;//Timer/Counter方式控制sfrTL0=0x8A;sfrTL1=0x8B;//sfrTH0=0x8C;//存着当前的计数值sfrTH1=0x8D;//我就想不明白,当时设计的时候,为什么不把TH0,TL0放在连续的地址!sfrIE=0xA8;//好东西,中断控制sfrIP=0xB8;//中断优先级控制,没有设计过要求时间严格的系统,所以至今没有用过sfrSCON=0x98;//哇,熟悉,串口控制寄存器sfrSBUF=0x99;//哇,更熟悉,串口缓冲寄存器/*BITRegister*//*PSW*/sbitCY=0xD7;//进位或借位,有就是1,没有就是0sbitAC=0xD6;//辅助进借位,(麻烦b)sbitF0=0xD5;//没有具体用途,可以由用户决定
2024/3/2 6:23:53 90KB 头文件详解
1
用STM8S003最小系统的PC3、PC4引脚模拟串口接收发送,接收数据用中断实现,通道检测接收引脚下降沿来开始接收数据,避免了用查询方式接收时漏掉数据的情况。
2024/2/29 9:51:17 50KB STM8 模拟 串口 中断
1
单片机中断系统设计与调试
2024/2/27 1:40:56 2.88MB 中断系统 微机原理 汇编 单片机
1
前言本手册描述TMS320C28x32位定点数字信号处理器的中央处理单元及其汇编语言,这些描述适用于以此CPU为核心的那些数字信号处理器,主要内容安排如下:第一章体系结构概览本章主要介绍TMS320C28x系列DSP的T320C2800核,包括存储器映射,存储器与核及片内外围间的借口第二章中央处理单元(CPU)本章介绍CPU的体系结构、寄存器及基本功能。
包括CPU中重要寄存器和状态寄存器ST0和ST1的.标志、控制位的详细描述。
第三章中断与复位本章主要介绍中断及CPU的中断处理,解释复位对CPU的影响,讨论CPU中断服务优先级机制所能完成的自动上下文保护等问题。
.第四章流水线本章讨论指令流水线的状态与操作,使读者初步了解利用保护流水线延迟的方式来提高应用程序效率方法。
第五章寻址方式本章主要介绍利用汇编语言指令访问寄存器、存储器的模式,包括操作码中的有关寻址方式的编码信息。
.第六章汇编语言指令本章提供指令系统的汇总及其详细描述。
部分指令提供了实例。
本章还包括奇地址32位访问的对齐问题。
第七章仿真功能本章主要介绍TMS320C28x的仿真特性TMS320C28x的仿真特性仅需个JTAG口附加两个仿真引脚。
.附录寄存器快速参考
2024/2/26 13:43:53 3.57MB TMS320C28X
1
代码是我从我们的工程文件中截取的一部分包括了stm32F407所有的6个串口的DMA空闲中断的配置函数以及中断函数。
使用者需要自行添加对应的处理函数代码主要是用于多个串口数据的处理,相比较于接受非空中断的形式CPU的性能发挥的会更好!
2024/2/24 18:31:30 489KB stm32f 串口 dma 不定长数据
1
基于51单片机的电器定时开关C程序,程序通过外部中断和计时器,实现了电器定时开关的功能,程序很简单,可以用于初学者学习51单片机
2024/2/20 4:45:29 27KB 51单片机 C语言
1
水中测距超声波换能器PCB文件包括变压器升压,带通滤波,对数放大,支持AD模式采集回波信号,支持定时器捕获/外部中断方式采集回波信号,给有需要的朋友!
2024/2/15 12:11:41 921KB 水中测距
1
高精密气压、高度传感器:直接读取压力值,高度值,温度值供电电压:1.8V~3.6V扩展压力量程:300mbar~1200mbar直接读数,补偿:气压:20位有效测量位(帕)高度:20位有效测量位(米)温度:20位有效测量位(摄氏度)可编程事件中断及输出选择高分辨率:10cm待机电功耗:<0.1uA工作温度:-40~+85℃高速I²C接口
2024/2/10 13:49:08 1009KB 压力传感器 高精度
1
南京邮电大学操作系统期末试卷及复习提纲,里面还有会考到的计算题及一些定义;
1、作业调度算法(作业平均周转时间和带权周转时间)2、请求分页页面置换算法(缺页中断次数和缺页中断率)3、请求分页地址转换过程及内存访问时间(TLB)4、移臂调度算法(移动臂移动的顺序、移动的总量)5、文件多级索引结构(文件最大长度、给定字节偏移量如何寻址)
2024/2/9 6:32:08 3.74MB 南京邮电大学 期末复习
1
共 526 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡