1.用Python做的整点整点整蛊小程序——整点阴间的东西
2.51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
3.vhdl 实现时钟整点报时功能
4.c编程题+有多少个整点oj?
用Python做的整蛊小程序——整点阴间的东西
欢迎来到整蛊达人的小天地,让我们一起释放生活中的抢购抢购小确幸,让沉闷的源码源码用日常变得趣味横生!Python,整点整点这个强大的抢购抢购编程语言,不仅能编写实用的源码源码用668源码会员多少程序,还能成为我们的整点整点整蛊小能手。整蛊小游戏一:思维黑洞
想象一下,抢购抢购编写一个无限循环的源码源码用猜谜游戏,while True:朋友输入他们的整点整点猜测,print("猜错喽"),抢购抢购永远的源码源码用谜底,让对方永远猜不透你的整点整点心思。这小小的抢购抢购恶作剧,是源码源码用不是让你的朋友们欲罢不能呢?整蛊小游戏二:弹窗大乱斗
用Tkinter库编写一个死命弹窗的程序,import tkinter.messagebox,让对方的电脑屏幕上不断出现惊悚的错误提示,如果对方对电脑不太熟悉,那就更显得刺激了。整蛊小游戏三:学习强迫症
想让朋友爱上学习?webbrowser.open('www.csdn.net'),h5网站源码这个程序会不断打开CSDN网站,不过请注意,这可能会让电脑负荷过大哦。动感弹窗狂欢
这个程序堪称动感十足,它随机弹出窗口,import threading和random让你的整蛊更加随性,效果如图所示,每次启动都是全新的惊喜。终极整蛊:反杀大法
我们的压轴之作,结合了创新与策略,import os,通过交互式的功能列表,让朋友选择,无论是预约商品的幻象还是秒杀的落空,最后的关卡是直接关机,os.system('shutdown -r -t '),但请谨慎使用,这可是最后的杀手锏。 以上就是mes系统源码本期的整蛊Python小游戏,每一款都能带来不一样的乐趣。当然,乐趣的边界在于尊重,不要忘记在整蛊的同时保持友谊。如果你喜欢这些创意,记得分享给你的朋友们,让整蛊的乐趣传递开来。如果你需要完整的源代码,只需私信小编,或者点击下方链接,免费获取你的整蛊工具箱。 最后,别忘了,生活中的小惊喜,往往来自意想不到的角落,让我们用Python的魔力,一起创造更多欢笑与回忆吧!单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)
本设计旨在构建一个基于单片机的电子钟,通过proteus仿真技术实现。微擎源码下载设计包含以下功能:
1. 开机控制显示按键,时/分切换按键,加1按键。
2. 每到整点,蜂鸣器会发出提示音。
3. 通过六位一体数码管显示时、分、秒,开机时显示为::。
设计使用MHz频率的单片机。硬件电路图由图纸绘制,程序在keil 4/keil 5中编写,并在proteus上进行仿真。设计遵循S编号。
单片机型号(如ATC或STCC)虽不同,但内核兼容,引脚功能一致,程序编写通用。替换芯片时,音乐网源码仅需调整兼容型号。
设计资料包含:proteus仿真图、程序源代码、讲解视频、开题报告、原理图、功能要求、元器件清单、设计报告、软硬件流程框图等。
仿真步骤:启动仿真,选择hex文件路径,开始仿真。按下开机显示按键,数码管显示::。进入设置模式调整时、分、秒。
Proteus仿真与实物作品区别:运行环境、调试方式、电路连接方式、运行速度、功能实现。
设计资料集包括:仿真、程序、开题报告、原理图、功能要求、元器件清单、设计报告、软硬件流程框图等。
常见问题及解决方法包括:仿真图、程序源码、开题报告、原理图、功能要求、元器件清单、设计报告、软硬件流程框图、讲解视频等。
附:Altium Designer、KEIL、Proteus软件资料,单片机学习资源,答辩技巧,设计报告描述。
更多资源请通过下方链接获取。
关注公众号“嘉盛单片机”,获得更多 STM单片机课程毕业设计信息。
vhdl 实现时钟整点报时功能
1、完成秒/分/时的依次显示并正确计数;
2、秒/分/时各段个位满正确进位,秒/分能做到满向前进位;
3、定时闹钟:实现每到整点时报时,扬声器发出报时声音;
4、时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;秒还可以手动调0;
分频模块:
源代码:
library ieee;
use ieee.std_logic_.all;
use ieee.std_logic_unsigned.all;
entity yxfrequencydivider is
port(clk:in std_logic;
hz,hz,hz,hz4,hz1:out std_logic);
end yxfrequencydivider ;
architecture hz of yxfrequencydivider is
signal count:std_logic_vector(9 downto 0);
begin
process(clk)
begin
if (clk'event and clk='1') then
if (count="") then
count<="";
else
count<= count+1;
end if;
end if;
end process;
hz <= count(0);
hz <= count(1);
hz <= count(3);
hz4<=count(7);
hz1<=count(9);
end architecture;
模块说明:由于clk的频率为hz,所以可以定义一个std_logic_vecture(9 downto 0),使它不停地从加到然后又返回,由于最低位在clk脉冲到来时从0变成1,然后又在下一个脉冲变回0,因此最低位的时钟周期为clk的时钟周期的两倍,它的频率就为clk频率的1/2即HZ。同理,次高位的频率就为clk频率的1/2*1/2=1/4,用这种方法就可以得到各种能整除的频率,从而实现分频功能。
进制模块
源程序
library ieee;
use ieee.std_logic_.all;
use ieee.std_logic_unsigned.all;
entity m is
port(cp:in std_logic;
sqmsl,sqmsh:out std_logic_vector(3 downto 0));
end m;
architecture arh_m of m is
signal stempl,stemph:std_logic_vector(3 downto 0);
begin
process(cp)
begin
if cp='1' then
if stempl="" and stemph="" then
stempl<="";
stemph<="";
else
if stempl=9 then
stempl<="";
stemph<=stemph+1;
else
stempl<=stempl+1;
end if;
end if;
end if;
end process;
sqmsl<=stempl;
sqmsh<=stemph;
end architecture;
本模块端口说明:cp为脉冲输入端;sqmsh和sqmsl分别为小时的高位和低位输出,用来在数码管中分别显示小时的高位和低位数值,定义为std_logic_vector(3 downto 0).
功能实现:在cp高脉冲到时执行以下程序块,如果高位为2,低位为3则高位各低位都变回0,不然再低位进行判断,若为9低位变回0,高位加1,若不为9则低位直接加1即可同样实现.
进制模块
源程序
library ieee;
use ieee.std_logic_.all;
use ieee.std_logic_unsigned.all;
entity m is
port(cp,clr:in std_logic;
co:out std_logic;
sqmsl,sqmsh:out std_logic_vector(3 downto 0));
end m;
architecture arh_m of m is
signal stempl,stemph:std_logic_vector(3 downto 0);
signal stempco:std_logic;
begin
process(cp,clr)
begin
if clr='0' then
stemph<="";
stempl<="";
else
if cp'event and cp='1' then
stempco<='0';
if stempl=9 then
if stemph=5 then
stempco<='1';
stempl<="";
stemph<="";
else
stempl<="";
stemph<=stemph+1;
end if;
else
stempl<=stempl+1;
end if;
end if;
end if;
end process;
co<=stempco;
sqmsl<=stempl;
sqmsh<=stemph;
end architecture;
本模块端口说明:cp为脉冲信号输入端;clr为置0端,并且低电平有效,用来在校时时秒位清零;co为进位输入端;sqmsh和sqmsl分别是秒或分的高位或低位,定义为std_logic_vector(3 downto 0),用来分别在数码管中显示读数.
功能说明:以cp和clr而敏感变量,先判断clr是否为0,若为0则stemph种stempl都为,然后分别赋值给sqmsh和sqmsl;如果不为0,则执行累加;否则,再判断高位是否为5,若为5则进位输出为1、低位和高位都赋予0,若不为5则高位加1,低位赋予0.从而实现了进制的累加.
扫描显示及译码模块
源程序
library ieee;
use ieee.std_logic_.all;
use ieee.std_logic_unsigned.all;
entity dongtaism is
port(clk:in std_logic;
s:in std_logic_vector(7 downto 0);
f:in std_logic_vector(7 downto 0);
m:in std_logic_vector(7 downto 0);
selout:out std_logic_vector(5 downto 0);
segout:out std_logic_vector(6 downto 0));
end dongtaism;
architecture a of dongtaism is
signal temp:std_logic_vector(2 downto 0);
signal seg:std_logic_vector(6 downto 0);
signal sel:std_logic_vector(5 downto 0);
begin
process(clk)
variable num:std_logic_vector(3 downto 0);
begin
if (clk'event and clk='1' ) then
if temp>=5 then
temp<="";
else
temp<=temp+1;
end if;
case temp is
when "" =>num:=s(7 downto 4);
sel<="";
when "" =>num:=s(3 downto 0);
sel<="";
when "" =>num:=f(7 downto 4);
sel<="";
when "" =>num:=f(3 downto 0);
sel<="";
when "" =>num:=m(7 downto 4);
sel<="";
when "" =>num:=m(3 downto 0);
sel<="";
when others=>sel<="";
end case;
case num is
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when""=>seg<="";
when others=>seg<="";
end case;
end if;
end process;
selout<=sel;
segout<=seg;
end architecture;
本模块端口说明:stempl、stemph、ftempl 、ftemph、mtempl、mtemph
分别为时,分,秒的输入端,定义为std_logic_vector(7 downto 0);segout为七端显示管的输出,定义为std_logic_vector(6 downto 0);selout为扫描地址端,定义为std_logic_vector(5 downto 0),某一时刻只有一个为1,对应的数组号即为当前扫描的数码管的编号.
功能实现:定义一个std_signal_vector(2 downto 0)变量addr,它在0和5之间不断的循环,用来指示当前扫描的哪一根管,循环用if addr>=5 then addr<=””; else addr<=addr+1;end if;实现.再定义一个类型为std_logic_vector(5 downto 0)的tempaddr信号,它用来产生一个长度为6的数,该数在同一时刻只有一位是高电平表示正在扫描该显示管,在进程结束时它的值将赋给selout输出.定义一个std_logic_vector(6 downto 0)类型的temp_display,用来存放将由4位BCD码编码而来的7段显示码.最后在进程中定义一个std_logic_vector(3 downto 0)类型的tempnum变量,用来存放时、分、秒的高位或低位,然后将该数编码成7段显示码,并赋给temp_display信号。具体算法如下:
建立一个以cp脉冲为敏感变量的进程,先判断是否是cp的高电平脉冲,若不是则什么也不执行,若是高电平脉冲,则执行以下程序。Adder加1,用case语句根据adder的值,给tempnum赋予当前要扫描的数码管的值,用case语句根据tempnum的值编译成对应的7段显示管的值并赋给temp_display,当进程结束时把temp_display的值赋给segout,把tempaddr的值赋给selout,然后由这两个端口输出。
整点报时模块:
源程序
library ieee;
use ieee.std_logic_.all;
use ieee.std_logic_unsigned.all;
entity baoshi is
port(m1,m0,s1,s0:in std_logic_vector(3 downto 0);
sig,sig1k:out std_logic);
end baoshi;
architecture behave of baoshi is
begin
process(m0)
begin
sig<='0';
sig1k<='0';
if m1="" and m0="" then
if s1=""and (s0="" or s0="" or s0="" or s0="" or s0="") then
sig<='1';
else
sig<='0';
end if;
end if;
if m1="" and m0=""and s1="" and s0="" then
sig1k<='1';
else
sig1k<='0';
end if;
end process;
end behave;
本模块端口说明:m1,m0,s1,s0分别为分和秒的高低位的输入;sig,sig1k分别为hz和1khz鸣叫的控制信号。
功能实现:定义temp,temp1k信号,用于存放两种频率报时的控制信号;定义一个以m0为敏感信号的一个比较进程,在进程一开始的时候先给temp和temp1k赋予初值0,然后判断分是否为分,若是则判断秒的高位是否是5,若是则如果秒的低位为0、2、6、8则temp为1;若分不是则判断分和秒是否都为0,若都为0则temp1k为1。进程结束时把temp,temp1k的值分别赋给sig,sig1k。
然后连接顶层图
c编程题+有多少个整点oj?
分清况讨论:当线段为水平或竖直时,两端点整数之间的整数个数即为所求;
当线段为斜线时,其斜率|k|=|(y2-y1)/(x2-x1)|=|dy/dx|
dy和dx同除以它们的最大公约数,可将k化为既约分数的形式|k|=|a|/|b|
那么线段上整点的x坐标一定满足|x-x1|能被|b|整除
所以问题转化为x1~x2上有多少个整数能被|b|整除
最后注意坐标的数据范围,为防止溢出都使用长整型long long
C代码和运行结果如下:
输出符合样例,望采纳~
附源码:
#include <stdio.h>
typedef long long ll;
ll abs(ll x) { // 返回绝对值
return x < 0 ? -x : x;
}
ll gcd(ll a, ll b) { // 辗转相除法求最大公约数
return b ? gcd(b, a % b) : a;
}
int main() {
int T;
ll x1, y1, x2, y2, dx, dy, k;
scanf("%d", &T);
while (T--) {
scanf("%lld%lld%lld%lld", &x1, &y1, &x2, &y2);
if (x1 == x2) { // 位于同一竖直线上
printf("%lld\n", abs(y2 - y1) + 1);
}
else if (y1 == y2) { // 位于同一水平线上
printf("%lld\n", abs(x2 - x1) + 1);
}
else {
dx = abs(x2 - x1);
dy = abs(y2 - y1);
k = gcd(dx, dy);
k = dx / k; // 整点的x坐标一定满足|x-x1|能被k整除
printf("%lld\n", dx / k + 1);
}
}
return 0;
}