dede网站qq类资源源码网站图片如何做超链接
news/
2025/9/23 12:26:43/
文章来源:
dede网站qq类资源源码,网站图片如何做超链接,什么是seo推广,域名备案中网站可以开通1#xff0e;设计任务
利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表#xff0c;设计的系统实用性强、操作简单#xff0c;实现了智能化、数字化。
本设计采用单片机为主控芯片#xff0c;结合周边电路组成LED彩灯的闪烁控制系统器#xff0c;用来控制红色…1设计任务
利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表设计的系统实用性强、操作简单实现了智能化、数字化。
本设计采用单片机为主控芯片结合周边电路组成LED彩灯的闪烁控制系统器用来控制红色的LED闪烁发光实现LED灯在倒计时结束后闪烁该LED灯控制器可以通过开始按键来控制倒计时系统的开始然后可以通过暂停按键控制倒计时的中止暂停再次按下按键后倒计时继续直到倒计时结束随后红色LED灯闪烁。 2. 设计要求
2.1系统方案论证
根据设计任务分析设计系统的组成给出实现设计任务的几种方案分析比较几种设计方案的优略本着尽量以软件代替硬件同时力求电路简单工作可靠的原则确定总体设计方案。
2.2系统硬件电路设计
根据系统设计方案进行软、硬件的分配软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置硬件结构在设计时要选择合适的元器件硬件电路要简洁、工作可靠需用Proteus绘制整个系统的电路仿真原理图。
2.3软件设计
根据该系统要求的功能进行软件设计简述软件的功能并根据每个模块的功能绘制软件流程图根据流程图编写程序并汇编调试通过列出软件清单软件清单要求加以注释。 #include REGX52.H
#include INTRINS.H
// delay模块
void delay(unsigned int xms)
{unsigned char i, j;while (xms 0, xms--){i 2;j 239;do{while (--j);} while (--i);}
}// END delay模块void nixie(unsigned char location, i)
{switch (location){ // 0是灭case 1:P2_0 1;P2_1 P2_2 P2_3 0;break;case 2:P2_1 1;P2_0 P2_2 P2_3 0;break;case 3:P2_2 1;P2_0 P2_1 P2_3 0;break;case 4:P2_3 1;P2_0 P2_1 P2_2 0;break;}P0 ~nixienum[i];delay(1); //显示一段时间P0 ~0x00; //段码清0消影
}
// END 数码管显示模块// START LED部分
sbit Led 0xB1; // P3_1//LED端口
void Led_Delay500us()
{unsigned char i;_nop_();i 247;while (--i);
}void Led_Time(unsigned int ms)
{unsigned int i;for (i 0; i ms * 2; i){Led !Led;Led_Delay500us();}
}
// END LED部分// START 初始化函数
void init(int i, int j)
{nixie(3, i);nixie(4, j);
}
// END 初始化函数// START 判断按键按下 //由于是模拟软件delay不需要很高这里的可以再调低点
unsigned char key()
{unsigned char KeyNumber 0;if (P1_3 0){delay(10);while (P1_3 0);delay(10);KeyNumber 4;}if (P1_4 0){delay(10);while (P1_4 0);delay(10);KeyNumber 5;}return KeyNumber;
}
// END 判断按键按下//暂停的原理是k4按下然后while卡滞while内按键判断再次按下k4继续
int timeSecond 30; //倒数的秒数
int flag 1; //用于暂停部分第一次按下变0代表触发暂停第二次按下再变1代表当前次暂停结束// START 数码管显示函数
void show()
{if (timeSecond 10){nixie(3, 10);nixie(4, timeSecond);}else{nixie(3, timeSecond / 10); //取二位秒数第一位十位nixie(4, timeSecond % 10); //取二位秒数第二位个位}
}
void display()
{for (timeSecond; timeSecond 0; timeSecond--){int i 0;if (key() 4){flag 0;while (flag 0){if (key() 4)flag 1;show();}}//这里每次show都会延时2毫秒一次nixie一毫秒那show出1秒只要循环500次show就行// show其它部分也消耗时间故再减少循环次数此方法是为了视觉for (i; i 25; i){show();delay(38); //减去show内两次nixie消耗的}}
}
// END 数码管显示函数// START 主函数部分
void main()
{while (1){init(3, 0); //初始化if (key() 5){display();init(3, 0); //结束显示的时间Led_Time(3000); //显示完结到0时3秒LED闪烁timeSecond 30;}}
}
// END 主函数部分 完整代码点开链接私信 免费 获取。
【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912533.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!