單片機c語言編程要點,第1章單片機的C語言編程_2015要點.ppt

第1章單片機的C語言編程_2015要點

1-* 第 1 章 結束!謝 謝! * * 1-* 三、對存儲器和外接I/O口的絕對地址訪問 例: #include #define com XBYTE[0x07ff] 那么后面程序com變量出現的地方,就是對地址為07ffH的外部RAM或I/O口進行訪問。 使用中要注意:程序一定要包含absacc.h; XBYTE 、XWORD 必須大寫。 例: #include XWORD[0x4000]=0x9988; 即將9988H送入外部RAM的4000H和4001H單元。 com =0x56; //(0x07ff) 0x56 或 XBYTE[0x07ff] = 0x56 1-* (2)對外部I/O口的訪問 由于單片機的I/O口和外部RAM統一編址,因此對I/O口地址的字節訪問可用XBYTE (MOVX @DPTR ) 或PBYTE (MOVX @Ri)進行。 #include ----常用 #define AD_PORT XBYTE[0xefff] AD_PORT=0x10; ----------------------------------------------- XBYTE[0xefff]=0x10;-----很少用 指針、絕對地址訪問的使用場合? 例: 將10H輸出到端口地址為EFFFH的A/D芯片。 1-* 1.5 C51的運算符 3. C51的關系運算符有六種: <(小于); >(大于); <= (小于等于); >= (大于等于); ==(相等);!= (不相等) 優先級:前四個高,后二個“==”和“!=”級別低。 1.賦值運算符:= 將“=”的右邊的值賦值給左邊的變量。 如:x=6; 2. C51的算術運算符: +(加或正號);-(減或負號);* (乘號); / (除號); % (求余) 優先級為:先乘除,后加減; 先括號內,再括號外。 1-* &&(邏輯與); ||(邏輯或); !(邏輯非); 邏輯表達式和關系表達式的值相同: 0--假,1--真。 1.5 C51的運算符 例1 a=0xf0; 執行a=~a; 例2 a=0x20;執行a=a<<2; 以上幾種運算的優先級: 4.C51的邏輯運算符 有三種: !(非) 關系運算 &&和|| =(賦值運算) 算術運算 5.C51的按位操作的運算符 有六種 &(按位與); |(按位或); ^ (按位異或); ~ (位取反); <>(位右移 ) (注:補零移位) a=0x0F a=0x80,移位補0 1-* 1.5 C51的運算符 6. ? 自增、自減運算符: ++i,--i (在使用i之前,先使i值加1,減1) i++,i-- (在使用i之后,再使i值加1.,減1) 1-* 1.5 C51的運算符 例 a=&b; 取b變量的地址送變量a c=*a; 將以a為地址的單元的內容送c 7.對指針操作的運算符: &—取地址運算 *—間址運算符 (a) c 1-* 1.6 函數 1、函數的分類 從用戶使用角度劃分,函數分為庫函數和用戶自定義函數。 庫函數是編譯系統提供的一系列標準函數(見本書附錄二),用戶只需調用,而無需自己去編寫這些復雜的函數; 如 頭文件reg51.h、absacc.h、stdio.h、math.h等文件中包括一系列函數; 使用其中的函數,必須先使用#include包含語句,然后才能調用。 標準(ANSI)C中的scanf和printf等變為對串行口操作。 1-* 1.6 函數 如果被調函數出現在主調用函數之后, 那么,在調用函數前 應對被調函數作以說明, 形式為: 返回值類型 被調函數名(形參); 用戶自定義函數是用戶根據任務編寫的函數 2、函數的調用說明 1-* 1.7 C語言編程實例 1、順序程序的設計 例1 編程實現兩個無符號的整數相乘,乘積存放在外部數據存儲器4000H開始的單元。 分析:兩個無符號的整數相乘,其積為4個字節,采用unsigned long類型, 1-* 1.7 C語言編程實例 main() { unsigned int a,b; unsigned long c; unsigned long xdata *p; p=0x4000; c=a*b;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533490.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c 語言 timestamp,c中的時間戳,精度為毫秒

