ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:16.64KB ,
资源ID:3275762      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3275762.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(代码pwm.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

代码pwm.docx

1、代码pwm/头文件#include #include#define uchar unsigned char#define uint unsigned int #define THCO 0xEE-定时器赋初值#define TLCO 0x3F-定时器赋初值#define AD_CHANNEL 0-AD 通道unsigned int vx=10;unsigned char code Duan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76;/段选码unsigned char D

2、ata_Buffer6=0,0,0,0;-数据缓冲区unsigned char Hour=7,Min=0,Sec=20; /时钟时间unsigned int flag=0; -1分时间到标志bit AD_flag=0;bit SOS_flag=0;char tp=0;unsigned int v;unsigned int temp1=600;unsigned char Mode=0;unsigned char K=1;bit flag1=0;/vx=5在用于12864LCD的LED背光调整时上电为半亮度状态,可根据自己的用途及要求任意设定sbit KEY_H=P22; -定义按键sbit KE

3、Y_L=P21; -定义按键sbit MODE=P20; -定义按键sbit P34=P34; -定义按键sbit P35=P35; -定义按键sbit P36=P36; -定义按键sbit P37=P37; -定义按键sbit P14=P14; -定义按键sbit P24=P24; -定义按键sbit P25=P25; -定义按键sbit P26=P26; -定义按键sbit P27=P27; -定义按键sbit P32=P32; -定义按键/*/void PWM_init (void)/PWM初始化函数CMOD=0x02; /设置PCA定时器 系统时钟 SYclk/2 CL=0x00; C

4、H=0x00;CCAPM1=0x42; /PWM1设置PCA工作方式为PWM方式(0100 0010) 8位pwm输出无中断 CCAP1L=0xff; /设置PWM1初始值与CCAP0H相同 CCAP1H=0xff; / PWM1初始时为0 /启动PCA定时器/*/void PWM1_set (unsigned int a)/PWM1占空比设置函数CCAP1L=a; /设置值直接写入CCAP1LCCAP1H=a; /设置值直接写入CCAP1H/*/void DelayM(unsigned int a)/延时函数 1mS/次(用于1T单片机) unsigned char n,i,j;while(

5、-a!=0) for(n=1;n0;n-) for(j=222;j0;j-) for(i=12;i0;i-); /*/*/void manual_control() /手动控制 PWM1_set(vx*25); -数字24是配合vx调试取得的,此时vx的赋值范围约为1-10对应最暗-最亮/-减调整-/ if (KEY_L = 0 ) DelayM(20); /延时20毫秒消抖动 if(KEY_L = 0) /如果20SM后KEY_L还是0状态则确认下调键是按下的 vx-; if(vx1)vx=10;/如果设定vx=10,将语句改为if(vx=11)vx=1; while(KEY_H = 0);

6、 /*/void dispaly1() flag=0 ; Data_Buffer0=0;Data_Buffer1=vx;Data_Buffer2=0; Data_Buffer3=0;/*/void a1() P34=0,P37=1,manual_control(); dispaly1();CR=1;/*/unsigned int AD_Sample(unsigned char channel) uint i,q=0; unsigned int temp; for(i=0;i10;i+) tp=0; ADC_RES=0; ADC_RESL=0; ADC_CONTR=0x88|channel;/选

7、择AD当前通道,并启动转换 while(!tp) -等待转换完毕 tp=0x10; tp&=ADC_CONTR; ADC_CONTR&=0xe7; temp=(ADC_RES&0x03)*256+ADC_RESL; q=q+temp; temp=q/10; return temp;/ void a2() if(flag1=1) flag1=0; v=AD_Sample(AD_CHANNEL); Data_Buffer0=v/1000; Data_Buffer1=v/100%10; Data_Buffer2=v/10%10; Data_Buffer3=v%10; if(v510) PWM1_se

8、t(0xff); void AD_init() P1M0=1; /P10设为A/D转换功以能 P1M1=1; P1ASF=0X01; /通道选择 AUXR1|=0x04; ADC_CONTR=0x80; /打开A/D转换器电源/*/void SOS_LED() /呼吸灯子函数 unsigned int i;for(i = 100;i 100;i=i-5) PWM1_set(i); DelayM(200); /*/void main(void) static unsigned int flag1=0; unsigned char i; TMOD=0x11; /定时器0初始化TH0=THCO;TL

9、0=TLCO;TR0=1;ET0=1;EA=1;KEY_H = 1;KEY_L = 1;PWM_init ();while(1) if (MODE = 0 ) DelayM(20); /延时20毫秒消抖动 if(MODE = 0) /如果20SM后KEY_L还是0状态则确认下调键是按下的 flag1+ ;if(flag1=4)flag1=0;/如果设定vx=10,将语句改为if(vx=200) /秒计时,定时器定时5ms,计200次为一秒 count=0; Sec-; if(Sec=0) Sec=20,CR=0, CCON = 0; CL = 0; /复位PCA的计数器 CH = 0; flag=0; AD_count+; if(AD_count=100) /半S时间到 AD_count=0; flag1=1; Bit+; if(Bit=4)Bit=0; P24=P25=P26=P27=1; /先关位码 P0=DuanData_BufferBit; /开段码 if(count100&Bit=1)P0|=0x80;/0.5S中间小数点亮,之后灭,不断循环 switch(Bit) /送位码 case 0: P24=0;break; case 1: P25=0;break; case 2: P26=0;break; case 3: P27=0;break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1