上海交通大学FPGA实验,实现自动售货机代码 设计一个简单的自动售饮料机的逻辑电路。它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角钱硬币后机器自动给出一杯饮料。投入两元(两枚一元)硬币后,在给出饮料的同时找出一枚五角的硬币。 实验扩展要求 1、用数码管显示输入的金额,以及要找出的金额。 2、多物价系统。具体要求如下: 两个按钮,表示5角硬币和1元硬币。 可无限投入硬币,数码管动态显示当前金额(带小数)。 3个按钮,代表3种饮料:可口可乐2元,午后红茶3.5元,乌龙茶3元。 每种饮料初始存货各5罐。 当按下某种饮料按钮后,如果投入钱币金额足够,则减去相应的金额,并以数码管显示应找的钱币数目;如果不够,显示饮料价格并闪动,持续2秒,然后仍然显示当前金额;如果饮料数目不够,用数码管显示。当按下退币按钮后,显示应找的钱币数目。
2021-06-05 19:28:52 944KB FPGA 自动售货机 大作业 上海交通大学
1
jquery配合colResizable.js,实现浮动表头,实时拖动表格列,完美不错位,可自定义任意列的宽度。
2021-06-05 13:03:01 10KB table jquery 拖放调整宽度 自定义列宽
1
非原创,侵删非原创,
2021-06-04 13:08:37 6.92MB 非原创
1
原创python版实现代码+详细注解 实现功能: 1.定义二维坐标系原点位于屏幕中心,x轴水平向右为正,y轴铅直向上为正。 以二维坐标系原点为圆心绘制半径为r的圆,将圆的n等分点使用直线彼此连接形成金刚石图案。 2.程序运行界面提供“文件”、“绘图”和“帮助”三个弹出菜单项。“文件”菜单提供“退出”子菜单项,用于退出应用程序;“绘图”菜单提供“金刚石”子菜单项,用于绘制金刚石图案;“帮助”菜单提供“关于”子菜单项,用于说明开发信息。 3.选择“金刚石”子菜单项,输入“等分点个数”和“圆的半径”。 在屏幕客户区中心绘制金刚石图案。
Matlab基于蚁群算法的三维路径规划算法原创-基于蚁群算法的水下潜器三维空间路径规划.rar 论坛中关于蚁群算法的讨论比较少啊,上传一个前面做的基于蚁群算法的三维路径规划算法,呵呵,起个抛砖引玉的作用吧,参考的论文和程序都在上面
2021-06-02 20:04:53 1.41MB matlab
1
1、CAN收发队列 使用内存FIFO缓冲CAN帧,适合大数据量通信;并使用内部软中断处理CAN数据,相当于事件响应,综合应该比查询方式节省不少时间,也应该比OS调度省点时间。Can.C:底层处理,Communi.C:与应用层高相关。 应用层处理流程用函数指针表的方式调用减少代码量及阅读整齐;实现CAN各种错误记录机制。已初步测试,该机制可用。 CAN处理流程: 接收:CAN1_RX0_IRQHandler_Name (void), CAN1_RX1_IRQHandler(void) 接收中断,CAN_QueueWriteQuick()将当前的有效报文压入内存FIFO,压入的数据为整个CAN邮箱数据,所以后续的处理函数可以分辨出完整的数据。 void CAN1_RX0_IRQHandler_Name (void) // CAN1_RX0_IRQHandler_Name { /* FIFO从空状态开始,在接收到第一个有效的报文后,FIFO状态变为挂号_1(pending_1), 硬件相应地把CAN_RFR寄存器的FMP[1:0]设置为’01’(二进制01b)。 软件可以读取FIFO输出邮箱来读出邮箱中的报文,然后通过对CAN_RFR寄存器的RFOM位 设置’1’来释放邮箱,这样FIFO又变为空状态了。如果在释放邮箱的同时, 又收到了一个有效的报文,那么FIFO仍然保留在挂号_1状态,软件可以读取FIFO 输出邮箱来读出新收到的报文。 如果应用程序不释放邮箱,在接收到下一个有效的报文后,FIFO状态变为 挂号_2(pending_2),硬件相应地把FMP[1:0]设置为’10’(二进制10b)。 重复上面的过程,第三个有效的报文把FIFO变为挂号_3状态(FMP[1:0]=11b)。 此时,软件必须对RFOM位设置1来释放邮箱,以便FIFO可以有空间来存放下一个有效的 报文;否则,下一个有效的报文到来时就会导致一个报文的丢失。 */ while (CAN1->RF0R & CAN_RF0R_FMP0) // message pending ? { CAN_QueueWriteQuick(&CanRxQueue;, (T_CanFrame *)&CAN1;->sFIFOMailBox[CAN_FIFO0]); CAN1->RF0R |= CAN_RF0R_RFOM0; // Release FIFO 0 output mailbox #if CAN1_SWI_HANDLE_EN > 0 /* Add by Xsky 2011-06-18 15:48 */ EXTI->SWIER |= CAN1_SWI_EXTI_LINE; /* Add by Xsky 2011-06-18 15:47 */ #endif } } void CAN1_RX1_IRQHandler (void) { while (CAN1->RF1R & CAN_RF1R_FMP1) // message pending ? { CAN_QueueWriteQuick(&CanRxQueue;, (T_CanFrame *)&CAN1;->sFIFOMailBox[CAN_FIFO1]); CAN1->RF1R |= CAN_RF1R_RFOM1; // Release FIFO 1 output mailbox #if CAN1_SWI_HANDLE_EN > 0 /* Add by Xsky 2011-06-18 15:48 */ EXTI->SWIER |= CAN1_SWI_EXTI_LINE; /* Add by Xsky 2011-06-18 15:47 */ #endif } } 接收中断响应后,触发STM32的内部软中断(EXTI->SWIER |= CAN1_SWI_EXTI_LINE;), 实现当CAN硬件中断响应完成后,触发更低优先级的中断去处理内存中的CAN数据队列,如果处理时再发生新的CAN硬件接收中断,则会先响应硬件中断,以减少或不丢失CAN FIFO邮箱数据。处理函数在Communi.C中实现。 发送,CAN_SendFrame(): 发送时如果邮箱有空则直接将数据压入邮箱,否则将数据压入内存发送队列。等待上一次数据发送完成时,在发送中断中提取FI
2021-06-01 16:38:23 1.27MB STM32 CAN UART uCOS
1
最全的51单片机函数库,实现STC12C5A系列大部分硬件的操作函数接口,方便快速应用到自己的项目中。包括Timer定时器、串口、DAC、PWM、delay软硬件延时,串口打印的printf函数等。绝对原创
2021-05-31 19:04:35 172KB 51单片机
1
自己编写的多普勒效应matlab源代码。演示波源前进速度和波传播之间的关系。可以改变波源速度,看到正激波或斜激波
2021-05-31 10:32:41 1KB 原创 课程
1
这是个代码是结合我两篇文章一起的一个完整的代码(自己写的代码原创),提供给一些完全看不懂的小白使用。 友情提示:如果要下载这个代码的读者一定要去看我的数值分析(一)(二),以免白下载没有使用价值。
2021-05-30 19:22:09 51KB 原创 matlab代码
1
这次分享的程序完全是我本人开发,通过易语言实现视频MD5值的一个修改过程,软件小巧精致,功能简单实用,能一键修改原视频MD5值,然后保存到当前程序运行目录,具有很高的学习价值。
2021-05-30 15:29:34 798KB MD5 快手 抖音
1