硬件设计:采用Proteus进行电路原理图设计与仿真1)单片机选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASHROM,设计时无需外接程序存储器。
2)显示部分:南北向和东西向各采用2个LED数码管计时,对该方向的指示灯的点亮时间进行倒计时,最长计时范围为99秒。
3)键盘部分:设置键、增加键、减少键。
本系统的工作流程:1)系统启动后,系统按程序给定的时间工作,即东西向通行60秒,南北向通行40秒,黄灯亮4秒,工作模式如表1所示。
首先东西向通行,然后南北向通行,如此循环。
2)通行时间的设置:当需要更改主、次干道的通行时间时,可以用设置键、增加键、减少键”进行设置。
第一次按“设置键”时,东西向的绿灯亮,东西向的LED数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和南北向的LED数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间,每按一次键,数码管的显示时间增加1秒或减少1秒,长按键(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。
第二次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和南北向的数码管熄灭,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。
第三次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向绿灯的通行时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向绿灯的通行时间。
第四次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。
第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且东西向先通行,南北向后通行软件设计:采用KeilC开发环境与语言1)软件模块:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:主程序:初始化及键盘监控。
计时程序模块:为定时器的中断服务子程序。
显示程序模块:完成12个发光二极管和4个LED数码管的显示驱动。
键盘扫描程序模块:判断是否有键按下,并求取键号。
键处理程序模块:分别是“设置键”、“增加键”、“减少键”的处理子程序。
1
关于8051系列单片机用bootloader实现IAP的方法做了详细说明,并提供了一个工程模板
2024/1/16 14:20:31 76KB 51单片机 bootloader IAP
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