Kết quả 1 đến 1 của 1
-
09-15-2015, 05:48 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cần giúp viết hộ e bài code điều khiển led 7 thanh mong mn giúp đỡ
BÀI TẬP VỀ ĐIỀU KHIỂN LED 7 THANH
Đề bài: Viết chương trình thực hiện yêu cầu sau:
Có 3 phím ấn được nối chân như sau:
N1: PD4
N2: PD5
N3: PD6
Có 4 số Led 7 thanh được điều khiển bởi thanh ghi dịch 4094 (như trong demo của Mr Tiếp) với quy định chân:
Data: PD3;
Latch: PD2;
Clock: PD1.
Coi như có sẵn hàm tạo trễ: delay_ms(n) với n là số nguyên <655
35.
Gọi hàm delay_ms(1000) sẽ có tác dụng trễ 1000ms ~ 1s.
Quy ước: N=1: có phím ấn.
Ban đầu: 4 số Led 7 thanh là 0000.
Nếu ấn phím N1: tăng giá trị hiện có trên 4 ô Led 7 thanh lên 1; nếu đã là 9999 rồi thì sẽ quay lại 0000.
Nếu ấn phím N2: giảm giá trị hiện có trên 4 ô Led 7 thanh xuống 1; nếu đã là 0000 rồi thì quay lại 9999.
Nếu ấn phím N3: 4 ô Led 7 thanh sẽ chạy chế độ test: 4 ô đều số 0; trễ 1s; 4 ô đều số 1; trễ 1 giây; 4 ô đều số 2; ... 4 ô đều số 9; trễ 1 giây; rồi lại quay lại 4 ô đều số 0. Khi nào có nút N1 hoặc N2 ấn thì thoát ra và lại gán 4 số Led 7 thanh là 0000;
Yêu cầu: Viết chương trình hoàn chỉnh, có dịch sang file hex để sẵn sàng nạp cho vi điều khiển.
demo code đầu ra
#include "stm8s.h"
#include <iostm8s003f3.h>
#define CDAT PD_ODR_ODR3
#define CLAT PD_ODR_ODR2
#define CCLK PD_ODR_ODR1
#define PORTD PD_ODR
#define BUT1 PC_IDR_IDR4
#define BUT2 PC_IDR_IDR5
#define BUT3 PC_IDR_IDR6
//////////////////
unsigned char so_ht[]={0x18,0x7b,0x2c,0x29,0x4b,0x89,0x88,0x3b,0x08,0x0 9,0xff};
// 0 1 2 3 4 5 6 7 8 9 tat
unsigned char mat_na[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
//////////////////
void delay_us(unsigned int time)
{
unsigned int i;
for(i=0;i<time;i++)
{
;// khong lam gi ca
}
}
void delay_ms(unsigned time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<125;j++)
{
;// khong lam gi ca
}
}
void InitClock(void)
{
CLK_DeInit();
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //f_Master = HSI/1 = 16MHz
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV16); //f_CPU = f_Master/1 = 16MHz
while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)!=SET); //wait until HSI ready
}
//////////////////////////////////////////
void InitGPIO(void)
{
// dinh nghia I/O
}
void main(void)
{
}
View more random threads:
- Thủ thuật bắt thóp đối thủ trong Poker
- Cần giúp
- [Cần giúp]:Mạch nhận dạng vân tay
- giúp đỡ mạch trái tim
- ai có thể giúp e code asm mạch đồng hồ số led 7 thanh này được không ạ.
- Kỹ năng vàng cần bỏ túi khi chơi tiến lên miền nam online
- 3 Nguyên Nhân chính nhằm mua Bất Động Sản dịp cận Tết
- giúp đỡ
- Cho hỏi mạch dimmer đèn AC với tín hiệu analog
- mình cần giúp đỡ về ADC-DAC
Phân tích đặc điểm của máy rung...
Hôm qua, 08:41 PM in Rao vặt tổng hợp