打印

//晟矽微单片机编程第八天流水灯显示AD

[复制链接]
524|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2020-10-24 23:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//晟矽微单片机编程第八天流水灯显示AD
//qq:74145445
//快手:共同学习stm8
/**************************************************/
//                                              MC32P7311
//                                           _____@_____
//           led11--p16|1                      16|p17--anjian
//                                vdd|2                       15|vss
//           led10--p15|3                      14|p00--led0
//            led9--p14|4                      13|p01--led1
//            led8--p13|5                      12|p02--led5
//            led7--p12|6                      11|p03--led4
//            led6--p11|7                      10|p04--led3
//            ad  --p10|8_________9|p05--led2

/**************************************************/
#define                   bit0                      0b00000001
#define                   bit1                      0b00000010
#define                   bit2                      0b00000100
#define                   bit3                      0b00001000
#define                   bit4                      0b00010000
#define                   bit5                      0b00100000
#define                   bit6                      0b01000000
#define                   bit7                      0b10000000

#define                   bit8                      0b0000000100000000
#define                   bit9                      0b0000001000000000
#define                   bit10                     0b0000010000000000
#define                   bit11                     0b0000100000000000
#define                   bit12                     0b0001000000000000
#define                   bit13                     0b0010000000000000
#define                   bit14                     0b0100000000000000
#define                   bit15                     0b1000000000000000
/**************************************************/
#define                   led0                                 P00D
#define                   led1                                 P01D
#define                   led2                                 P05D
#define                   led3                                 P04D
#define                   led4                                 P03D
#define                   led5                                 P02D
#define                   led6                                 P11D
#define                   led7                                 P12D
#define                   led8                                 P13D
#define                   led9                                 P14D
#define                   led10                                P15D
#define                   led11                                P16D

#define                   led_0_oe                                 P00OE
#define                   led_1_oe                                 P01OE
#define                   led_2_oe                                 P05OE
#define                   led_3_oe                                 P04OE
#define                   led_4_oe                                 P03OE
#define                   led_5_oe                                 P02OE
#define                   led_6_oe                                 P11OE
#define                   led_7_oe                                 P12OE
#define                   led_8_oe                                 P13OE
#define                   led_9_oe                                 P14OE
#define                   led_10_oe                                P15OE
#define                   led_11_oe                                P16OE

/**************************************************/
#include"MC32P7311.h"
void           io_chushihua();                   //io初始化
void           ad_chushihua();                   //ad初始化
void           xianshi();                               //显示
void           yanshi();                                //延时
unsigned int           xianshi_a1;
void           main()
{
unsigned int           a1;
//unsigned int           a2;
io_chushihua();                   //io初始化
ad_chushihua();
for(;;)
{
a1                    =0;
ADEOC          =0;                   //启动AD转换
while(!ADEOC);
a1                    =ADRH;
a1                    <<=4;                     //左移4
a1                    |=ADRL;
xianshi_a1                    =a1;
xianshi();
yanshi();
}

}

/**************************************************/
void           io_chushihua()         //io初始化
{
led_0_oe                      =1;                   //输出口
led_1_oe                      =1;
led_2_oe                      =1;
led_3_oe                      =1;
led_4_oe                      =1;
led_5_oe                      =1;
led_6_oe                      =1;
led_7_oe                      =1;
led_8_oe                      =1;
led_9_oe                      =1;
led_10_oe                         =1;
led_11_oe                         =1;
}
/**************************************************/
void           ad_chushihua()                    //ad初始化
{
P10ANS                    =1;                   //模拟输入
//ADCR0
ADCHS3                    =0;
ADCHS2                    =1;
ADCHS1                    =0;
ADCHS0                    =1;                   //数模转换器通道5
ADLEN                     =1;                   //adc位数12位
//ADEOC                                         //1AD转结束0启动AD转换
ADON                      =1;                   //使能ADC
//ADCR1
ADCKS2                    =1;
ADCKS1                    =1;
ADCKS0                    =1;                   //转换时钟125k
ADTST                     =0;                   //参考电压输出
RESS0                     =0;                   //VREF3K上拉
VRS2                      =0;
VRS1                      =1;
VRS0                      =1;                   //内部参考VDD
//ADCR2
ADSMP3                    =1;
ADSMP2                    =1;
ADSMP1                    =1;
ADSMP0                    =1;                   //固定1111
//ADRH                                          //高八位(11-4)只读
//ADRL                                          //低四位(3-0)只读

}



/**************************************************/
void           xianshi()                     //显示
{
if(xianshi_a1 & bit0){led0            =1;}                   else{led0                         =0;}
if(xianshi_a1 & bit1){led1            =1;}                   else{led1                         =0;}
if(xianshi_a1 & bit2){led2            =1;}           else{led2                         =0;}
if(xianshi_a1 & bit3){led3            =1;}           else{led3                         =0;}
if(xianshi_a1 & bit4){led4            =1;}           else{led4                         =0;}
if(xianshi_a1 & bit5){led5            =1;}           else{led5                         =0;}
if(xianshi_a1 & bit6){led6            =1;}           else{led6                         =0;}
if(xianshi_a1 & bit7){led7            =1;}           else{led7                         =0;}
if(xianshi_a1 & bit8){led8            =1;}           else{led8                         =0;}
if(xianshi_a1 & bit9){led9            =1;}           else{led9                         =0;}
if(xianshi_a1 & bit10){led10          =1;}           else{led10                        =0;}
if(xianshi_a1 & bit11){led11          =1;}           else{led11                        =0;}

}
/**************************************************/
void           yanshi()                      //延时
{
unsigned           int x;
x                     =1000;
while(x)
{
x--;
}


}
/**************************************************/

/**************************************************/














使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

287

主题

444

帖子

57

粉丝