微控制器程式設計,輸出週期為2S和0.5S的方波
在80C51微控制器中,已知時鐘頻率為 6MHz,請程式設計使 P1.0 和 P1.1 分別輸出週期為 2s 和 0.5s 的方波。
求答案,過程。
懸賞分:50 - 解決時間:2010-1-7 17:16
;=====================================
最佳答案:
;-------------------------------------
;下列程式,經過編譯、模擬,符合要求:
;-------------------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
;-------------------------------------
START:
MOV TMOD, #01H
MOV TH0, #9EH
MOV TL0, #58H ;
SETB TR0
SETB ET0
SETB EA
MOV R2, #5
MOV A, #0
CLR P1.0
CLR P1.1
SJMP $ ;原地轉移,假死,等待中斷
;-------------------------------------
T0_INT: ;50ms執行一次
MOV TH0, #9EH ;重新賦初始值
MOV TL0, #58H ;[email protected]
DJNZ R2, T0_END ;不到5次,轉到退出
; ;下列指令都是每隔250ms執行一次
MOV R2, #5 ;重新設定
INC A ;計數器加一
MOV C, ACC.0
MOV P1.1, C ;P1.1,每隔250ms,變化一次
MOV C, ACC.2
MOV P1.0, C ;P1.0,每隔1s,變化一次
T0_END:
RETI
;-------------------------------------
END
;-------------------------------------
回答者: 做而論道 - 十二級 2010-1-7 12:54
提問者對於答案的評價:xiexie
原文網址:
;-------------------------------------
後記:
題目要求輸出兩個波形的週期是個4倍的關係,這一點,被做而論道發現並巧妙的利用了。
程式中只使用了一個計數器ACC,它的相鄰兩位之間的變化時間,是呈2倍的關係;
而其第0位和第2位,就是4倍的關係,把它們輸出,即可得到所需的週期波形。
呵呵,做而論道的程式,所使用的資源,是最低的;執行效率也最高,不知網友們認為如何?
相關推薦
微控制器程式設計,輸出週期為2S和0.5S的方波
在80C51微控制器中,已知時鐘頻率為 6MHz,請程式設計使 P1.0 和 P1.1 分別輸出週期為 2s 和 0.5s 的方波。求答案,過程。懸賞分:50 - 解決時間:2010-1-7 17:16 ;=====================================最佳答案:;--------
通過pandoc,轉化markdown為docx和html
pandoc blog cnblogs brush -o doc true .html ocx 轉化為docx pandoc -f markdown -t docx collection.markdown -o api.docx 轉化為html pandoc coll
通過SmarRefresLayou框架,你520,你願為媽媽和
亮顯 web前端 提示 裁剪 沒有 集中 模型 安裝 mic 不少國內空間的新手站長,當使用了SSL證書之後,發現瀏覽器有s效果了,但是沒有綠鎖,谷歌瀏覽器提示“您與此網站建立的連接並非完全安全解決” 這種 當軟件實現了新功能後,準備發布版本前,往往需要進行一輪性能測試以確
c++ 模版程式設計,構造迭代器和雙向連結串列
#pragma once #include <iostream> #include <stdexcept> #include "func.h" // 連結串列 template <typename T>class li
輸入一個五位整數,將它反向輸出。例如輸入12345,輸出應為54321。
這個程式是我對建構函式有個更深的認識。 首先建構函式要先從頭至尾走一邊才會輸出,無論輸出語句加的位置(迴圈內,條件語句內...除外)。 然後建構函式遞迴可以把問題簡單化,本題如果按常規思路,應該是做個迴圈,把各個數首尾交換。但是用呼叫使得其可以一次輸出一位數,而並不是輸出一個數組。 這道題使我開闊了程式設計思
android物聯網初步,利用手機藍芽與微控制器通訊,實現led燈開關和定時
轉載請註明出處。 這次是一個課程設計,利用微控制器開發一個物聯網系統。我們利用了手機藍芽與單片機板子上的藍芽通訊,通過 控制訊號來控制微控制器上led燈的亮滅和定時。 網上有很多的搜尋藍芽的例程,大家可以自己
c語言輸入年月日,輸出該日為該年中的第多少天
#include <stdio.h>int main(){int year=0;int mouth=0;int day=0;int sun=0;printf("請輸入年月日");scanf("%d %d %d",&year,&mouth,&
Go語言學習筆記8: log的使用,輸出到日誌檔案和輸出到mongodb
參考了國外友人的方案:https://stackoverflow.com/questions/40396499/go-create-io-writer-inteface-for-logging-to-mongodb-database 1.輸出日誌到檔案 func CreateDir(dir st
取出一個字串中字母出現的次數。如:字串:"abcdekka27qoq" ,輸出格式為: a(2)b(1)k(2)
package com.heima.test; import java.io.FileWriter; import java.io.IOException; import java.util.Comp
(C語言列印圖形題5)程式設計,輸入n,輸出如下例(n=4)所示的高和上底均為n的等腰梯形。
程式設計,輸入n,輸出如下例(n=5)所示的高和上底均為n的等腰梯形。 **** ******
java算法面試題:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串,但要保證漢字不被截取半個, 如“我ABC”,4,應該截取“我AB”,輸入“我ABC漢DEF”,6,應該輸出“我ABC”,而不是“我ABC+漢的半個”。
構造 pack n) -- com post nts throw ... package com.swift; import java.util.Scanner; public class Hanzi_jiequ { public static void m
用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。
問題 用C程式設計,設定兩個外部中斷(INT0和INT1)按鍵,優先順序IP=0x04,即把外部中斷1設定為高階優先順序,外部中斷0為低階優先順序,使外部中斷1巢狀在外部中斷0中。 要求:中斷觸發方式為下降沿觸發,按鍵有消抖功能 模擬 程式碼 #include <
已知雞和兔的總數量n,總腳數為m。輸入n和m,依次輸出雞和兔的數目。如果無解,輸出“no answer”。 將下面的程式碼填寫完整。
撰寫人——軟工二班——陳喜平 題目描述 已知雞和兔的總數量n,總腳數為m。輸入n和m,依次輸出雞和兔的數目。如果無解,輸出“no answer”。 將下面的程式碼填寫完整。 #include <stdio.h> int main() { int m,n,x,y;
輸入一個正整數n,輸出所有和為n的連續正整數序列
1 public static void main(String[] args) { 2 Scanner sc = new Scanner(System.in); 3 while (true) { 4 System.out.prin
C程式設計——給一串數,打印出裡面和為100的兩個數
**1、**程式 #include <stdio.h> #include <string.h> int main() { int arr[99] = {0}; int count = 0; printf("請輸入需要進行查詢的數列:"); do{
輸入一個正數n,輸出所有和為n的連續正數序列。
public class b { public static void main(String[] args) { getlx(15); } private static void getlx(int n) { //定義最小序列 int min = 1;
華為計算字元個數寫出一個程式,接受一個有字母和數字以及空格組成的字串,和一個字元,然後輸出輸入字串中含有該字元的個數。不區分大小寫。
寫出一個程式,接受一個有字母和數字以及空格組成的字串,和一個字元,然後輸出輸入字串中含有該字元的個數。不區分大小寫。 自己編寫的一個程式,聽牛客網的左神說程式設計也跟高考一樣要不斷地刷題才會有感覺,自
MATLAB和VS混合程式設計,除錯C程式設定的斷點顯示“當前不會命中斷點 還沒有為該文件載入任何符號”
我遇到的問題是matlab和c++混合程式設計,但是在matlab中進行除錯的時候需要呼叫VS2013除錯cpp程式,但是設定的斷點總是出現“當前不會命中斷點 還沒有為該文件載入任何符號”,網上的方法我都試過了,沒有用,自己試出來的方法記錄一下,可能並不適合
程式設計題:從n個數中選取m個數,計算m個數的和s,判斷剩餘n-m個數中是否存在等於s的數,如果存在,輸出最大值
描述:從n個數中選取m個數,計算m個數的和s,判斷剩餘n-m個數中是否存在等於s的數,如果存在,輸出最大值。第一行輸入n和m值,第二行輸入n個數,輸出最大值。例如:輸入:6 2 1 2 5 3 7 4輸出:7分析:1+2=3;2+5=7;2+3=5;3+4=
c++入門:輸入一個字串,將其分段輸出,分段符為除字母和數字之外的符號。
輸出 輸入一個字串 樣例輸入 ad/adfa,123d?a1 樣例輸出 ad adfa 123d a1#include<iostream> #include<string.h>