我對C編程比較陌生,而且我正在開展一個需要非常準確的項目;因此我嘗試寫一些東西來創建一個毫秒精度的時間戳.它似乎有效但我的問題是這種方式是否正確,還是有更簡單的方法&#xff1f;這是我的代碼&#xff1a;#include#includevoid wait(int milliseconds){clock_t start cl…

antd 左右滑動_如何使用reactjs創建可滑動的側邊欄

我正在嘗試使用reactjs創建可滑動的側邊欄。但由于某些原因&#xff0c;這不會發生。我寫的代碼如下所示;如何使用reactjs創建可滑動的側邊欄Sidebar.jsimport React, { Component } from react;class Sidebar extends Component {render() {return (Start BootstrapDashboardS…

不思議迷宮c語言基礎,不思議迷宮神龍收藏品一覽

不思議迷宮神龍收藏品一覽是9K9K小編柚子人為大家帶來的&#xff0c;七龍珠召喚神龍作為游戲最為迷人的彩蛋之一&#xff0c;召喚神龍拿鉆石作為眾多玩家的首選目標&#xff0c;但神龍的收藏品你知道多少呢&#xff0c;下面不妨詳細了解一下吧。神龍收藏品一覽&#xff1a;無限…

shell181網格劃分_復合材料SHELL181單元完全攻略

前言ANSYS程序中的SHELL181單元是用于復合材料層合板結構分析比較好的單元之一。原文在ANSYS程序的在線幫助中&#xff0c;這篇文章是它的譯文&#xff0c;是我們從專業角度對原文的翻譯。目的在于幫助那些英語水平不高&#xff0c;而且從事復合材料結構計算分析的技術人員能夠…

c語言如何判斷是否是子序列,leetcode392(判斷子序列)--C語言實現

求&#xff1a;給定字符串 s 和 t &#xff0c;判斷 s 是否為 t 的子序列。你可以認為 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長(長度 ~ 500,000)&#xff0c;而 s 是個短字符串(長度 <100)。字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩…

leetcode數組匯總_LeetCode刷題:前言

LeetCode刷題&#xff1a;前言前言作為一個對編程超級不通的小白&#xff0c;在2020年11月開始打算正式的刷LeetCode。&#xff08;PS&#xff1a;前面有刷過&#xff0c;但是都是隨機&#xff0c;看心情亂刷的&#xff0c;刷完后也沒有什么感覺&#xff0c;該不會的還是不會&a…

淮海工學院大一c語言期中試題,《C語言程序設計》期中考試試卷

《《C語言程序設計》期中考試試卷》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《《C語言程序設計》期中考試試卷(5頁珍藏版)》請在人人文庫網上搜索。1、淮 海 工 學 院10 11 學年 第 2 學期 C語言程序設計 期中考試試卷題號一二三四五總分得分單項選擇題答題表123…

通信基站c語言,[轉]2015年數學建模C題–基于無線通信基站的室內三維定位問題...

之前做的一題跟大家分享一下&#xff0c;實際該題數據出的有點問題(個人看法不喜勿噴)。這題主要是做基站定位的&#xff0c;方法主要是用的基于幾何的方法。該題總共四題&#xff0c;由于只有測試case可以驗證性能&#xff0c;非測試case的結果我就不放了在本題中&#xff0c;…

c語言fopen_s的用法,fopen和fopen_s用法的比較

參考&#xff1a;在定義FILE * fp 之后&#xff0c;fopen的用法是: fp fopen(filename,"w")。而對于fopen_s來說&#xff0c;還得定義另外一個變量errno_t err&#xff0c;然后err fopen_s(&fp,filename,"w")。返回值的話&#xff0c;對于fopen來說&…

php redis 投票_高可用Redis服務架構分析與搭建

HorstXuhttps://www.cnblogs.com/xuning/p/8464625.html基于內存的Redis應該是目前各種web開發業務中最為常用的key-value數據庫了&#xff0c;我們經常在業務中用其存儲用戶登陸態&#xff08;Session存儲&#xff09;&#xff0c;加速一些熱數據的查詢&#xff08;相比較mysq…

android studio 啟動畫面,Android Studio 利用Splash制作APP啟動界面的方法

