




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/=/ 工程名称:mzlh04_directnumber/ 作 者: xinqiang zhang(小丑) (email: xinqiangm) / 联系方式:qq 644272644/版权所有:北京铭正同创科技有限公司 / 适应芯片: mcs51 (本例选择at89s52)/ 编程环境: keil c51/ 实现功能: mzlh04模块的直接数字显示功能演示/ 系统要求: pc with cpu 233mhz,128mb ram,/ keil uvision3(or later)/ 组成文件:/ main.c-主程序文件/lcd_dis.c/ lcd_dis.h/-mzlh04模块的基本驱动程序/硬件连接:/lcd cs -p1.0/lcd sck-p1.2/lcd sda-p1.1/lcd rst-p1.3/ 端口定义请参考lcd_config.h文件中的定义/cpu运行频率11.0592mhz(每个指令为12周期)/lcd 供电请参考具体的模块是3.3v的还是5v模块/ 当前版本: v1.00/ 日期: 2009-02-10/ / 参考文件: / 维护记录:/-/ version 2009-02-10-v10 modified by xinqiang zhang(小丑)/=#include lcd_dis.h#include stc12c5a.h#include #define uint unshigned int#define uchar unsigned charunsigned char key;unsigned char adckey;unsigned char flag1=1;/量程标志unsigned char flag2=1;/操作判断unsigned char flag0=1;/步进频率标志unsigned char getad(void);unsigned char getkey(void);/数控脉冲发生器初始设置/sbit din=p15; sbit enb=p16;sbit clk=p17; #define qsz 1000 /初始输出频率1mhz=1000*1khzunsigned short fpb=10000; /晶振的分频比r值,初始分频比10000(分频比)#define min_frequency 40#define max_frequency 65535unsigned short bjpl=1000l; /初始步进1khz,单位hz(步进频率)unsigned int n_bit_stream; /n值int num=0;int pl;int t,i;unsigned char idata pinli5=0x00,0x00,0x00,0x00,0x00;unsigned short sw,gw,sfw,bfw,qfw;/* *定义寄存器的名字* */#define c_bitgrabber_register 7 /8个时钟沿写c寄存器#define r_bitgrabber_register 14 /15个时钟沿写r寄存器#define n_bitgrabber_register 15 /16个时钟沿写n寄存器/* * */*正常时序、鉴相器a有效、ld有效、refout=0、fve和fre无效*/#define star_c_bit_stream 0x6b /0x60,3管脚2分频输出晶振频率,fv,fr输出分步后脉冲extern void mc145170_write_c_n_r_bitgrabber_register(char bitgrabber_register,unsigned int bit_stream);extern void mc145170_reset(void);/数控脉冲发生器初始设置/void delay(unsigned int ms)/延时函数 unsigned char i; while(ms-) for(i=0;i250;i+) _nop_();_nop_();_nop_();_nop_(); unsigned char getad() unsigned char channel; unsigned char ad_finished=0; adc_res = 0; channel &= 0x01; /ad通道选择 2 adc_contr |=0x40; /转换速度选择sppd1=1 adc_contr &=0xdf; /转换速度选择sppd0=0 _nop_(); adc_contr |= channel; /ad通道选择赋值 _nop_(); adc_contr |= 0x80; /开ad转换电源 delay(1); adc_contr |= 0x08; /启动ad转换 ad_finished = 0; while (ad_finished =0 ) /转换是否结束判断 ad_finished = (adc_contr & 0x10); adc_contr &= 0xe7; /转换标志位清0 ,关闭ad转换电源 return (adc_res); unsigned char getkey()unsigned char jp,temp;char column=0xef,0xdf,0xbf,0x7f;char keycode=0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77; /0 1 2 3 4 5 6 7 8 9 10.dofor(jp=0;jp4;jp+)p2=columnjp;if(p2!=columnjp) timedelay(20);if(p2!=columnjp) /按键在此列temp=p2; for(jp=0;jp=0) din=(bit_streambitgrabber_register)&0x0001; /此处发生数据类型的转变,&0x0001必须有 clk=1; /产生时钟上升沿 clk=0; bitgrabber_register -;enb=1; /写入生效/mc145170复位函数/void mc145170_reset(void)unsigned char bit_shift_counter; /移位计数器bit_shift_counter=0;clk=0;enb=1;/* enb为高电平,时4到8个时钟上升沿,本函数取4个时钟上升沿。 */while(bit_shift_counter4) clk=1;bit_shift_counter+;clk=0;/* enb为低电平,三个时钟上升沿,din为三个0。 */din=0;bit_shift_counter=0;enb=0;while(bit_shift_counter3)clk=1;bit_shift_counter+;clk=0;/* enb为低电平,一个时钟上升沿,din为1。 */din=1;clk=1;clk=0;/* enb为低电平,一个时钟上升沿,din为0. */din=0;clk=1;clk=0;/* 总共九个时钟上升沿,芯片reset */enb=1;/主函数/void main(void)/数控脉冲发生器初始设置n_bit_stream=qsz;mc145170_reset();mc145170_write_c_n_r_bitgrabber_register(c_bitgrabber_register,star_c_bit_stream);/初始化mc145170_write_c_n_r_bitgrabber_register(r_bitgrabber_register,fpb);/初始分频比mc145170_write_c_n_r_bitgrabber_register(n_bitgrabber_register,n_bit_stream);/初始n值bjpl=bjpl/1000;/显示初始化/ lcd_init();setbacklight(0);/设置背光的亮度等级为0 setbacklight(unsigned char grade) grade 0127的等级clrscreen();fontset(0,1); /ascii字符字体设置 fontset_cn(0,1); /汉字库字符字体设置fontmode(1,0); setbacklight(100);/设置背光打开 putstring_cn(0,0, 数控脉冲信号发生器 ); putstring_cn(36,13,频率);/putstring_cn(0,13,周期); while(1) delay(150); / putstring(90,15,hz);putstring(90,15,khz);putstring(90,15,mhz);showshort(0,15,n_bit_stream,1);/测试分频比是否正确 switch(flag2) case 1: putstring_cn(72,15, ); showshort(90,15,sfw,1); showshort(96,15,bfw,1); showshort(102,15,qfw,1); putstring(108,15,khz ); break; case 2: showshort(72,15,sw,1); showshort(78,15,gw,1); putchar(84,15,.); showshort(90,15,sfw,1); showshort(96,15,bfw,1); showshort(102,15,qfw,1); putstring(108,15,mhz ); break; default:break; putstring_cn(36,26,步进);showshort(78,28,bjpl,1);putstring(100,28,khz); if(flag1=1) putstring_cn(0,39,开机初始化);else if(flag1=2) putstring_cn(0,39,请输入频率: );t=num-1;for(i=0;inum;i+)showshort(78+5*i,39,pinlii,1); else if(flag1=3)if(pl0) putstring_cn(0,39,执行完毕! );elseputstring_cn(0,39,输入有误! ); else if(flag1=4) putstring_cn(0,39,请选择步进 ); putstring_cn(0,52,史玉龙-王琪-徐国金);setbacklight(100);/设置背光打开 if(flag1!=2)&(flag1!=4)num=0;pinli0=0x00;pinli1=0x00;pinli2=0x00;pinli3=0x00;pinli4=0x00;/delay(100);/加延时防止屏幕抖动/矩阵键盘/ key=getkey();switch(key)case 12:/c键 putchar(2,28,c);break;case 13:/d键 putchar(2,28,d);break;case 14: /e键 putchar(2,28,e);break;case 15: /f键 / putchar(2,28,f);/步进设置/delay(700);flag1=4;flag0=flag0+1;if(flag0=1)bjpl=1;else if(flag0=2)bjpl=10;else if(flag0=3)flag0=1;bjpl=1;break;case 8:/9键 /putchar(2,28,9);delay(700); if(flag1=2)&(num=4)pinlinum+=9;break;case 9:/0键 /putchar(2,28,0);delay(700); if(flag1=2)&(num=4)pinlinum+=0;break;case 10:/a键/putchar(2,28,a);/输入数提醒/delay(700); flag1=2;break;case 11:/b键/ putchar(2,28,b);/执行键/delay(700);flag1=3;t=num;switch(t)case 1: pl=pinli0;break;case 2:pl=pinli0*10+pinli1;break;case 3:pl=pinli0*100+pinli1*10+pinli2;break;case 4:pl=pinli0*1000+pinli1*100+pinli2*10+pinli3;break;case 5:pl=pinli0*10000+pinli1*1000+pinli2*100+pinli3*10+pinli4;break;default:break;/显示拆分/if(pl=1000)flag2=2;sw=pl/1000/10;gw=pl/1000%10;sfw=pl%1000/100;bfw=pl%1000/10%10;qfw=pl%1000%10;if(pl0) putstring_cn(0,39,输入正确! );elseputstring_cn(0,39,输入有误! );delay(100);n_bit_stream=pl/bjpl;/n_bit_stream=1000l;if(bjpl=1)fpb=10000l;else if(bjpl=10)fpb=1000l;/mc145170_reset();/mc145170_write_c_n_r_bitgrabber_register(c_bitgrabber_register,star_c_bit_stream);/初始化mc145170_write_c_n_r_bitgrabber_register(r_bitgrabber_register,fpb);/分频比mc145170_write_c_n_r_bitgrabber_register
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植技术知识试题及答案
- 电厂技术部长面试题及答案
- 辅警教育培训课件
- 农业银行2025白银市秋招笔试性格测试题专练及答案
- 交通银行2025西安市秋招笔试价值观测评题专练及答案
- 2025年3D打印技术的快速成型技术
- 2025年3D打印的建筑技术
- 交通银行2025秋招笔试综合模拟题库及答案山西地区
- 交通银行2025内江市秋招笔试综合模拟题库及答案
- 中国银行2025通辽市笔试行测高频题及答案
- 医美注射类知识培训课件
- 高速公路文明施工文物保护保证体系及保证措施
- 监理部总控制计划
- 软件可行性报告范文
- 压裂泵往复密封动态磨损机理及失效自愈控制技术研究
- 消除三病反歧视培训
- 脑转移瘤的治疗进展
- 脚手架工安全技术交底(完整版)
- 接触网运行与检修 课件全套 薛艳红 第1-9章 电气化铁道概述-高速铁路接触网精测精修
- 2024-2030年中国抗衰老产品和服务行业市场发展趋势与前景展望战略研究报告
- 酒店实美学 课件全套 杨卉 第1-13章 酒店美学概述-酒店服务之美
评论
0/150
提交评论