找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1957|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

怎么把這個(gè)stc12單片機(jī)程序改成stc15?的

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:538083 發(fā)表于 2019-5-21 22:25 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "main.h"
#include "LCD1602.h"
unsigned int ADC_Buffer = 0;

//****************************************************
//主函數(shù)
//****************************************************
void main()
{
        ADC_CONTR = ADC_360T | ADC_ON;
        AUXR1 |= ADRJ;                                                                        //ADRJ = 1;                        //10bitAD右對(duì)齊
        Init_LCD1602();                                                                        //初始化LCD1602
        LCD1602_write_com(0x80);                                                //指針設(shè)置到
        LCD1602_write_word("Welcome to use!");                        //顯示內(nèi)容


        LCD1602_write_com(0x01);                                //清屏

        while(1)
        {
                LCD1602_write_com(0x80);                                                //指針設(shè)置到第一行
                LCD1602_write_word("Initialize OK!");                        //顯示內(nèi)容

                ADC_Buffer = 1023 - adc10_start(0);                // P1.0 ADC

                LCD1602_write_com(0x80+0x40);                                        //指針設(shè)置
                LCD1602_write_word("val = ");                        //顯示內(nèi)容
                LCD1602_write_data(ADC_Buffer/1000+0x30);                        //顯示內(nèi)容
                LCD1602_write_data(ADC_Buffer%1000/100+0x30);
                LCD1602_write_data(ADC_Buffer%100/10+0x30);
                LCD1602_write_data(ADC_Buffer%10+0x30);
               
                if( Sensor_DO == 0 )                //檢測(cè)比較器輸出
                {
                        LED1 = LED_ON;
                }
                else
                {
                        LED1 = LED_OFF;        
                }
                Delay_ms(100);               
        }
}

//****************************************************
//做一次ADC轉(zhuǎn)換
//****************************************************
unsigned int adc10_start(unsigned char channel)        //channel = 0~7
{
        unsigned int        adc;
        unsigned char        i;

        P1ASF = (1 << channel);                        //12C5A60AD/S2系列模擬輸入(AD)選擇

        ADC_RES = 0;
        ADC_RESL = 0;

        ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
         

//        for(i=0; i<250; i++)                //13T/loop, 40*13=520T=23.5us @ 22.1184M
        i = 250;
        do{
                if(ADC_CONTR & ADC_FLAG)
                {
                        ADC_CONTR &= ~ADC_FLAG;                                //軟件清零ADC_FLAG
                        _nop_();
                        _nop_();
                        _nop_();
                        _nop_();
                        adc = 0;
                        adc = (ADC_RES << 8) | ADC_RESL;        //ADRJ_enable()


                        return        adc;
                }
        }while(--i);
        return        1024;
}

//****************************************************
//MS延時(shí)函數(shù)(12M晶振下測(cè)試)
//****************************************************
void Delay_ms(unsigned int n)
{
        unsigned int  i,j;
        for(i=0;i<n;i++)
                for(j=0;j<123;j++);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:149451 發(fā)表于 2019-5-22 08:13 | 只看該作者
不用改程序吧?除非端口不夠。
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2019-5-22 08:43 | 只看該作者
兩者管腳排列不同,少量特殊功能寄存器地址不同,其它基本可以通用。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表