首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

基于51单片机的投票统计器

后端 36.77KB 9 需要积分: 1
立即下载

资源介绍:

基于51单片机的投票统计器是一个实用且有趣的项目,它可以应用于各种场合,比如会议中的快速投票或课堂上的即时反馈系统。以下是一些关键点,可以快速构建系统: 软件编写: 定时器配置:配置定时器工作模式和中断。 按键检测:编写函数来检测按键是否被按下。 结果显示:编写函数更新显示屏的内容。 测试调试:先单独测试每个部分,然后整体测试。
#include "reg52.h" #include "lcd.h" // 1#投票 sbit ty_1=P3^1; sbit qq_1=P3^0; sbit bty_1=P3^2; // 2#投票 sbit ty_2=P3^3; sbit qq_2=P1^0; sbit bty_2=P1^1; // 3#投票 sbit ty_3=P1^2; sbit qq_3=P1^3; sbit bty_3=P1^4; sbit beep=P1^5; unsigned int ty=0,bty=0,qq=0; //同意/不同/意弃权人数 unsigned int tp_1=0,tp_2=0,tp_3=0; void delay_us(unsigned long us) //延时子程序 us { while(us--); } void lcd_display() { LCD_Write_String(0,1,"TY"); LCD_Write_Char(2,1,ty%10+'0'); LCD_Write_String(4,1,"BTY"); LCD_Write_Char(7,1,bty%10+'0'); LCD_Write_String(9,1,"QQ"); LCD_Write_Char(11,1,qq%10+'0'); } void key() { if(tp_1==0) //1# { if(ty_1==0&&qq_1==1&&bty_1==1) //1#同意 { delay_us(2); if(ty_1==0&&qq_1==1&&bty_1==1) { ty=ty+1; } tp_1=1; } if(ty_1==1&&qq_1==0&&bty_1==1) //1#弃权 { delay_us(2); if(ty_1==1&&qq_1==0&&bty_1==1) { qq=qq+1; } tp_1=1; } if(ty_1==1&&qq_1==1&&bty_1==0) //1#不同意 { delay_us(2); if(ty_1==1&&qq_1==1&&bty_1==0) { bty=bty+1; } tp_1=1; } } if(tp_2==0) //2# { if(ty_2==0&&qq_2==1&&bty_2==1) //1#同意 { delay_us(2); if(ty_2==0&&qq_2==1&&bty_2==1) { ty=ty+1; } tp_2=1; } if(ty_2==1&&qq_2==0&&bty_2==1) //1#弃权 { delay_us(2); if(ty_2==1&&qq_2==0&&bty_2==1) { qq=qq+1; } tp_2=1; } if(ty_2==1&&qq_2==1&&bty_2==0) //1#不同意 { delay_us(2); if(ty_2==1&&qq_2==1&&bty_2==0) { bty=bty+1; } tp_2=1; } } if(tp_3==0) //1# { if(ty_3==0&&qq_3==1&&bty_3==1) //1#同意 { delay_us(2); if(ty_3==0&&qq_3==1&&bty_3==1) { ty=ty+1; } tp_3=1; } if(ty_3==1&&qq_3==0&&bty_3==1) //1#弃权 { delay_us(2); if(ty_3==1&&qq_3==0&&bty_3==1) { qq=qq+1; } tp_3=1; } if(ty_3==1&&qq_3==1&&bty_3==0) //1#不同意 { delay_us(2); if(ty_3==1&&qq_3==1&&bty_3==0) { bty=bty+1; } tp_3=1; } } } void ql() { if(qq_1==0&&bty_1==0) { delay_us(2); if(qq_1==0&&bty_1==0) { ty=bty=qq=tp_1=tp_2=tp_3=0; } while(qq_1==0||bty_1==0); } } void main() { LCD_Init(); //显示器初始化 LCD_Clear();//清屏 LCD_Write_String(0,0,"Voting Statistician"); while(1) { lcd_display(); key(); ql(); beep=0; } }

资源文件列表:

投票统计器.zip 大约有17个文件
  1. lcd.c 1.69KB
  2. lcd.h 641B
  3. Listings/
  4. Listings/lcd.lst 4.04KB
  5. Listings/main.lst 6.52KB
  6. Listings/投票统计.m51 17.22KB
  7. main.c 2.59KB
  8. Objects/
  9. Objects/lcd.obj 7.08KB
  10. Objects/main.obj 8.55KB
  11. Objects/投票统计 13.71KB
  12. Objects/投票统计.build_log.htm 987B
  13. Objects/投票统计.hex 3.21KB
  14. Objects/投票统计.lnp 119B
  15. 投票统计.uvgui.22062 134.4KB
  16. 投票统计.uvopt 5.25KB
  17. 投票统计.uvproj 13.7KB
0评论
提交 加载更多评论
其他资源 基于单片机智能电风扇设计
基于单片机智能电风扇设计
ubuntu20.04使用C++与ONNXRuntime对yolov8目标检测模型进行推理预测(源码)
ubuntu20.04使用C++与ONNXRuntime对yolov8目标检测模型进行推理预测(源码)
Git-BashGit-BashGit-BashGit-BashGit-Bash
Git-BashGit-BashGit-Bash
虚幻引擎中文七千字体包
虚幻引擎中文7k字随便下
基于51单片机的电子时钟
基于51单片机设计一个电子时钟是一个常见的学习项目,可以帮助你了解单片机的基本操作以及如何与外部设备进行交互。 软件实现: 初始化:设置定时器/计数器模式,通常使用定时中断来实现秒的计数。 显示时间:编写函数来更新LCD上的时间显示。 用户输入处理:编写代码来响应按钮按下事件,允许用户设置时间或切换显示模式。 时间计算:使用定时器中断来增加时间值,并且要考虑到进位问题(例如秒到分钟、分钟到小时等)。
3A(BCH)最小系统板
3A(BCH)最小系统板
3D(EF)最小系统板
3D(EF)最小系统板
jquery实现的文本框计数功能
我所在的公司前端比较老,用的jquery,bootstarp这一套技术,当有一天需要实现文本框计数的功能,找了很多资料,都没有很好的,于是自己写了一个,仅依赖jquery,适用于传统项目。