利用状态机实现矩阵键盘扫描,并将键码值通过七段数码管显示
2024/3/21 19:44:45 3KB 逐行扫描
1
基于KeilMDK开发,完整源代码,供学习和参考。
STM328位数码管动态扫描实验(不用库函数),本人编写的完整源程序,包含整个文件,无闪烁!!
2024/3/13 16:48:14 526KB 数码管 STM32 ARM C语言
1
自己写的stm32秒表程序,计数,最大计数值300s,最小计数单位0.1s,可暂停,加减。
按键功能:key1控制开始及暂停,key2控制加,key3控制减,key4选择位。
对应的io口,PA0-7接数码管,PB5-8接按键,PB12-14接3-8译码器。
不要嫌5分多,我是花了时间的,几乎每个函数都有标注,只要你懂程序,绝对看的懂,你有想法可以在此基础上设置硬件,加强程序。
2024/3/13 2:47:47 3.61MB 秒表 按键控制 stm32
1
采用51单片机,接受ad转换器转换的二进制进行处理显示到数码管上,显示检测电压值
2024/3/12 18:05:11 54KB adc 转换89C51
1
本程序完成以下功能1.基本部分当控制开关启,固定间隔一段时(例如3s)之后,指示灯点亮。
完成一次测试后,将被测试者的反应时间显示在数码管上。
如果指示灯点亮前,被测试者按下键,视为违规应给出警示。
2.2.提高部分(1)(1)(1)当控制开关启,随机间隔一段时(时间不宜过长,例如<=5s)之后,指示灯点亮。
(2)(2)两人比赛谁先按下键,指示谁是获胜者,并显示其反应时间。
2024/3/10 0:55:21 2.9MB EDA Verilog 反应时间
1
proteus仿真4x4行列按键+数码管+LCD1602显示。
2024/3/9 18:39:41 110KB 仿真 1602 行列
1
基于FPGA的电子时钟设计,具有调时、整点报时等功能。
用简单的计数和进位的功能实现、用6位数码管显示。
2024/3/4 12:12:33 287KB FPGA 时钟 Verilo
1
#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
基于STC15W4K58S4单片机的电子万年历(数码管显示)该压缩包包含源码TXT文件源工程文件(KeiluVision4文件)和课程设计报告
2024/3/2 11:19:10 6.19MB stc15
1
该数字时钟实现了调时、年、月、日、时、分、秒、星期的显示功能,无需接译码器,可直接接七段共阴极数码管。
附有全图动态扫描程序代码
2024/2/26 17:25:29 203KB 单片机 数字 万年历 VHDL
1
共 537 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