public class SplashActivity extends Activity {// private final int SPLASH_DISPLAY_LENGHT 2000; // 兩秒后進入系統Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getWindow().addFlags(WindowManager.LayoutParams.…

android驅動測試,Android: 通過 cucumber 驅動 monkey 做穩定性測試

主要內容穩定性測試是什么Monkey 介紹自動化 Monkey穩定性測試是什么通過隨機點擊屏幕一段時間&#xff0c;看看 app 會不會奔潰&#xff0c;能不能維持正常運行。Monkey 介紹Monkey 是一個命令行工具&#xff0c;它可以運行在我們的模擬器或者設備當中。它可以發送一些偽隨機(…

gradle 查看依賴類庫版本_Android studio中查看依賴的第三方庫的歷史版本和最新版本...

在日常開發過程中&#xff0c;我們通過會依賴很多的第三方庫項目。類似這樣&#xff1a;dependencies {compile com.android.support:support-v4:24.2.1compile com.google.code.gson:gson:2.4compile com.lzy.net:okhttputils:1.7.0compile com.github.ybq:Android-SpinKit:1.…

set和map去重調用什么方法_【ES6】Set、Map

SetSet 是 ES6 提供給我們的構造函數&#xff0c;能夠造出一種新的存儲數據的結構特點&#xff1a;只有屬性值沒有屬性名&#xff0c;成員值唯一用途&#xff1a;可以轉成數組&#xff0c;其本身具備去重(自動去重)&#xff0c;交集&#xff0c;并集&#xff0c;差集的作用等參…

cygwin 編譯 android vlc,Cygwin?編譯?VLC?問題

Cygwin 編譯 VLC遇到了這么多問題&#xff0c;不過還好最后編譯過去了。問題1&#xff1a;gcc -mno-cygwin -Wsign-compare-Wall -mms-bitfields -pipe -o libaccess_output_dummy_plugin.dll-g-shared -u _vlc_entry__0_8_6 -L/usr/win32/liblibaccess_output_dummy_plugin.a …

kvm上添加萬兆網卡_爛泥:為KVM虛擬機添加網卡

本文首發于爛泥行天下。前幾篇文章介紹了有關KVM安裝虛擬機以及如何給虛擬機添加硬盤&#xff0c;今天我們再來介紹下有關如何給KVM虛擬機添加網卡。給KVM虛擬機添加網卡&#xff0c;可以分為兩種形式&#xff1a;圖形界面的和virsh attach-interface命令的。圖形界面的很簡單&…

android studio日歷小程序,android studio無法加載日歷界面

LayoutInflater inflater (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE); //載入界面view inflater.inflate(R.layout.pumkin_calendar,null);AlertDialog.Builder ad;ad new AlertDialog.Builder(pumkinLand.this);ad.setView(view);…

gazebo 直接獲取傳感器數據_5個使傳感器更簡單的技巧

傳感器遍布地球表面和周圍空間&#xff0c;為世界提供數據。這些廉價的傳感器是物聯網背后的驅動力之一&#xff0c;也是我們社會現在面臨的數字革命。然而&#xff0c;連接到傳感器并從傳感器獲取數據并不總是直截了當或容易的。這里有五個提示&#xff0c;可以幫助工程師第一…

paylinks.php_畢業設計-基于PHP的網上購物網站系統設計

畢業設計-基于PHP的網上購物網站系統設計&#xff0c;共45頁&#xff0c;14912字&#xff0c;附完整的程序源代碼。包括前臺&#xff0c;后臺的實現&#xff0c;先運行phpStudyAdmin后打開dzsw/install.php摘要隨著Internet技術的發展&#xff0c;人們的日常生活已經離不開網絡…

com/android/dx/command/main,com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

如果你在開發過程中遇到了上述的Bug&#xff0c;基本上是JDK版本不一致造成的&#xff0c;指的是高版本的JDK編譯的class不能放在低版本的JDK上運行。如果是Version 52&#xff0c;就表示JDK8編譯的class不能運行在JDK7上&#xff0c;所以需要在本地安裝JDK8. 如果是Version 51…