一、主函数
- //采集AD值
-
- #include
- #include "ad.h"
- #include "usart.h"
-
- __CONFIG(0xFF32);
-
- const uchar disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
- 0x07,0x7f,0x6f};
-
- //延时函数
- void delayms(uint x)
- {
- uint j,k;
- for(j=x;
j>0;
j--)
- for(k=110;
k>0;
k--);
- }
-
- //显示4位,低位数码管显示不正常
- void display(uint x)
- {
- PORTD= disp[x/1000]|0x80;
- PORTA= 0x10;
- delayms(2);
- PORTD= disp[x/100%10];
- PORTA= 0x08;
- delayms(4);
-
- PORTD= disp[x/10%10];
- PORTA= 0x04;
- delayms(2);
-
- PORTD= disp[x%10];
- PORTA= 0x02;
- delayms(2);
- }
-
-
-
- //初始化IO
- void init()
- {
- TRISA = 0x01;
//RA0 input mode
- TRISC = 0xff;
//RC output mode
- TRISD = 0;
- PORTC = 0x01;
-
- ADCON0 = 0x41;
//ADCS1:ADCS0=01,AN0,,A/D On
- ADCON1 = 0x8E;
//right justified,ADCS2=0,1110
- delayms(10);
- }
-
- //获取AD值
- uint getad()
- {
- uint adval;
- float advalf;
- GO = 1;
- while(GO);
- adval = ADRESH;
- adval = adval<<8|ADRESL;
- advalf = adval/1023.0*5.0;
//转换成电压
- adval = (uint)(advalf*1000);
//转换成4位整型
- return (adval);
- }
-
- void main()
- {
- uint i = 0;
- uint temp;
- init();
- usart_init();
- while(1)
- {
- temp = getad();
- display(temp);
- if(i == 100)
- {
- usart_tx(temp>>8);
- usart_tx(temp);
- i=0;
- }
- delayms(5);
- i++;
- }
- }
- #include
- #include "usart.h"
-
- //串口初始化
- void usart_init(void)
- {
- SPBRG = 0xC;
//波特率19200
- TXSTA = 0x24;
//开启发送,高速模式
- RCSTA = 0X90;
//使能TXRX引脚,接收到CREN直到被清零
- RCIE = 0X1;
//使能接受中断
- GIE = 0X1;
//开启总中断
- PEIE = 0X1;
//开启串口中断
- }
-
- void interrupt usart(void)
- {
- if(RCIE && RCIF)
- {
- TXREG = RCREG;
//返回接收的数据
- }
- }
-
- void usart_tx(unsigned char date)
- {
- TXREG = date;
- while(TRMT!=1);
- }
阅读(0) | 评论(0) | 转发(0) | 0 上一篇:uORBMain.cpp学习
【pic16f877a的AD实验学习】下一篇:pic16f877a的PWM实验学习
相关热门文章
- SHTML是什么_SSI有什么用...
- 查看linux中某个端口(port)...
- 卡尔曼滤波的原理说明...
- shell中字符串操作
- 关于java中的“错误:找不到或...
推荐阅读
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- 嵌入式-外设|DDR3基础详解
- ffmpeg|从零开始仿写一个抖音App——基于FFmpeg的极简视频播放器
- #|Multimedia
- USB转串口|USB转四串口芯片CH9344
- python|Python的DEBUG LOG
- ARM的C语言程序优化
- linux|【原创】ARM LINUX 外部RTC实时时钟驱动移植(RX8025)
- linux进程通信(一)--共享内存+信号量,代码示例
- C|堆和栈