[浦中開発ボード] 51 マイクロコントローラーに基づくシンプルな電卓デジタル チューブ ディスプレイ設計 (プロテウス シミュレーション + プログラム + 物理的なデモンストレーション + 説明ビデオ)
Proteus シミュレーション: Proteus 8.16 (下位バージョンも利用可能)
プログラムコンパイラ:keil 4/keil 5
プログラミング言語:C言語
デザイン番号:P04
1.主な機能:
浦中開発ボードの実験設計
この設計は、51 マイクロコントローラーに基づいた単純な計算機シミュレーション設計を設計することを目的としています。
機能要件:加算、減算、乗算、除算の簡単な四則演算をデジタル管表示で実現
1. マトリックスキーボードを介して正しいキー値を入力する機能;
2. 簡単な四則演算ができること。
3. デジタル管を使用して数値を正確に表示する能力。
4. サポートされる計算結果の最大値は 99999 で、それを超えるとブザーが鳴ります。
(現時点では、Puzhong 開発ボード A234 とのみ完全に互換性があります。他の Puzhong 開発ボード モデルでは、コードの変更や配線が必要になる場合があります)
なお、この設計シミュレーションで使用する 51 個のマイコンチップは互換性があり、AT89C51 と AT89C52 は 51 個のマイコンの特定モデルであり、コアは同じです。同じ回路図では、stcもatも同じで、ピンの機能も同じで、プログラムの互換性もあり、STC89C52/STC89C51/AT89C52/AT89C51など51個のマイコンチップに置き換えることが可能です。
データのダウンロードリンク:
P シリーズ マイクロコントローラー設計のダウンロード リンク (ブラウザーにコピーして開きます)
この設計情報の表示図は次のとおりです。
2. 解説ビデオ:
解説動画にはシミュレーション動作説明、物理動作説明、コード説明が含まれます。
[中国語] 51 個のマイクロコントローラーに基づく簡単な電卓シミュレーション + 開発ボードの説明 (プロテウス コード レポート)
3. 設計仕様書(報告書)
このコース設計の主な目標は、51 マイクロコントローラーをベースにし、Proteus シミュレーション ソフトウェアと組み合わせた単純な計算機を設計することです。この電卓は、加算、減算、乗算、除算の四則演算を実行し、演算結果をデジタル管で表示できる必要があります。この作業には、マイクロコントローラーのプログラミング技術を習得するだけでなく、デジタル管ディスプレイの動作原理を深く理解する必要があり、また、Proteus ソフトウェアを使用したシステム シミュレーションとデバッグも必要です。
設計プロセスでは、ハードウェア回路設計とソフトウェアプログラミングの 2 つの側面から進めます。ハードウェア回路設計には、マイクロコントローラーの最小限のシステム、入力ボタン、出力デジタル管などが含まれます。このうち、シングルチップマイコンの最小システムはシステム全体の核となり、シングルチップマイコン、クロック回路、リセット回路などの基本部品が含まれます。入力ボタンは数字や演算記号の入力に使用され、出力デジタル管は演算結果の表示に使用されます。
ソフトウェアプログラミングではC言語を使用してプログラミングを行います。まず、設計要件に従って対応するプログラムを作成する必要があります。プログラムはユーザーの入力を読み取り、四則演算を実行し、演算結果に基づいてデジタル管を駆動して表示できる必要があります。次に、Proteus 上でシミュレーションとデバッグを実行し、プログラムの正確性とシステムの安定性を確認します。
このコース設計を通じて、マイコンの原理と応用をより深く理解するだけでなく、基本的な回路設計とソフトウェアプログラミングスキルを習得します。同時に、Proteus のシミュレーションおよびデバッグ機能を通じて、システムの動作プロセスをより深く理解し、デバッグおよび問題解決能力を向上させることもできます。このコース設計を通じて、マイクロコントローラーのアプリケーションをよりよく習得し、将来の学習や仕事のための強固な基盤を築くことを願っています。
4. シミュレーション
シミュレーション プロジェクトを開き、proteus でマイクロコントローラーをダブルクリックし、16 進数ファイルのパスを選択して、シミュレーションを開始します。
5. 物理的記録と現象
計算結果は次のとおりです。
ソフトウェアの準備:
初めて使用する前に、必ず CH340 ドライバーをインストールしてください。
ダブルクリックして STC-ISP.exe を開きます。
ダウンロード手順:
0. まずボードの電源を入れて、電源コードをコンピュータの USB ポートに接続します。最初にボードの電源を入れないと、ボード上のライトは点灯しません。
1. マイコンのモデルを選択します
2. ダウンローダーのシリアルポートを選択します
3. コンパイルによって生成された HEX ファイルを開きます
4. ダウンロードをクリックし、マイコンボードの電源ボタンを押して電源を入れ、ダウンロード完了のプロンプトが表示されるまで待ちます。
6. プログラムコード
keil4 または keil5 を使用してコンパイルすると、コードにはコメントが含まれます。
コアコード:
#include<reg52.h> //头文件
#include<intrins.h>//头文件
#include<math.h>
#define uint unsigned int //宏定义
#define uchar unsigned char//宏定义
long x=0,y=0,num=0;
uint operators,input,iny=0;
uchar key,k,ff=16;
sbit a0=P2^2; //138锁存器
sbit a1=P2^3;
sbit a2=P2^4;
sbit beep=P2^5;
sbit led=P3^0;
uchar code table[]={ //数码管段选
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x00,0x40
};
//uchar code table1[]={0xfe,0xfd}; //数码管位选
void delay(uint xms) //延时
{
uint xx,yy;
for (xx=xms;xx>0;xx--)
for(yy=110;yy>0;yy--);
}
void display() //显示函数,数码管动态扫描
{
uchar wan,qian,bai,shi,ge;
wan=num/10000;
qian=num%10000/1000;
bai=num%1000/100;
shi=num%100/10; //num求摸 数码管显示十位
ge=num%10; //num求余 数码管显示个位
P0=0x00; //数码管全关
P0=table[ff]; //端选给P0
a0=0; //位选
a1=0;
a2=0;
delay(3); //延时
P0=0x00;
P0=table[ge];//段选显示个位数
a0=0;
a1=0;
a2=0; //选中第一位
delay(3);
P0=0x00;
P0=table[shi];//段选显示十位数
a0=1;
a1=0;
a2=0; //选中第二位
delay(3);
P0=0x00;
P0=table[bai];
a0=0;
a1=1;
a2=0; //选中第三位
delay(3);
P0=0x00;
P0=table[qian];//段选显示千位数
a0=1;
a1=1;
a2=0; //选中第四位
delay(3);
P0=0x00;
P0=table[wan];//段选显示万位数
a0=0;
a1=0;
a2=1; //选中第五位
delay(3);
}
/**********算术运算函数*************/
void arithmetic()
{
if (iny){
switch(operators)
{
case 1: //加法运算
x=x+y;
num=x;
if(num<100000&&num>-100000) //正常范围
{
TR0=0;
}
else //超出范围,报警
TR0=1;
break;
case 2: //减法运算
x=x-y;
num=x;
if(num<0)
{
num=num*(-1);
ff=17;
}
else
ff=16;
if(num<100000&&num>-100000)
{
TR0=0;
}
else
TR0=1;
break;
case 3:
x=x*y; //乘法运算
num=x;
if(num<100000&&num>-100000)
{
TR0=0;
}
else
TR0=1;
break;
case 4: //除法运算
x=x/y;
num=x;
if(y!=0) //除数不为0
{
//TR0=0;
led=1;
}
else //除数为0 报警
//TR0=1;
led=0;
}
}
}
/***********符号处理函数*************/
void fuhao()
{
if(key<=9&&key>=0) //判断按下的键是否为数值
{
num=num*10+(key-0);
if (operators>0)
{
y=num;
iny=1;
}
else
{
x=num;
if(num<100000&&num>-100000)
{
TR0=0;
}
else
TR0=1;
}
}
else
{
switch(key) //按键判断
{
case 'c':
//x=0;
//y=0;
//num=0;
if(operators==0)
{
x=x/10; //一位一位删除
num=x;
iny=0;
}
if(operators>0)
{
y=y/10; //一位一位删除
num=y;
}
//iny=0;
//operators=0;
//display();
break;
case '=':
arithmetic();
iny=0;
operators=0;
//num=0;
break;
case '+':
if (operators)
arithmetic();
operators=1;
num=0;
break;
case '-':
if (operators)
arithmetic();
operators=2;
num=0;
break;
case '*':
if (operators)
arithmetic();
operators=3;
num=0;
break;
case '/':
if (operators)
arithmetic();
operators=4;
num=0;
break;
}
}
}
7. 設計情報内容一覧
マテリアルデザイン資料には、シミュレーション、プログラムコード、解説ビデオ、機能要件、設計レポート、ソフトウェアおよびハードウェアの設計ブロック図などが含まれます。
0. 使用上の一般的な問題と解決策 - 必読! ! ! !
1. シミュレーション図
2. プログラムのソースコード
3. 機能要件
4. 解説動画
5. 書き込みツール
6. 提案報告書
7. 設計レポート
8. ソフトウェアおよびハードウェアのフローチャート
Altium Designer インストール クラック
KEIL+proteus マイクロコントローラー シミュレーション設計チュートリアル
KEIL取り付けクラック
Proteus コンポーネントの検索
プロテウスのインストール
Proteus の簡単な使い方チュートリアル
マイコン学習教材
Puzhong-2、Puzhong-3、Puzhong-4 開発ボードの回路図.pdf
関連データシート
防御スキル
設計レポートの共通説明
マウスをダブルクリックして、Jiasheng MCU 51 STM32 MCU コース卒業プロジェクトの検索を開きます。url