久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2177|回復: 9
打印 上一主題 下一主題
收起左側

求幫忙 基于pic16f690做一些最基礎的小程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:1041233 發表于 2022-8-2 16:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有大佬幫忙看看嗎 網上沒咋找到教程 剛找的實習完全不會 求幫忙
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1041233 發表于 2022-8-2 16:56 | 只看該作者
#include<pic.h>
void port_init();
void usart_init();
void main()
{
    usart_init();
    port_init();
   
     //while(!TRMT);

    while(1);
}
void port_init()
{
    TRISC=0x00;
    TRISB=0xff;
    PORTC=0x00;
}
void usart_init()
{
    TXSTA=0x24;
    RCSTA=0x90;
    SPBRG=12;
    GIE=1;
    PEIE=1;
    RCIE=1;
}
void interrupt com()
{
   
      if(RCIE&&RCIF)
    {
        PORTC=RCREG;
        TXREG=RCREG;
        while(!TRMT);
    }

}有大佬幫忙看看這個串口通信嗎
回復

使用道具 舉報

板凳
ID:1041233 發表于 2022-8-2 16:58 | 只看該作者
還有數碼管原理圖上 跟信號燈同一個接口 但該怎么控制亮數碼管和信號燈,默認好像是只亮信號燈
回復

使用道具 舉報

地板
ID:401564 發表于 2022-8-3 17:06 | 只看該作者
論壇里有這個單片機的中文數據手冊
下載下來,先看數據手冊,再用PIC的編程軟件編寫代碼和下載
都是用C語言的,跟8051沒有太大的區別,基本是一兩天就能上手了

不同的是PIC用的硬件堆棧,函數里面盡量不要有調用函數的代碼,一個函數就是一個函數,代碼全部寫完,不要一個函數里雙調用其它函數
PIC中斷只有一個中斷入口,跟8051是不一樣的,所有的中斷都是一個地址,進入中斷之后要先查詢中斷標志位,檢測是哪個中斷觸發了,然后再進行操作
中斷函數中只做簡單和處理,不要在中斷函數中調用其它函數
回復

使用道具 舉報

5#
ID:155507 發表于 2022-8-3 18:32 | 只看該作者
現在我們可以配置我們的數字 I/O,讓我們創建“Hello World!”的微控制器版本。

在本例中,將帶有串聯電阻 (220-470 Ohm) 的 LED 連接到引腳 10 (RB7)。
我們將首先禁用所有模擬輸入(因為我們沒有使用任何模擬輸入)。 然后,我們將所有數字 I/O 引腳設置為輸入。 之后,我們將單獨將引腳 RB7 設置為輸出。 最后,我們將進入一個無限循環,讓 LED 閃爍。

完成此操作的代碼如下所示。 替換在指南的 MPLAB X & XC8 部分中創建的 main.c 文件的內容。
  1. #include <xc.h>

  2. #define _XTAL_FREQ 4000000

  3. #pragma config FOSC=INTRCIO, WDTE=OFF, PWRTE=OFF, MCLRE=ON, CP=OFF, \
  4.                 CPD=OFF, BOREN=OFF, IESO=OFF, FCMEN=OFF

  5. int main()
  6. {
  7.     TRISA = 0xFF;
  8.     TRISB = 0xFF;
  9.     TRISC = 0xFF;

  10.     ANSEL = 0x00;
  11.     ANSELH = 0x00;

  12.     TRISBbits.TRISB7 = 0;

  13.     while(1)
  14.     {
  15.         PORTBbits.RB7 = 1;
  16.         __delay_ms(500);
  17.         PORTBbits.RB7 = 0;
  18.         __delay_ms(500);
  19.     }

  20.     return 0;
  21. }
復制代碼
回復

使用道具 舉報

6#
ID:879348 發表于 2022-8-4 07:59 | 只看該作者
新手為什么要選擇這款單片機呢
回復

使用道具 舉報

7#
ID:1041233 發表于 2022-8-4 09:37 | 只看該作者
本帖最后由 ddahh 于 2022-8-4 10:09 編輯
angmall 發表于 2022-8-3 18:32
現在我們可以配置我們的數字 I/O,讓我們創建“Hello World!”的微控制器版本。

在本例中,將帶有串聯 ...

老哥,現在成功了 感謝!!!
想問下要是傳送字符串該怎么整啊
怎么改動語句呢
回復

使用道具 舉報

8#
ID:155507 發表于 2022-8-4 18:51 | 只看該作者
ddahh 發表于 2022-8-4 09:37
老哥,現在成功了 感謝!!!
想問下要是傳送字符串該怎么整啊
怎么改動語句呢

