版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*/* TLC549控制程序/*module TLC549(clk,reset,sdata,cs,adc_clk,data_out);input clk,reset,sdata;output cs,adc_clk;output 7:0data_out;reg cs;reg 7:0data_out;reg 7:0data_out_r;reg 7:0count_clk;reg adc_clk_r;reg clk_r;reg mark; /标识八位数据reg flag ; /标识八位数据接收完 reg 3:0cnt;/标识八位数的个数parameter s0=0,s1=1,s2=2;reg 2:0
2、c_st;reg5:0 temp; /1.4us 的计数assign adc_clk=adc_clk_r;/assign adc_clk_r=clk_r;always(posedge clk)begin if (count_clk<119) count_clk=count_clk+1; else begin count_clk<=0;clk_r=clk_r;end endalways(posedge clk)begin adc_clk_r=clk_r;endalways(posedge clk_r or negedge reset)begin if (!reset) c_st<
3、;=s0; else case (c_st)s0:begin cs<=1;mark<=0; if (temp=3) begin c_st<=s1;temp<=0;end else begin temp<=temp+1;c_st<=s0;end ends1:begin cs<=0;mark<=1; c_st<=s2; ends2:begin cs<=0;mark<=1; if(flag=1)c_st<=s0;else c_st<=s2; end default:c_st<=s0;endcaseendalways(
4、posedge adc_clk_r)begin if(mark=1) begin if(flag=1) data_out<=data_out_r; else begin data_out_r<=data_out_r6:0,sdata;end endendalways(posedge adc_clk_r)begin if(mark=1) begin if(cnt=8) begin cnt<=0;flag<=1;end else begin cnt<=cnt+1;flag<=0;end endendendmodule/*/* 10进制加法器/*module cn
5、t10(V1,V2,q,c_in,c_out);input3:0V1,V2;input c_in;output 3:0q;output c_out; reg 3:0q;reg a,b;reg c_out;always(V1,V2) begin if(V13:0+V23:0>9)|(V13:0>=8)&&(V23:0>=8)|(V13:0>=9)&&(V23:0>=7)|(V13:0>=7)&&(V23:0>=9) a=1; else a=0; if(V13:0+V23:0=9) b=1; else b=0
6、; endalways(V1,V2,c_in,a) begin if(a=1&&c_in=1&&b=0) q3:0<=V13:0+V23:0+7; else if(a=1&&c_in=0&&b=0) q3:0<=V13:0+V23:0+6; else if(a=0&&c_in=1&&b=0) q3:0<=V13:0+V23:0+1; else if(a=0&&c_in=1&&b=1)q3:0<=V13:0+V23:0+7; else q3:0&
7、lt;=V13:0+V23:0; endalways(a,V1,V2,c_in)begin if(a=1|(V13:0+V23:0=9&&c_in=1) c_out=1; else c_out=0;endendmodule/*/* 数字转换查找表/*module lookup(V,q);input 7:0V;output 11:0q; reg 11:0q;reg 11:0HB,LB;wire d1,d2,d3;always(V)begin case(V7:4) /-A/D值的高4位转换成3位BCD码 4'b1111: HB<=12'b00100100000
8、0; /-2.40 4'b1110: HB<=12'b001000100100;/-2.24 4'b1101: HB<=12'b001000001000;/-2.08 4'b1100: HB<=12'b000110010010;/-1.92 4'b1011: HB<=12'b000101110110;/-1.76 4'b1010: HB<=12'b000101100000;/-1.60 4'b1001: HB<=12'b000101000100;/-1.44 4&
9、#39;b1000: HB<=12'b000100101000; /-1.28 4'b0111: HB<=12'b000100010010;/-1.12 4'b0110: HB<=12'b000010010110; / -0.96 4'b0101: HB<=12'b000010000000; / -0.80 4'b0100: HB<=12'b000001100100;/-0.64 4'b0011: HB<=12'b000001001000;/-0.48 4'b00
10、10: HB<=12'b000000110010;/-0.32 4'b0001: HB<=12'b000000010110;/-0.16 4'b0000: HB<=12'b000000000000; / -0.00endcase case(V3:0) /-A/D值低4位变为3位BCD码 4'b1111: LB<=12'b000000010101; / -0.15 4'b1110: LB<=12'b000000010100; /-0.14 4'b1101: LB<=12'b
11、000000010011; /-0.13 4'b1100: LB<=12'b000000010010; /-0.12 4'b1011: LB<=12'b000000010001; /-0.11 4'b1010: LB<=12'b000000010000; /-0.10 4'b1001: LB<=12'b000000001001; /-0.09 4'b1000: LB<=12'b000000001000; /-0.08 4'b0111: LB<=12'b000000
12、000111; /-0.07 4'b0110: LB<=12'b000000000110; /-0.06 4'b0101: LB<=12'b000000000101; /-0.05 4'b0100: LB<=12'b000000000100; /-0.04 4'b0011: LB<=12'b000000000011; /-0.03 4'b0010: LB<=12'b000000000010; /-0.02 4'b0001: LB<=12'b000000000001
13、; /-0.01 4'b0000: LB<=12'b000000000000; / -0.00endcaseendcnt10 u1(.V1(LB3:0),.V2(HB3:0),.q(q3:0),.c_in(1'b0),.c_out(d1);cnt10 u2(.V1(LB7:4),.V2(HB7:4),.q(q7:4),.c_in(d1),.c_out(d2);cnt10 u3(.V1(LB11:8),.V2(HB11:8),.q(q11:8),.c_in(d2),.c_out(d3);endmodule/*/* 译码显示电路/*module scan_led(cl
14、k_1k,d,dig,seg);/模块名scan_ledinput clk_1k;/输入时钟input11:0 d;/输入要显示的数据output7:0dig;/数码管选择输出引脚output7:0 seg;/数码管段输出引脚reg7:0 seg_r;/定义数码管输出寄存器reg7:0 dig_r;/定义数码管选择输出寄存器reg3:0 disp_dat;/定义显示数据寄存器reg2:0count;/定义计数寄存器assign dig = dig_r;/输出数码管选择assign seg = seg_r;/输出数码管译码结果always (posedge clk_1k) /定义上升沿触发进程b
15、egin if(count<2)count <= count + 1'b1; else count<=0;endalways (posedge clk_1k) begincase(count)/选择扫描显示数据3'd0:disp_dat = d11:8; /第一个数码管3'd1:disp_dat = d7:4;/第二个数码管3'd2:disp_dat = d3:0;/第三个数码管endcasecase(count)/选择数码管显示位3'd0:dig_r = 8'b01111111;/选择第一个数码管显示3'd1:dig_
16、r = 8'b10111111;/选择第二个数码管显示3'd2:dig_r = 8'b11011111;/选择第三个数码管显示endcase case(count) 3'd0:seg_r7=0; 3'd1:seg_r7=1; 3'd2:seg_r7=1; endcaseendalways (disp_dat)begincase(disp_dat)/七段译码4'h0:seg_r6:0 = 7'b1000000;/显示04'h1:seg_r6:0 = 7'b1111001;/显示14'h2:seg_r6:0 = 7'b0100100;/显示24'h3:seg_r6:0 = 7'b0110000;/显示34'h4:seg_r6:0 = 7'b0011001;/显示44'h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《秋天的雨》课件(完美版)
- 《老年肺癌专科护理|靶向治疗管理 + 全套护理措施》
- 手工创意工坊:动手动脑小学主题班会课件
- 警惕食品安全守护健康成长家园小学主题班会课件
- 安全教育的小学主题班会课件
- 生产线维护保养计划公告3篇范文
- 医院安全生产管理制度
- 诚信教育:诚信做人从小学主题班会课件
- 安全生产复检预备通知函4篇范文
- 供应链优化项目进度汇报会议3篇范文
- 12.2 正确对待顺境和逆境 课件-2025-2026学年统编版 道德与法治七年级上册
- 环保行业财务分析特点报告
- (2025年)佛山市南海区社区工作者考试题库及答案
- 邻居大爷课件
- 雨课堂学堂在线学堂云《人工智能导论》单元测试考核答案
- 2025年大学(科学教育)科学史期末试题及答案
- 四川省成都市2026届高二上期期末统一调研考试生物答案
- 函授专科入学考试真题及答案
- 2025浙江宁波慈溪市四海资产经营公司公开招聘5人笔试历年常考点试题专练附带答案详解试卷3套
- JJF 2352-2025井斜仪校准规范
- 中文创意写作教程 课件全套1-4 小说写作 - 第四章 散文写作
评论
0/150
提交评论