安好即可
/*本实验实现一个能显示小时,分钟,秒的数字时钟。*/module clock(clk,rst,dataout,en);input clk,rst;output[7:0] dataout;reg[7:0] dataout;output[7:0] en;reg[7:0] en;reg[3:0] dataout_buf[7:0];reg[25:0] cnt;reg[15:0] cnt_scan;reg[3:0] dataout_code;wire[5:0] cal; //各级进位标志assign cal[0]=(dataout_buf[0]==9)?1:0;assign cal[1]=(cal[0]&&dataout_buf[1]==5)?1:0;assign cal[2]=(cal[1]&&dataout_buf[3]==9)?1:0;assign cal[3]=(cal[2]&&dataout_buf[4]==5)?1:0;assign cal[4]=(cal[3]&&dataout_buf[6]==9)?1:0;assign cal[5]=(cal[3]&&dataout_buf[6]==2&&dataout_buf[7]==1)?1:0;always@(posedge clk or negedge rst)begin if(!rst) begin cnt_scan<=0; en<=8'b1111_1110; end else begin cnt_scan<=cnt_scan+1; if(cnt_scan==16'hffff) begin en[7:1]<=en[6:0]; en[0]<=en[7]; end endendalways@(*)begin case(en) 8'b1111_1110: dataout_code=dataout_buf[0]; 8'b1111_1101: dataout_code=dataout_buf[1]; 8'b1111_1011: dataout_code=dataout_buf[2]; 8'b1111_0111: dataout_code=dataout_buf[3]; 8'b1110_1111: dataout_code=dataout_buf[4]; 8'b1101_1111: dataout_code=dataout_buf[5]; 8'b1011_1111: dataout_code=dataout_buf[6]; 8'b0111_1111: dataout_code=dataout_buf[7]; default: dataout_code=dataout_buf[0]; endcaseendalways@(posedge clk or negedge rst)begin if(!rst) cnt<=0; else if(cnt!=40000000) cnt<=cnt+1; else cnt<=0;endalways@(posedge clk or negedge rst) //实现计数和进位的功能begin if(!rst) begin dataout_buf[0]<=0; dataout_buf[1]<=0; dataout_buf[2]<=15; dataout_buf[3]<=0; dataout_buf[4]<=0; dataout_buf[5]<=15; dataout_buf[6]<=2; dataout_buf[7]<=1; end else begin if(cnt==26'd40000000) begin if(!cal[0]) dataout_buf[0]<=dataout_buf[0]+1; else begin dataout_buf[0]<=0; if(!cal[1]) dataout_buf[1]<=dataout_buf[1]+1; else begin dataout_buf[1]<=0; if(!cal[2]) dataout_buf[3]<=dataout_buf[3]+1; else begin dataout_buf[3]<=0; if(!cal[3]) dataout_buf[4]<=dataout_buf[4]+1; else begin dataout_buf[4]<=0; if(!cal[4]) dataout_buf[6]<=dataout_buf[6]+1; else begin dataout_buf[6]<=0; if(!cal[5]) dataout_buf[7]<=dataout_buf[7]+1; else dataout_buf[7]<=0; end end end end end end endendalways@(dataout_code)begin case(dataout_code) 4'b0000: dataout=8'b1100_0000; 4'b0001: dataout=8'b1111_1001; 4'b0010: dataout=8'b1010_0100; 4'b0011: dataout=8'b1011_0000; 4'b0100: dataout=8'b1001_1001; 4'b0101: dataout=8'b1001_0010; 4'b0110: dataout=8'b1000_0010; 4'b0111: dataout=8'b1111_1000; 4'b1000: dataout=8'b1000_0000; endcaseendendmodule 这个你再改改吧,应该没有什么难度的,祝你好运!
sweetmiriam
仔细研究野火的STM32F103开发板的实时时钟例程,就会学到很多东西这个单片机的实时时钟只是一个简单的32位计数器,计的是秒,要换算成年月日时分秒,完全是要根据阳历的闰年规律计算的,先找一个基准日期,称为时间戳然后根据现今时间与时间戳的差值(以S为单位)计算当前的年月日时分秒钟星期几,然后根据表格查每年的农历有几个月,几个大小月,闰月是个月,春节在哪一天,当前日期是在春节前还是春节后,就能计算出农历日期,然后计算24节气,由于24节是按阳历年划分的,而阳历的一年只有365天和366天两种,因此24节的阳历日期基本固定,找一个标准,然后记下各个节气和标准日期的正负误差就可以确定当前节气的阳历日期了,还有天干地支,只要有一个基准,求12和10的余数,推算很容易的
ruby纸鸢
#includeintleap(intyear){if(year%4==0&&year%100!=0||year%400==0)//判断是否是闰年return1;elsereturn0;}intdays_month(intmonth,intyear)//判断大月和小月{if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//找出大月return31;if(month==4||month==6||month==9||month==11)//找出小月return30;if(month==2&&leap(year)==1)return29;//判断二月是29天还是29天elsereturn28;}intfirstday(intmonth,intyear){intw;w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;//判断每个月开始的第一天是星期几returnw;}main(){inti,j=1,k=1,a,b,month,year;printf(\\"inputmonthandyear:\\");scanf(\\"%d%d\\",&month,&year);//输入月和年b=days_month(month,year);a=firstday(month,year);printf(\\"SunMonTueWedThuFriSat\\");//输出对应当月的日历if(a==7){for(i=1;i<=b;i++){printf(\\"%4d\\",i);if(i%7==0){printf(\\"\\");}}}if(a!=7){while(j<=4*a){printf(\\"\\");j++;}for(i=1;i<=b;i++){printf(\\"%4d\\",i);if(i==7*k-a){printf(\\"\\");k++;}}}printf(\\"\\");}
科技论文写作内容 论文的写作格式一般包括如下内容: ①题目; ②作者; ③摘要; ④关键词; ⑤引言; ⑥正文(材料、方法、结果和讨论); ⑦致谢; ⑧参考文献
软件设计毕业设计论文题目 软件设计毕业设计论文题目如何拟定,大家有参考的范文吗?以下是我为大家整理的关于软件设计毕业设计论文题目,希望大家喜欢! 1) 组合型板
随着我国现代化程度的不断提高,计算机软件被应用的领域愈发广泛,其本身的创造程度也越来越高,计算机产业现在已经成为一个规模庞大的产业。下面是我为大家整理的计算机软
数据挖掘在软件工程技术中的应用毕业论文 【 摘要 】计算机技术在发展,软件也发展的越来越复杂,而系统开发工作也显得更加重要。信息技术的广泛应用会产生大量数据,通
问题一:大学本科毕业论文用什么软件写? 微软 word 目前比较通用,电子版,然后整成书面的。 其实国产的wps文字也是蛮好的,针对于国人,人性化设计,将