我給你來個程序試試



  1. #include <xc.h>
  2. #include <stdint.h>

  3. #define _XTAL_FREQ 4000000

  4. #pragma config FOSC=INTRCIO, WDTE=OFF, PWRTE=OFF, MCLRE=ON, CP=OFF, \
  5.                 CPD=OFF, BOREN=OFF, IESO=OFF, FCMEN=OFF

  6. //--------------------------------
  7. // Functions Declarations
  8. void UART_TRX_Init(void);

  9. // Globals
  10. uint8_t UART_Buffer = 0;
  11. //--------------------------------
  12. // Main Routine
  13. void main(void)
  14. {
  15.   //--[ Peripherals & IO Configurations ]--
  16.   UART_TRX_Init(); // Initialize The UART @ 9600bps
  17.   TRISC = 0x00; // Output Port (4-Pins)
  18.   PORTC = 0x00; // Initially OFF
  19.   //---------------------------
  20.   while(1)
  21.   {
  22.     // Stay Idle, Everything is handled in the ISR !
  23.     //PORTC = UART_Buffer;
  24.   }
  25.   return;
  26. }
  27. //--------------------------------
  28. // Functions Definitions

  29. void UART_TRX_Init()
  30. {
  31.   BRGH = 1; // Set For High-Speed Baud Rate
  32.   BRG16 = 0;  // FOSC/128
  33.   SPBRG = 25; // Set The Baud Rate To Be 9600 bps
  34.   // Enable The Ascynchronous Serial Port
  35.   SYNC = 0;
  36.   SPEN = 1;
  37.   // Set The RX-TX Pins to be in UART mode (not io)
  38.   TRISB6 = 1; // As stated in the datasheet
  39.   TRISB7 = 1; // As stated in the datasheet
  40.   //--[ Enable UART Receiving Interrupts ]--
  41.   RCIE = 1; // UART Receving Interrupt Enable Bit
  42.   PEIE = 1; // Peripherals Interrupt Enable Bit
  43.   GIE = 1; // Global Interrupt Enable Bit
  44.   //------------------
  45.   CREN = 1; // Enable Data Continous Reception
  46.   TXEN = 1; // Enable UART Transmission

  47. }

  48. void interrupt ISR (void)
  49. {
  50.   if (RCIF == 1)
  51.   {
  52.     UART_Buffer = RCREG; // Read The Received Data Buffer
  53.     PORTC = UART_Buffer; // Display The Received Data On LEDs
  54.         while(!TRMT);
  55.     TXREG = UART_Buffer;
  56.     RCIF = 0; // Clear The Flag
  57.   }
  58. }



復制代碼
回復

使用道具 舉報

9#
ID:401564 發表于 2022-8-4 20:09 | 只看該作者
wufa1986 發表于 2022-8-4 07:59
新手為什么要選擇這款單片機呢

誰知道呢?如果不是工作需要或者有很大干擾源的電路,我都不想看一眼PIC
STC這個很多人的初戀型號她不香嗎?
回復

使用道具 舉報

10#
ID:155507 發表于 2022-8-5 08:53 | 只看該作者
ddahh 發表于 2022-8-2 16:58
還有數碼管原理圖上 跟信號燈同一個接口 但該怎么控制亮數碼管和信號燈,默認好像是只亮信號燈

單片機是根據硬件電路圖的設計來寫代碼的

任何模擬引腳必須先使用 ANSEL 和 ANSELH 寄存器禁用,然后才能用作數字 I/O。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 波多野吉衣在线播放 | 久久国产精品偷 | www.久草.com| 亚洲午夜精品视频 | 久久一区二区三区四区五区 | 本道综合精品 | 欧美在线 | 中文字幕一区二区三 | 欧美一区二区三区视频在线观看 | www.亚洲成人网 | 亚洲va欧美va天堂v国产综合 | 国产精品久久久久久亚洲调教 | 国产精品揄拍一区二区 | 国产精品免费一区二区三区 | 一区二区三区国产好的精 | 91电影在线 | 亚洲播放 | 国产欧美精品一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 欧美日韩精品 | 国产成人免费视频网站高清观看视频 | 高清色| 男人的天堂在线视频 | 色综合久久88色综合天天 | 观看av| 九九热这里| 精品亚洲一区二区三区四区五区 | 激情91| 中文字幕亚洲欧美日韩在线不卡 | 在线观看特色大片免费网站 | 一级在线观看 | 视频一区二区在线观看 | 国产精品视频在 | 国产在线视频一区二区董小宛性色 | 欧美一区精品 | 亚洲午夜视频在线观看 | 精品自拍视频在线观看 | 成人黄色在线 | 91视频.com| 欧美日韩国产精品一区二区 | 综合成人在线 |