完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uint unsigned int #define uchar unsigned char __CONFIG(0xf731); void init(); void delay(uint x); void disp(uchar num1,uchar num2,uchar num3,uchar num4); uint get_ad(); const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f};//共阴极,不带小数点的0~9 const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};//共阴极,带小数点的0~9 void main() { uchar a1,a2,a3,a4; uint lednum;//数码管显示的数值 init();//初始化 while(1) { lednum=get_ad();//获取数码管的值 a1=lednum/1000; a2=lednum%1000/100; a3=lednum%100/10; a4=lednum%10; disp(a1,a2,a3,a4);//显示数据 } } void init() { TRISD=0;//D端口设置为输出态 PORTD=0;//D端口输出0,使数码管熄灭 TRISA=0x01;//通道0输入,RA0为输入态 PORTA=0; TRISB=0;//B为输出态,输出高电平,确保数码管熄灭 PORTB=0XFF; ADCON0=0X41;//ADCS1:ADCS0=01 ADON=1 ADCON1=0X8E;//选择右对齐,PCFG3:PCFG2:PCFG1:PCFG0=1110 delay(10);//延时10ms,稳定电压 } void delay(uint x)//延时X毫秒的函数 { uint a,b; for(a=x;a>0;a--) for(b=110;b>0;b--); } void disp(uchar num1,uchar num2,uchar num3,uchar num4) { PORTD=table1[num1];//显示第一个数码管 PORTB=0XEF; delay(2); PORTD=table[num2];//显示第二个数码管 PORTB=0XF7; delay(2); PORTD=table[num3];//显示第三个数码管 PORTB=0XFB; delay(2); PORTD=table[num4];//显示第四个数码管 PORTB=0XFD; delay(2); } uint get_ad() { uint adval;//存放十位的结果 float advalf; ADGO=1;//开始转换 while(ADGO);//等待转换结束 adval=ADRESH;//00000000 00000011 adval=adval<<8|ADRESL;//左移八位加上ADRESL的值 advalf=adval/1023.0*5.0;//转换成电压值(5V为基准电压) adval=advalf*1000;//转换成实数,取四位有效数字 return(adval); } 程序运行的数码管上显示结果是0.000 奇怪的是ADRESH和ADRESL都是0 呀,但我确定AD转换已经完成了 |
|
相关推荐
3 个讨论
|
|
本帖最后由 agj032 于 2011-4-9 17:33 编辑
应该为: uint get_ad() { uint adval;//存放十位的结果 float advalf; ADGO=1;//开始转换 while(ADGO);//等待转换结束 adval=ADRESH;//00000000 00000011 adval=adval<<8|ADRESL;//左移八位加上ADRESL的值 advalf=adval*1000*5; advalf=adval/1024;// adval=(uint)advalf; return(adval); } |
|
|
|
|
|
[ PIC16F877A-I/P ] 产 品 详 细 规 格
系列: PIC® 16F 核心处理器: PIC 芯体尺寸: -- 速度: 20MHz RAM容量: 368 x 8 程序存储器类型: FLASH 程序存储器容量: 14KB (8K x 14) EEPROM 大小: -- 输入/输出数: 33 振荡器型: External 数据转换器: A/D 8x10b 连通性: I²C, SPI, UART/USART 工作电压: 4 V ~ 5.5 V 工作温度: -40°C ~ 85°C 周边设备: Brown-out Detect/Reset, POR, PWM, WDT |
|
|
|
|
|
直销MicRochip(pic)全系列八位单片机。
初级系列:PIC12C508A , PIC12C509A, PIC12CE518,PIC12CE519,PIC12F629, PIC12F675, pic16c505,PIC16C54C, PIC16C56A, PIC16C57C, PIC16F54, PIC16F57, CF745, CF775。 中级系列: PIC16C62B, PIC16F627, PIC16F628, PIC16C63A,pic16c64,PIC16C65B,PIC16F630,PIC16C621,PIC16CE625, PIC16C711, PIC16C712, pic16C716, PIC16C717,PIC16F84A, pic16c72a,pic16c73b,PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77,PIC16C745,PIC16F812, PIC16F870A, PIC16F873,PIC16F874, PIC16F876A, PIC16F877A ,PIC14000 高级系列:PIC17C4X单片机,PIC17C42,PIC17C43,PIC17C752,PIC17C756,PIC17C762 PIC18C/FXXX单片机 PIC18F252,PIC18F442,PIC18F452,PIC18F6520,18F8520,PIC18F8620,PIC18C658 ----------------------------------------------------- ·公司名称: 深圳科顺龙电子商行 ·联系人 : 彭先生 ·电话 : 0755-82719303 ·Fax : 0755-82719303 ·Q Q : 691114130 ·M S N :ksldz.ic@msn.cn ·邮箱 : ksld.ic@hotmail.com ·地址 : 深圳市高科德交易中心12318 ------------------------------------------------------ |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 02:22 , Processed in 0.871121 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号