- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电源控制器项目开发技术说明
输出电压: 12V
电压输出种类: 持续可调的脉冲波形
脉冲高电平时间:从1毫秒到500毫秒可调
脉冲低电平时间:从1毫秒到500毫秒可调
设定脉冲输出的时间,10秒~3分钟
显示方式:4个0.3寸数码管显示,显示设定的脉冲高低电平的宽度时间,及显示输出的倒计时持续时间,两个LED指示灯用于指示起停状态。
按 键:共有6个按键。修改3个键(包括 + 键 – 键和光标键),设置1个键,启停2个键,启停需要指示灯,两指示灯。
按键说明:第一次按设置键,设置高电平时间,数码管第4位显示“H”
后三个数码管显示设置的值,以毫秒单位。
第二次按设置键,设置低电平时间,数码管第4位显示“L”
后三个数码管显示设置的值,以毫秒单位。
第三次按设置键,设置脉冲持续时间,数码管第4位显示“-“,以秒为单位,时间不能超过3*60=180秒。
设定脉冲输出的时间,10秒~3分钟
设计限定要求:
单片机使用20管脚的单片机,推荐使用stc单片机.数码管使用4各位一组连体共阳数码管,如果口线不够用则使用串转并芯片例如:74hc595等,电路板尺寸为40mm*120mm.
电源入口使用四芯插座,输出使用2芯插座,需要设计串口输出,串口输出用9针串口插座.
键盘显示应留有输出到面板的接口.
程序设计要求:
1:要求程序使用表示整个程序执行的状态变量,依据程序运行不同状态来修改该状态变量,也依据该状态变量来运行不同的程序.使用枚举类型定义状态标志如下:
typedef enum _MACHINE_STATE_ENUM {
MACHINE_STATE_IDLE, //机器空闲状态
INPUT_STATE_HIGH, //输入高电平时间状态,/
INPUT_STATE_LOW, //输入地电平状态
INPUT_STATE_TIME, //输入电平持续时间状态
MACHINE_STATE_START //启动状态 到计时状态
} MACHINE_STATE_ENUM;
MACHINE_STATE_ENUM Machine_State;
本程序有以下几个状态:
1:机器空闲状态MACHINE_STATE_IDLE
表示机器处于空闲状态,pwm没有输出.停止灯亮,启动灯灭.
在pwm输出倒计时时间到0时,或用户按下停止键,程序将机器状态设置为空闲状态.
2:输入高电平状态INPUT_STATE_HIGH
表示机器处于输入高电平状态,该状态是由于用户按下设置键时进入.
3:输入低电平状态INPUT_STATE_ LOW
表示机器处于输入低电平状态,该状态是由于用户按下设置键时进入.
4:输入电平持续时间状态INPUT_STATE_ TIME
表示机器处于输入电平持续时间状态,该状态是由于用户按下设置键时进入.
5:起动状态MACHINE_STATE_START
表示机器处在pwm输出状态,该状态由用户按下启动键时,程序将机器状态设置为启动状态.到持续时间到0或用户按下停止键是系统进入空闲状态.
程序结构设计原则:
1:对于时间性要求不高,但需不断运行的程序放在主程序中.例如键盘扫描程序.
2:对于由主程序中程序引发的程序一般放在主程序中,例如键盘处理程序.
3:对于时间性要求严格的程序放到定时器中断程序中,例如数码管动态扫描程序及pwm程序.
4:硬件设备有几个字节长度的,在内存中应该有对应等长度的缓冲区,例如
1):本案中2个hc595,在程序中应定义2个字节的缓冲区.应写一个把这两个字节内容一次整体送到2个595中程序(以下简称595的驱动程序).其他程序如果要修改这两个595中的某个口线只需将内存中对应位修改后调用595驱动程序.
2):本案中数码管有4个,因此应在内存中设置4个字节的显示缓冲区.由于动态显示有很强时间性因此在定时器中断程序中依次将每个字节的数据送显示.
5:对于有键盘产品输入参数来讲.有几组多字节的参数就应该在内存中设置几组多个字节的缓冲区.在本例中有三组参数 那应该设计3组缓冲区.
且每组都设计一个字节光标位置寄存器,这一点非常重要.要求使用以下定义:
typedef struct _SETUP_KEY_NUM{
uchar DispBuf[4];
uchar Cursor_Num; //光标键
uchar Value_Cursor; //光标所在单元的值
}SETUP_KEY_NUM;
DispBuf[4];为输入参数缓冲区;
Cursor_Num;为光标位置寄存器;
Value_Cursor;光标所在单元的值
SETUP_KEY_NUM Set
您可能关注的文档
- 基于Eclipse的Hadoop应用开发环境的配置.doc
- [电气]基于PLC和组态软件的搅拌站控制系统.doc
- 《电工电子》课堂教学活动设计方案-1.doc
- 【毕业论文】基于单片机的照明控制系统.doc
- 11基于摄像头的自动寻迹智能车控制系统设计.doc
- 304和304L不锈钢,316L和316不锈钢之区别.doc
- ArcIMS初级教程.doc
- Java网络通信技术实现基于CS模式的聊天室.doc
- Linux内核完全剖析—基于0.12内核(前五章).doc
- Origin 7LabTalk编程.doc
- 2025年《水环境治理情况调研报告(5篇)》 .pdf
- 上海A企业管理有限公司员工招聘工作问题及优化建议9300字.pdf
- 2025年《散装石油、液体化工产品港口储存通则 .pdf
- 2025年南充文化旅游职业学院高职单招职业技能测验历年参考题库频考版含答案解析.docx
- 电商用户行为数据报告.pptx
- 2025年《智能制造技术概论》考试复习题库(含答案) .pdf
- 2025年《针车安全生产管理制度》 .pdf
- 2025年《道路旅客运输企业安全管理规范》 .pdf
- 2025年南通师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年《计算机操作系统》课件x .pdf
文档评论(0)